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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/