Messages in this thread | | | Subject | Re: [PATCH] mm: add resched points to remap_pmd_range/ioremap_pmd_range | From | Mike Galbraith <> | Date | Thu, 06 Aug 2015 10:55:37 +0200 |
| |
On Thu, 2015-07-30 at 09:58 -0700, Jörn Engel wrote: > On Thu, Jul 30, 2015 at 05:22:55PM +0200, Mike Galbraith wrote: > > > > 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(). > > Block softirq is one of our problems as well. It is a bit of a joke > that __do_softirq() moves work to ksoftirqd after 2ms, but block softirq > can take several 100ms in bad cases.
On my little desktop box, one blk_done_softirq() loop iteration can take up to a few milliseconds, leaving me wondering if breaking that loop will help a studly box much. iow, I'd like to know how bad it gets, if one iteration can be huge, loop breaking there is fairly pointless, and I can stop fiddling. Do you happen to know iteration time during a size huge block softirq hit? On my little box, loop break/re-raise and whatnot improves the general case substantially, but doesn't do much at all for worst case.. or rather the next worst case in a list of unknown length ;-)
-Mike
| |