Announcement

Collapse
No announcement yet.

Kernel Concurrency Sanitizer Set For Linux 5.5 To Uncover Data Race Conditions

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

  • Kernel Concurrency Sanitizer Set For Linux 5.5 To Uncover Data Race Conditions

    Phoronix: Kernel Concurrency Sanitizer Set For Linux 5.5 To Uncover Data Race Conditions

    Adding to the list of changes on deck for the Linux 5.5 kernel is a new "sanitizer" for spotting data race conditions...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    It would be way better if they could turn it on for specific modules, and even specific subsystems. That way, kernel developers aren't deluged by problems in other parts that they're not interested in.

    Static analysis of such problems, if possible, would also be a great additional improvement.

    Comment


    • #3
      Does the Linux kernel use C18?
      If C2x was added, would there still need to be concurrency checks and other checks?
      Or have newer versions of C such as C18 and C2x improved in any way to make the language more secure and safe?

      What if certain parts of the kernel could be written in Rust?

      Comment


      • #4
        Originally posted by sandy8925 View Post
        It would be way better if they could turn it on for specific modules, and even specific subsystems. That way, kernel developers aren't deluged by problems in other parts that they're not interested in.

        Static analysis of such problems, if possible, would also be a great additional improvement.
        Is this why Linux's successor will have a modular kernel?

        Comment


        • #5
          Originally posted by sandy8925 View Post
          It would be way better if they could turn it on for specific modules, and even specific subsystems. That way, kernel developers aren't deluged by problems in other parts that they're not interested in.
          Sorry no race conditions causing your driver to fail might be in the subsystem under your driver or might be in like memory management or scheduler. If your module is the only thing that does it limited scope will make you blind to it.

          Best policy is add a long term rule that anything mainline should not trip this tool. This should reduce the deluged being new getting to that point will take a while.

          Originally posted by sandy8925 View Post
          IStatic analysis of such problems, if possible, would also be a great additional improvement.
          This is being done live because the Linux kernel does not have a good solution to static analysis and detect these problems every single time. There is some static analysis used on the kernel that should prevent this.

          Originally posted by uid313 View Post
          Does the Linux kernel use C18?
          If C2x was added, would there still need to be concurrency checks and other checks?
          Or have newer versions of C such as C18 and C2x improved in any way to make the language more secure and safe?
          Linux kernel is C89/C90 + https://www.kernel.org/doc/html/late...ls/sparse.html

          Sparse addition in Linux build process moves it C version kind of past what C18 or C2x offers. Its not like C18 or C2x is going to be able to perform lock validation.

          Originally posted by sandy8925 View Post
          What if certain parts of the kernel could be written in Rust?
          That remains to be seen. Please remember Rust does have a unsafe mode so writing in Rust does not always say safe.

          Originally posted by josh_walrath View Post
          Is this why Linux's successor will have a modular kernel?
          Linux kernel is a modular kernel. Linux might be its own successor.

          Linux kernel is technically monolithic kernel modified to be modular kernel that has some microkernel/hybrid features(fuse stuff) and is also growing with bpf the means to have bytecode os netural parts running in kernel space. Like it already possible to ir device drivers as bpf bytecode.

          Linux kernel is very much open of the book of operating system design and add in anything you think could be interesting.

          Comment

          Working...
          X