Announcement

Collapse
No announcement yet.

64-bit ARM Linux Kernel Against CPU-Specific Optimizations: "Pretty Unmaintainable"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #41
    Originally posted by Weasel View Post

    Windows is a fucking joke but that's for completely other reasons. That platform (API) is good though.
    I have always been a huge Windows supporter even after using desktop Linux for more than a decade. The way Windows, its filesystem hierarchy and layout, its development environment and its approach to many things just simply align with my belief of how an OS should be designed.

    And you are right, its API is really good. They are fucking complex, but hell just about every API, framework and toolkit Microsoft puts out for Windows is extremely comprehensive. The downside is that it's so complex it's extremely intimidating to even find a starting point to play with.

    Comment


    • #42
      Originally posted by Weasel View Post
      Well that makes more sense, but they can't do that on Linux, because it doesn't have a stable kernel ABI.

      It's not about being monolithic or not. It could very well be monolithic (modules loaded in same address space, as libraries) and have a stable ABI if they wished.

      I actually prefer monolithic because it has more performance, but I'm not a fan of unstable ABI at all.
      True, and the best part is, because the Windows kernel is stable, the vendors don't even need to submit their ISA modifications and optimizations to Microsoft as DLLs to be included into Windows if they don't want to, or if Microsoft doesn't want to. They could, I don't know, maybe package all those DLLs into an installer and tell users who want to use them to download said installer and install it themselves if users think they will really want those, at the risk of tainting and modifying Windows.

      Hell, even macOS's kernel maintains some degree of a stable ABI. It's common to see binary drivers in macOS survive at least one major macOS upgrade. Some drivers even can survive two or more major macOS upgrades.

      Comment


      • #43
        Originally posted by Sonadow View Post

        Come back and tell us that after connecting a QLogic QLGE card. Or 98% of the world's Android phones that use RNDIS for tethering.

        You are a mentally challenged clown.
        I didn't notice this response before. It seems I had my clown filter turned on. Can you translate above to human readable form? I'm not sure what your handicapped brain tried to share and how is this related?

        Comment


        • #44
          Originally posted by Weasel View Post
          No idea. Who cares? I hate ARM anyway.

          I was talking in general, not Linux kernel specifically; this is just one example. They are always obsessed with simplicity and "maintainability" and basically lazy to have it in, holding progress back even for contributors who contribute the god damn optimizations and code. How does losing 40% performance feel like to you because of some asshat maintainer who "doesn't find it useful" (as if he's the one using it!!! the nerve!!!)
          It doesn't make sense in general. You have to compare to something/someone to stay in touch to reality. Is Ferrari fast or slow? You got the point. They're also obsessed with performance when comes to x86-64, but that's a different topic. Yes, someone sends a small patch to optimize one scenario on single ARM CPU. His job is finished. However, maintainers will have to deal with this for many years and they probably have more important and interesting CPUs to care about. Like Apple M.

          So spare me the typical classic bullshit "where's your patch then?" talk, anyone who ever said that proves how little experience he has contributing anything to some open source where those clowns will simply ignore or reject it. Or that they're not even programmers in the first place.
          I don't use such slogans. You don't have to be programmer to have your own opinion on this subject. However, stop saying 'open source clowns', because they're ways above closed source clowns who do much less - have a point of reference.

          Windows is a fucking joke but that's for completely other reasons. That platform (API) is good though.
          It's easy to use, but it's full of holes due to bad designs made years ago. Such way is unacceptable on Linux.

          BTW: https://www.phoronix.com/news/Linux-...-UMS-DRM-Infra

          Open source maintainers are great, eh?
          Forgot about LTS kernels, didn't you?
          Last edited by Volta; 23 November 2023, 02:18 PM.

          Comment


          • #45
            Originally posted by Weasel View Post
            As much as I hate ARM, this does suck.

            This is why open source maintainers are a joke.
            Note the name of the poster, let's just take it from where it comes

            Comment


            • #46
              Originally posted by Volta View Post
              It's easy to use, but it's full of holes due to bad designs made years ago. Such way is unacceptable on Linux.
              I dispute that it's even easy to use. Have you seen what goes into doing a proper "Before I do this heavy work I need to know what filename to open for writing, I want to bail out early with an error message if the parent directory isn't writable" check? On POSIX platforms, it's a simple use of the faccess(2) libc function. On Windows, it's this huge, complex hunk of code to query Windows's massively overcomplicated permissions model which just gets copied and ported whenever a new language needs a portable access(2) wrapper.

              Here's what it looks like when unrolled into Rust code. Compare to the POSIX counterpart just above it in the other conditional compilation block.

              Comment


              • #47
                ARM may have been affected by Android, with excessive fragmentation.
                Even the most important manufacturer, Qualcomm, cannot provide a unified kernel for their own CPUs. They maintain dozens of different kernel branches for different CPUs, which is simply absurd​.

                Comment


                • #48
                  Originally posted by Volta View Post
                  It doesn't make sense in general. You have to compare to something/someone to stay in touch to reality. Is Ferrari fast or slow? You got the point. They're also obsessed with performance when comes to x86-64, but that's a different topic. Yes, someone sends a small patch to optimize one scenario on single ARM CPU. His job is finished. However, maintainers will have to deal with this for many years and they probably have more important and interesting CPUs to care about. Like Apple M.
                  Ok, but what about the users who will lose 40% performance in this scenario? It's not just about the dev pushing his patch here.

                  Originally posted by Volta View Post
                  I don't use such slogans. You don't have to be programmer to have your own opinion on this subject. However, stop saying 'open source clowns', because they're ways above closed source clowns who do much less - have a point of reference.
                  Yeah, there's a ton of trash closed source software. Far more than open source. But that's not because of the maintainers, it's because the developers themselves are terrible.

                  But, having worked with both, I noticed a pattern. Closed source maintainers in general give you more free reign and don't care as much about "hacks", if they turn out to be helping the end product in some way. Open source maintainers are much more "purist" when it comes to the code itself, rather than the end product. They care more about that than the end product helping end users.

                  This is speaking in general, there's obvious exceptions on both sides, but just a trend.

                  There's obviously also a ton of clowns who can't even reason about control flow properly, but I'm excluding those since that's not worth a discussion.

                  Comment


                  • #49
                    Originally posted by Weasel View Post
                    But, having worked with both, I noticed a pattern. Closed source maintainers in general give you more free reign and don't care as much about "hacks", if they turn out to be helping the end product in some way. Open source maintainers are much more "purist" when it comes to the code itself, rather than the end product. They care more about that than the end product helping end users.
                    It's not like there is any kind of mystery around this.

                    Closed source projects just want to make their product work by a particular deadline, because they need to get their product on store shelves and selling by a certain date. They don't care if it's still working in 5 years, because by then they'll be working on selling the next product.

                    Open source projects care about making sure the design is as maintainable as possible, because they have limited manpower and wish to have good support for decades into the future. They can't simply throw money at it, like closed source projects can, because they're not leveraging sales money. And it's way tougher to find a volunteer developer to work on a project full of junk code - closed source devs just get paid to work on whatever they're told to.

                    If you want to see open source projects act more like closed source projects, then the solution is simple. Fund them like closed source projects. Start paying money to use them. Once the money starts flowing, they'll have pressure to deliver or the money will stop. But if people keep using them for free, then be prepared for those projects to attempt to minimize the work on their end as much as possible.
                    Last edited by smitty3268; 24 November 2023, 07:56 PM.

                    Comment


                    • #50
                      Originally posted by Weasel View Post
                      Ok, but what about the users who will lose 40% performance in this scenario? It's not just about the dev pushing his patch here.
                      Just because these specific patches are currently blocked does not mean that the door is completely closed. Linus Walleij have suggested that a much better place for this is in the memory hierarchy manager (mm) which would make the kernel work better on all hw that have a hw prefetcher.

                      TL;DR: this is a hack, if you want to accelerate the memory hierarchy,
                      then work with the MM developers to figure out how to do that in a
                      structured and scientific way that will work with any prefetching hardware
                      on any CPU.

                      Yours,
                      Linus Walleij​

                      Comment

                      Working...
                      X