|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] Re: [PATCH]CPUFREQ: Fix two racing issues during cpu	hotplug
 
On 12/04/2010 05:45, "Wei, Gang" <gang.wei@xxxxxxxxx> wrote:
> Move cpufreq_del_cpu() call into __cpu_disable to eliminate racing with dbs
> timer handler on policy & drv_data. Put it after local_irq_enable because
> xmalloc/xfree in cpufreq_del_cpu assert for this.
Can't you just kill_timer()? Adding extra code into a stop_machine context
is dangerous: e.g.,
xmalloc()->alloc_xenheap_pages()->memguard_unguard_range()->map_pages_to_xen
()->flush_area_all() results in deadlock as other cpus are spinning with
irqs disabled.
> Change access to cpufreq_statistic_lock from spin_lock to spin_lock_irqsave to
> avoid statistic data access racing between cpufreq_statistic_exit and dbs
> timer handler.
DBS timer handler is called in softirq context; cpu_freq_statistic_exit()
appears also always to be called from non-irq context. I don't see what
interrupt context you are protecting against.
 -- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |