All of lore.kernel.org
 help / color / mirror / Atom feed
* needed lru_add_drain_all() change
@ 2012-06-26 21:37 Andrew Morton
  2012-06-27  0:55 ` Minchan Kim
                   ` (3 more replies)
  0 siblings, 4 replies; 20+ messages in thread
From: Andrew Morton @ 2012-06-26 21:37 UTC (permalink / raw)
  To: linux-mm

https://bugzilla.kernel.org/show_bug.cgi?id=43811

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.

The biggest user of schedule_on_each_cpu() is lru_add_drain_all().

Does anyone have any thoughts on how we can do this?  The obvious
approach is to declare these:

static DEFINE_PER_CPU(struct pagevec[NR_LRU_LISTS], lru_add_pvecs);
static DEFINE_PER_CPU(struct pagevec, lru_rotate_pvecs);
static DEFINE_PER_CPU(struct pagevec, lru_deactivate_pvecs);

to be irq-safe and use on_each_cpu().  lru_rotate_pvecs is already
irq-safe and converting lru_add_pvecs and lru_deactivate_pvecs looks
pretty simple.

Thoughts?

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2012-06-29  3:49 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-26 21:37 needed lru_add_drain_all() change Andrew Morton
2012-06-27  0:55 ` Minchan Kim
2012-06-27  1:15   ` Andrew Morton
2012-06-27  1:20     ` Minchan Kim
2012-06-27  1:29       ` Andrew Morton
2012-06-27  2:09     ` Minchan Kim
2012-06-27  5:12       ` Andrew Morton
2012-06-27  5:41         ` Minchan Kim
2012-06-27  5:55           ` Andrew Morton
2012-06-27  6:33             ` Minchan Kim
2012-06-27  6:41               ` Andrew Morton
2012-06-27 10:27                 ` Peter Zijlstra
2012-06-27  6:46               ` Andrew Morton
2012-06-27 10:31                 ` Peter Zijlstra
2012-06-27 12:04 ` Peter Zijlstra
2012-06-28  6:23 ` KOSAKI Motohiro
2012-06-29  3:47   ` Kamezawa Hiroyuki
2012-06-28  7:43 ` Kamezawa Hiroyuki
2012-06-28 23:42   ` Minchan Kim
2012-06-29  3:24     ` Kamezawa Hiroyuki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.