Messages in this thread | | | Date | Tue, 26 Jul 2011 18:34:24 +0200 | From | Heiko Carstens <> | Subject | Re: [PATCH] proc/softirqs: only show state for online cpus |
| |
On Tue, Jul 26, 2011 at 03:29:43PM +0800, Yong Zhang wrote: > > Offtopic, /proc/interrupt should be protected by get_online_cpus(). > > Otherwise the header (i.e. cpu number) and the actual statistics fields > > can be mismatched likes following. Am I missing something? > > I think you are right. The reader could be preempted by cpu hotplug. > > After searching the whole tree, only s390 take cpu_hotplug.lock, > but its usage is not currect: > > arch/s390/kernel/irq.c: > int show_interrupts(struct seq_file *p, void *v) > { > get_online_cpus(); > ......... > put_online_cpus(); > } > > Because the reader will call show_interrupts nr_irqs times. > So get_online_cpus()/put_online_cpus() should be put upper, > maybe interrupts_open(). How do you think about it?
Indeed, it's broken. You're going to submit a patch?
| |