Tuesday 11 November 2014

BFS 457, linux-3.17-ck1

Finally announcing a resync and minor update of BFS for the linux-3.17(.x) kernel releases.

Only minor updates have gone into this release apart from including one of the rework patches by Alfred Chen (thanks!) and the removal of the old KVM workaround that was no longer required with the bugfixes last release courtesy of Graysky (thanks!).

BFS by itself:
3.17-sched-bfs-457.patch

CK branded BFS separate and combined patches:
3.17-ck1

For those interested in the minor changes that made it up to 457, the incremental patches are available:
bfs457-incremental

Enjoy!
お楽しみください

12 comments:

  1. --- linux-3.9.orig/kernel/sched/bfs.c
    +++ linux-3.9/kernel/sched/bfs.c
    @@ -962,16 +962,6 @@ static inline int locality_diff(struct t
    EXPORT_SYMBOL_GPL(cpu_scaling);
    EXPORT_SYMBOL_GPL(cpu_nonscaling);

    -/*
    - * activate_idle_task - move idle task to the _front_ of runqueue.
    - */
    -static inline void activate_idle_task(struct task_struct *p)
    -{
    - enqueue_task_head(p);
    - grq.nr_running++;
    - inc_qnr();
    -}
    -
    static inline int normal_prio(struct task_struct *p)
    {
    if (has_rt_policy(p))

    ReplyDelete
    Replies
    1. Thanks sid will include in next kernel's changes.

      Delete
  2. working great here. Thanks for the update

    ReplyDelete
  3. Thank You for that great scheduler!

    ReplyDelete
  4. Thank you so much for all your great work! Long live BFS!

    ReplyDelete
  5. I'm recompiling the kernel now with the new CK patch and the new UKSM beta patch which was coincidentally released about the same time. Thank you very much for working on this project. It helps breathe new life into old hardware.

    ReplyDelete
  6. I have an Intel desktop CPU with four cores. When I check out the idle C-states the CPU is in using the tool "i7z", I noticed only two of the cores are dropping into the C6 state when idle, while the other two cores mostly stay in C1 and only very rarely drop to C6 (basically never). This only happens when using BFS, not when using 3.17 and CFS.

    This was different until the 3.16 kernel. If I for example compare 3.16.7-ck with 3.17.0-ck, .1-ck and .2-ck, on 3.16 all four cores are typically 99% in the C6 state when nothing is going on.

    Is this only happening on my machine? Is this just some configuration mistake on my end?

    ReplyDelete
  7. I can confirm this on a Haswell i7-4790K:

    v3.17.3 with ck1:
    Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]
    TURBO ENABLED on 4 Cores, Hyper Threading ON
    Max Frequency without considering Turbo 4101.03 MHz (100.03 x [41])
    Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 44x/44x/44x/44x
    Real Current Frequency 4340.38 MHz [100.03 x 43.39] (Max of below)
    Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % C7 % Temp VCore
    Core 1 [0]: 3720.95 (37.20x) 1 99.1 0 0 0 32 1.2190
    Core 2 [1]: 3612.12 (36.11x) 1 2.84 0 0 96.8 29 1.2213
    Core 3 [2]: 4333.80 (43.33x) 1 0.117 0 0 99.8 29 1.2177
    Core 4 [3]: 4340.38 (43.39x) 1 99.9 0 0 0 29 1.2197

    Without ck1:
    Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]
    TURBO ENABLED on 4 Cores, Hyper Threading ON
    Max Frequency without considering Turbo 4101.03 MHz (100.03 x [41])
    Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 44x/44x/44x/44x
    Real Current Frequency 4405.05 MHz [100.03 x 44.04] (Max of below)
    Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % C7 % Temp VCore
    Core 1 [0]: 4405.05 (44.04x) 1 0 1 0 99.3 29 1.2190
    Core 2 [1]: 4390.54 (43.89x) 1 0 1 0 99.8 28 1.2213
    Core 3 [2]: 4399.58 (43.98x) 1 0 1 0 99.9 28 1.2177
    Core 4 [3]: 4379.85 (43.79x) 1 0.0254 0 0 99.9 25 1.2197


    This is using i7z compiled from git.

    ReplyDelete
    Replies
    1. Thanks, I think I can see how that would happen, working on a fix now.

      Delete
    2. You're welcome. Wish I knew how to display with a proportional font. Never cared for the blogspot interface... any chance of you opening up a github account for ck1? It has a very nice bug tracking system within the interface (called issues), it uses git which is a standard and will encourage others to contribute to your code, they can send you very convenient pull requests, and it's free :)

      I would love to see your code hosted on github in the future.

      Delete
  8. This is a significant enough regression to warrant a fresh release. Here's the quick fix for the impatient while I package together a new release:
    bfs457-458.patch

    ReplyDelete