Re: Delete scheduler SD_WAKE_AFFINE and SD_WAKE_BALANCE flags

From: Nick Piggin (nickpiggin_at_yahoo.com.au)
Date: 07/29/05

  • Next message: Ingo Molnar: "Re: Delete scheduler SD_WAKE_AFFINE and SD_WAKE_BALANCE flags"
    Date:	Fri, 29 Jul 2005 18:48:07 +1000
    To: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
    
    

    Chen, Kenneth W wrote:
    > Nick Piggin wrote on Thursday, July 28, 2005 7:01 PM

    > This clearly outlines an issue with the implementation. Optimize for one
    > type of workload has detrimental effect on another workload and vice versa.
    >

    Yep. That comes up fairly regularly when tuning the scheduler :(

    >
    > I won't try to compromise between the two. If you do so, we would end up
    > with two half baked raw turkey. Making less aggressive load balance in the
    > wake up path would probably reduce performance for the type of workload you
    > quoted earlier and for db workload, we don't want any of them at all, not
    > even the code to determine whether it should be balanced or not.
    >

    Well, that remains to be seen. If it can be made _smarter_, then you
    may not have to take such a big compromise.

    But either way, there will have to be some compromise made. At the
    very least you have to find some acceptable default.

    > Do you have an example workload you mentioned earlier that depends on
    > SD_WAKE_BALANCE? I would like to experiment with it so we can move this
    > forward instead of paper talk.
    >

    Well, you can easily see suboptimal scheduling decisions on many
    programs with lots of interprocess communication. For example, tbench
    on a dual Xeon:

    processes 1 2 3 4

    2.6.13-rc4: 187, 183, 179 260, 259, 256 340, 320, 349 504, 496, 500
    no wake-bal: 180, 180, 177 254, 254, 253 268, 270, 348 345, 290, 500

    Numbers are MB/s, higher is better.

    Networking or other IO workloads where processes are tightly coupled
    to a specific adapter / interrupt source can also see pretty good
    gains.

    -- 
    SUSE Labs, Novell Inc.
    Send instant messages to your online friends http://au.messenger.yahoo.com 
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Ingo Molnar: "Re: Delete scheduler SD_WAKE_AFFINE and SD_WAKE_BALANCE flags"

    Relevant Pages

    • Re: Linux 2.6.23
      ... i'm aware of a 2.6.21 vs. 2.6.23 sysbench regression report, ... Sysbench is a pretty 'batched' workload: ... The longer the client can work the ... SCHED_BATCH will cause the scheduler to batch up the workload more. ...
      (Linux-Kernel)
    • Re: [PATCH] Avoid moving tasks when a schedule can be made.
      ... It's up to you what you care about, but right now the scheduler policy is that we do care about latencies. ... Yes, it's obviously all subject to common sense, and if something triggers in a rare and extreme workload then any change related to it has a _much_ higher barrier of acceptance than a common codepath. ... At a minimum rwsems should be declared irq-unsafe, as all the substantial uses are in process-context codepaths anyway. ...
      (Linux-Kernel)
    • Re: Linux 2.6.23
      ... i'm aware of a 2.6.21 vs. 2.6.23 sysbench regression report, ... Sysbench is a pretty 'batched' workload: ... The longer the client can work the ... SCHED_BATCH will cause the scheduler to batch up the workload more. ...
      (Linux-Kernel)
    • Re: 2.6.5-mm5
      ... > instead of fdatasync so you can see if those fsync speedup patches are ... > offering anything with this workload too. ... The only other significant scheduler changes since that kernel ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: Random file I/O regressions in 2.6
      ... > workloads similar to a database under intensive load. ... > tested with AS giving the best results for this workload, ... > requests is limited by 10000. ... nr_requests, relaxing IO scheduler deadlines, or turning off readahead. ...
      (Linux-Kernel)