Re: needed lru_add_drain_all() change

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2012-06-26 at 14:37 -0700, Andrew Morton wrote:
> lru_add_drain_all() uses schedule_on_each_cpu().  But
> schedule_on_each_cpu() hangs if a realtime thread is spinning, pinned
> to a CPU.  There's no intention to change the scheduler behaviour, so
> I
> think we should remove schedule_on_each_cpu() from the kernel.
> 

Anything that uses a per-cpu workqueue and waits on work from another
cpu is vulnerable too. This would include things like padata, crypto and
possibly others.

ksoftirqd is vulnerable too, if it were preempted while handling a
softirq, all of softirq handling will be out the window for that cpu.

infiniband/hw/ehca would likely malfunction as well, since it has
per-cpu threads.


FIFO is dangerous, don't do stupid things :-)

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]