Wine Developers Are Working On A New Linux Kernel Sync API To Succeed ESYNC/FSYNC
CodeWeavers developer Zebediah Figura sent out a lengthy mailing list post on Sunday night outlining the current state and objectives of coming up with kernel-based Wine synchronization primitives. While the ESYNC/FSYNC patches were successful in improving the performance of many Windows games running on Linux, they are still working towards a more all encompassing solution and to match the behavior well for Windows and with optimal speed.
Wine developers are looking for a kernel interface close to that of Windows' NT synchronization object API with at most one system call per operation and without managing object state in user-managed shared memory. The existing ESYNC/FSYNC work contains inefficiencies and some applications not even working with the implementation. Thus it's taking a step back to discuss possible solutions and the kernel mailing list post does have a hypothetical user-space API being thought about at this time.
The proposed "NTSYNC" interface would expose a new /dev/ntsync device that more closely models the Windows NT synchronization object API compared to earlier approaches.
Those interested in all the technical details can see this kernel mailing list post. Patches for the proposed NTSYNC API have yet to be written but awaiting further feedback from upstream developers on any other design requirements and what would be considered acceptable for upstreaming into the mainline Linux kernel.