Announcement

Collapse
No announcement yet.

Linux 5.16 Features Include FUTEX2, Intel AMX, Folios, DG2/Alchemist, More Apple Silicon Support

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

  • Linux 5.16 Features Include FUTEX2, Intel AMX, Folios, DG2/Alchemist, More Apple Silicon Support

    Phoronix: Linux 5.16 Features Include FUTEX2, Intel AMX, Folios, DG2/Alchemist, More Apple Silicon Support

    Now that the Linux 5.16 merge window has ended with yesterday's Linux 5.16-rc1 release, here is my lengthy original overview of what I find most interesting out of this new kernel version. Linux 5.16 won't be out as stable until around the end of the calendar year or early next year, but it will sure make one nice Christmas gift with all of the shiny new features in tow.

    https://www.phoronix.com/vr.php?view=30689

  • #2
    What a great release 5.16 is going to be

    Comment


    • #3
      I noticed HID_NINTENDO is mainlined, but not even added as a module. So even when 5.16 gets released, gonna have to compile your own kernel, or a kernel flavor that bakes it in (like xanmo). Still waiting to see if I can verify the new FUTEX2 in 5.16-rc1 if anyone knows for certain or how to verify.

      Ubuntu 5.16 default:

      $ grep -ri 'hid_nintendo'
      ./ubuntu-5.16-defaults/config.common.ubuntu:# CONFIG_HID_NINTENDO is not set

      Perpetually High's kernel:

      $ grep -ri 'hid_nintendo' /boot/config-5.16-rc1-051600rc1+customidle-generic
      CONFIG_HID_NINTENDO=m

      Comment


      • #4
        $ git log --grep futex2
        commit 595b28fb0c8949463d8ec1e485f36d17c870ddb2
        Merge: 91e1c99e175a f98a3dccfcb0
        Author: Linus Torvalds <[email protected]>
        Date: Mon Nov 1 13:15:36 2021 -0700

        Merge tag 'locking-core-2021-10-31' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

        Pull locking updates from Thomas Gleixner:

        - Move futex code into kernel/futex/ and split up the kitchen sink into
        seperate files to make integration of sys_futex_waitv() simpler.

        - Add a new sys_futex_waitv() syscall which allows to wait on multiple
        futexes.


        The main use case is emulating Windows' WaitForMultipleObjects which
        allows Wine to improve the performance of Windows Games. Also native
        Linux games can benefit from this interface as this is a common wait
        pattern for this kind of applications.
        ....

        Comment


        • #5
          @perpetually high
          It looks like it's using CONFIG_FUTEX

          Comment


          • #6
            I'm happy that the sensors for my Asus motherboard will be supported without having to patch and build my own kernel. Not that it is hard to do so on Arch Linux, but it is annoying and time consuming.

            Still need the zenpower dkms module to get all the data from my Ryzen CPU, anyone know why that isn't being upstreamed?

            Comment


            • #7
              Originally posted by perpetually high View Post
              I noticed HID_NINTENDO is mainlined, but not even added as a module. So even when 5.16 gets released, gonna have to compile your own kernel, or a kernel flavor that bakes it in (like xanmo). Still waiting to see if I can verify the new FUTEX2 in 5.16-rc1 if anyone knows for certain or how to verify.

              Easiest way is to simply look at the actual source code https://git.kernel.org/pub/scm/linux....c?h=v5.16-rc1 and there you find:
              Code:
              /** * sys_futex_waitv - Wait on a list of futexes
              * @waiters: List of futexes to wait on
              * @nr_futexes: Length of futexv
              * @flags: Flag for timeout (monotonic/realtime)
              * @timeout: Optional absolute timeout.
              * @clockid: Clock to be used for the timeout, realtime or monotonic.
              *
              * Given an array of `struct futex_waitv`, wait on each uaddr. The thread wakes
              * if a futex_wake() is performed at any uaddr. The syscall returns immediately
              * if any waiter has *uaddr != val. *timeout is an optional timeout value for
              * the operation. Each waiter has individual flags. The `flags` argument for
              * the syscall should be used solely for specifying the timeout as realtime, if
              * needed. Flags for private futexes, sizes, etc. should be used on the
              * individual flags of each waiter.
              *
              * Returns the array index of one of the woken futexes. No further information
              * is provided: any number of other futexes may also have been woken by the
              * same event, and if more than one futex was woken, the retrned index may
              * refer to any one of them. (It is not necessaryily the futex with the
              * smallest index, nor the one most recently woken, nor...)
              */
              SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters, unsigned int, nr_futexes, unsigned int, flags, struct __kernel_timespec __user *, timeout, clockid_t, clockid) {
              And you can find the Nintendo Joycon driver/module here https://git.kernel.org/pub/scm/linux....c?h=v5.16-rc1
              Last edited by F.Ultra; 15 November 2021, 01:37 PM.

              Comment


              • #8
                For me personally, the retpoline work stands out the most. Can't exactly understand it in full but I'll welcome any and all work to improve upon the software mitigations that were needed to deal with hardware problems that were entirely avoidable with better design. Not enough praise can be given, as far as I'm concerned, to the people working on optimizing those mitigations.

                Comment


                • #9
                  dear linux experts
                  sorry for being so dumb but I have the ES8336 sound card in my Chuwi Laptop, not playing sound to internal devices ... in the pull request https://github.com/thesofproject/linux/pull/2962 the dev says a kernel fix "should land in kernel 5.16 at best (still missing the updated codec parts)" : do you think this could solve my issue ?
                  thanks !

                  Comment

                  Working...
                  X