"The min_granularity setting was renamed to base_slice in this commit in v6 kernel.

The comment says it scales with CPU count and the comment is incorrect. I wonder whether kernel developers are aware of that mistake as they are rewriting the scheduler!

  • Official comments in the code says it’s scaling with log2(1+cores) but it doesn’t.
  • All the comments in the code are incorrect.
  • Official documentation and man pages are incorrect.
  • Every blog article, stack overflow answer and guide ever published about the scheduler is incorrect."
  • OsrsNeedsF2P@lemmy.ml
    link
    fedilink
    arrow-up
    66
    ·
    edit-2
    1 year ago

    Wish this BS article would stop getting posted everywhere.

    This article is clickbait and in no way has the kernel been hardcoded to a maximum of 8 cores. If you read the commit [0], you can see, that a /certain/ scaling factor for scheduling can scale linearly or logarithmically with the number of cores and for calculating this scaling factor, the number is capped to 8. This has nothing to do with the number of cores that can actually be used.

    [0] https://github.com/torvalds/linux/commit/acb4a848da821a095ae9e4d8b22ae2d9633ba5cd

    • Bruno Finger@lemm.ee
      link
      fedilink
      arrow-up
      3
      arrow-down
      2
      ·
      1 year ago
      unsigned int cpus = min(num_online_cpus(), 8);
      

      doesn’t that mean it’s actually at least 8, as in if you have 4 cores cpus will be assigned 8, if you have 20 cores cpus will be assigned 20.

      • subignition@kbin.social
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        No, I think min() returns the lower of two arguments. If you had 4 cores, min(4, 8) == 4, and if you had 20 cores, min(20, 8) == 8

      • BananaTrifleViolin@kbin.social
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Yeah I was wondering this too - is 8 the floor, 8 cores or below the value is always the same, but above 8 cores you then get your log progression? I don’t know enough about this though.