Announcement

Collapse
No announcement yet.

Windows NT Synchronization Primitive Driver For The Linux Kernel Revised

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

  • Windows NT Synchronization Primitive Driver For The Linux Kernel Revised

    Phoronix: Windows NT Synchronization Primitive Driver For The Linux Kernel Revised

    Last week CodeWeavers engineer Elizabeth Figura posted the initial patches for a Windows NT synchronization primitive driver for Linux for exposing /dev/ntsync for exposing some synchronization primitives available under Windows directly within the Linux kernel. This has the potential of sharply speeding up some Windows games and applications running under Wine on Linux or the likes of Valve's Steam Play (Proton). This week a second iteration of the patches were posted...

    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
    Is there any comparison available with esync/fsync enabled instead of just upstream Wine?

    Comment


    • #3
      I think it was Dirt 3 that ran really bad on my crappy machine.
      A 600%+ optimization is welcome!

      Comment


      • #4
        Originally posted by AsciiWolf View Post
        Is there any comparison available with esync/fsync enabled instead of just upstream Wine?
        According to the LPC 2023 presentation(which is linked in the previous articles). esync , fsync and ntsync have same performance but ntsync handle edge cases better.

        Comment


        • #5
          Didn't Collabora work on FUTEX2 meant to solve the same problem?
          Last edited by simburde; 01 February 2024, 09:51 AM.

          Comment


          • #6
            It appears that Michael needs to play games very intensively in the coming months.‚Äč

            Comment


            • #7
              Originally posted by AsciiWolf View Post
              Is there any comparison available with esync/fsync enabled instead of just upstream Wine?
              futex2 is slightly faster, but less correct, which breaks rare apps/games.

              Comment


              • #8
                Originally posted by simburde View Post
                Didn't Collabora work on FUTEX2 meant to solve the same problem?
                futex2 can only implement a subset of the NT sync API correctly. "Correctly" here means very subtle differences that are usually not triggered in practice, but some rare apps/games do break from it, mostly because they have bad code to begin with. It's hard to reproduce too because race condition quirks aren't fun to debug.

                esync is much worse in this regard.

                Comment


                • #9
                  Originally posted by Weasel View Post
                  futex2 can only implement a subset of the NT sync API correctly. "Correctly" here means very subtle differences that are usually not triggered in practice, but some rare apps/games do break from it, mostly because they have bad code to begin with. It's hard to reproduce too because race condition quirks aren't fun to debug.

                  esync is much worse in this regard.
                  From the presentation it is clear that they haven't found a single game or application that actually uses the parts of the API are not correctly handled by futex2.

                  Comment


                  • #10
                    I was a little mislead by the title. When I saw ntsync I imagined that it referred to some pre ntp/sntp Window NT clock sunchronisation service which seemed a bit odd in the context of games performance (under Wine.)

                    The positive outcome was I followed up the patchset which seems to me a rather nice piece of work and discovered that the 'sync' actually referred to process/thread synchronisation. So more like WinNT IPC

                    Comment

                    Working...
                    X