"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
    8 months 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
      ·
      8 months 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
        ·
        8 months 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
        ·
        8 months 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.

  • echo64@lemmy.world
    link
    fedilink
    arrow-up
    52
    ·
    8 months ago

    this is a very misleading headline and does not reflect reality. the linux kernel absolutely uses more than 8 cores. there may be some timing changes that cap out at 8 cores. it’s really not the big deal the headline and article suggests.

  • duncesplayed@lemmy.one
    link
    fedilink
    English
    arrow-up
    24
    ·
    8 months ago

    I love the arrogant confidently incorrect at the end of the blog.

    • The comments in the code are wrong
    • The official documentation is wrong
    • The manpage is wrong
    • Every blog article ever written is wrong
    • Linus Torvalds is wrong
    • Everyone who knows what they’re talking about is wrong
    • No, I don’t know how to read kernel code. Why do you ask? You’re wrong
    • Shut up. You’re wrong
  • h3ndrik@feddit.de
    cake
    link
    fedilink
    arrow-up
    19
    ·
    8 months ago

    Isn’t there quite some information missing? Which scheduler is affected? What are the are the exact consequences since we’re talking about latency in the first part of the article. Did it affect the AMD Epyc processors that run all the VPS?

    • waigl@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      8 months ago

      Nothing is affected. The headline is largely bullshit. A minor optimization for high core-count systems did not go as far as originally planned, and that may or may not have made a barely noticable difference.

  • waigl@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    8 months ago

    The title is highly misleading — which should be obvious enough to anybody who has been using Linux in the last 15 years. Of course Linux has been able to use more than 8 cores this entire time. Many of us would have noticed a long time ago if it didn’t

    The article is talking about a minor optimization of scheduler granularity to make better use of multi-core machines. It would increase the size of the scheduler’s time slice to make use of the fact that in a highly multi-cored system, you would very likely have some core available to react to user inputs fast, even if processes are running, thereby saving on some context switches. Apparently, this optimization didn’t not go as far as originally planned for CPUs with more than eight cores.

    Personally, I don’t expect it would have made a major difference of it had.

    The headline here is frankly going past a simplified summary and well into dishonest territory. I would take everything this author says with a huge helping of salt, including his claims that all the documentation and even code comments about that mechanism are wrong.

  • BananaTrifleViolin@kbin.social
    link
    fedilink
    arrow-up
    11
    ·
    edit-2
    8 months ago

    This feels misleading? They’re claiming Linux has been hard coded to 8 cores but from what they describe in the article it is specifically the scaling of the scheduler?

    If I understood correctly the more cores you have, the more you could scale up the time each individual task gets on a CPU core without experiencing latency for the end user?

    I can see that would have a benefit in terms of user perception Vs efficient use of processing time but it doesn’t mean all the cores aren’t being used? It just means the kernel is still switching between tasks at say 5ms when it could be doing it at 20ms if you have lots of cores and the user wouldn’t notice. I can imagine that would be more efficient but it’s definitely not the same as being capped to 8 cores; all the cores and CPUs are being scheduled just not in a way that might be the most optimal for some users.

    Is that right? I feel like the title massively overplays the issue if so. It should be fixed but it doesn’t affect how many cores are used or even how fasr they work, merely how big the chunks of time each task get to run and how you can “hide” that from desktop users so the experience feels slick?

  • Fizz@lemmy.nz
    link
    fedilink
    arrow-up
    9
    arrow-down
    2
    ·
    8 months ago

    How has no one noticed a server first kernel being limited to 8 cores?

    • aard@kyu.de
      link
      fedilink
      arrow-up
      23
      ·
      8 months ago

      Because it isn’t. This impacts when the scheduler kicks in, not on how many cores stuff is running on. With fewer cores scheduler is faster triggered again, and and at 8 cores the adjustment for that stops. Which may be an intentional decision to avoid high latency issues.

  • ares35@kbin.social
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    8 months ago

    good thing i can’t afford such extravagant luxuries as a cpu with more than 8 cores. never would have affected me.