On Tue, Jul 28, 2015 at 03:32:55PM +0200, Michal Hocko wrote: > > > > We have kernel preemption disabled. A lower-priority task in a system > > call will block higher-priority tasks. > > This is an inherent problem of !PREEMPT, though. There are many > loops which can take quite some time but we do not want to sprinkle > cond_resched all over the kernel. On the other hand these io/remap resp. > vunmap page table walks do not have any cond_resched points AFAICS so we > can at least mimic zap_pmd_range which does cond_resched. Even for !PREEMPT we don't want infinite scheduler latencies. Real question is how much we are willing to accept and at what point we should start sprinkling cond_resched. I would pick 100ms, but that is just a personal choice. If we decide on 200ms or 500ms, I can live with that too. But whatever value we pick, I suspect these resched points need to go in eventually. As memory sizes grow, people will also start mapping bigger regions and the scheduler latency will eventually exceed whatever value we picked. Jörn -- Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it. -- Perlis's Programming Proverb #58, SIGPLAN Notices, Sept. 1982 -- 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=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>