This is a combination and evolution of two previous series:
https://listman.redhat.com/archives/libguestfs/2021-February/msg00091.html
https://listman.redhat.com/archives/libguestfs/2021-February/msg00094.html
I made a few enhancements:
- Separate macros for the platforms where we enhance reading
(#ifdef PAGE_CACHE_MAPPING), vs writing (#ifdef EVICT_WRITES).
This was mainly about renaming stuff.
- When writing we now use 8 windows instead of 2 [both per thread].
This reduces the overhead from about 25% to about 10%. It's
possible to reduce it further by using more windows, but you trade
the amount of cruft added to the page cache.
- This patch series is much more well-tested than before, including
combining it with TLS, and testing it from the nbdkit test suite.
Rich.