On Wed, 2015-07-29 at 11:54 +0200, Michal Hocko wrote: > On Tue 28-07-15 10:08:44, Jörn Engel wrote: > > 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. > > I do not thing this is about a magic value. It is more about natural > places for scheduling point. As I've written above cond_resched at pmd > level of the page table walk sounds reasonable to me as we do that > already for zap_pmd_range and consistency would make sense to me. I piddled about with the thought that it might be nice to be able to sprinkle cond_resched() about to cut rt latencies without wrecking normal load throughput, cobbled together a cond_resched_rt(). On my little box that was a waste of time, as the biggest hits are block softirq and free_hot_cold_page_list(). -Mike -- 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>