|
|
Subscribe / Log in / New account

Windows NT synchronization primitives for Linux

Windows NT synchronization primitives for Linux

Posted Feb 21, 2024 1:03 UTC (Wed) by itsmycpu (guest, #139639)
In reply to: Windows NT synchronization primitives for Linux by pizza
Parent article: Windows NT synchronization primitives for Linux

> Didn't Figura include benchmarks ...

The wait-for-all function is not relevant to any benchmarks shown.

Similar benchmarks show that other solutions (which do not require kernel patches, at least not additional ones) have similar performance or even marginally better, for the benchmarked games.

And, those don't exhaust the possibilities of userspace solutions in general, and their shortcomings are not inherent to non-kernel solutions in general.


to post comments

Windows NT synchronization primitives for Linux

Posted Feb 21, 2024 1:17 UTC (Wed) by pizza (subscriber, #46) [Link] (3 responses)

> Similar benchmarks show that other solutions (which do not require kernel patches, at least not additional ones) have similar performance or even marginally better, for the benchmarked games.

Citation, please?

Because I remember this bit of drama going back many, many, many years, and the only reason a kernel-based proposal has been worked on at all was that the userspace-based options weren't anywhere near performant enough.

Windows NT synchronization primitives for Linux

Posted Feb 21, 2024 2:00 UTC (Wed) by itsmycpu (guest, #139639) [Link] (2 responses)

https://www.youtube.com/watch?v=NjU4nyWyhU8
At about 14:06.

In my view the best slide of that presentation is the one mentioning "fast user-space RPC" as a "half-baked idea", called an "interesting idea".

(Such concepts exist for a long time in all kind of variations. Some people associate the concept with "actors" in a multi-threaded context, or "asynchronous message queues". I'm using something that could go by that label (though so far within a single process, between threads) for many years, and it works very well, using lock-free queues. As a low-level implementation, execution time in a loop is a small single-digit number of nanoseconds.)

Windows NT synchronization primitives for Linux

Posted Feb 21, 2024 3:04 UTC (Wed) by pizza (subscriber, #46) [Link] (1 responses)

> In my view the best slide of that presentation is the one mentioning "fast user-space RPC" as a "half-baked idea", called an "interesting idea".

Ah, so this mythical other approach is just that; no implementation much less any benchmarks showing it to be just as good or better than the kernel-based approach that exists _today_.

> I'm using something that could go by that label (though so far within a single process, between threads) for many years, and it works very well, using lock-free queues

...Um, you do realize that Wine needs to synchronize between multiple independent heayweight *processes* ?

Windows NT synchronization primitives for Linux

Posted Feb 21, 2024 3:23 UTC (Wed) by itsmycpu (guest, #139639) [Link]

> Ah, so this mythical other approach is just that; no implementation much less any benchmarks showing it to be just as good or better than the kernel-based approach that exists _today_.

There are several existing approaches that have the same performance, just the existing ones also have shortcomings which that approach would not have.

> ...Um, you do realize that Wine needs to synchronize between multiple independent heayweight *processes* ?

Yes, as indicated I do, however I wonder what you mean with a "heavyweight" process?

Shared memory is as fast between processes (I measured it), and can be read-protected or write-protected for specific processes.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds