Conversation

Uncached buffered IO is back, after a 5 year hiatus. Simpler and cleaner now. Up to 65-75% improvement, at half the CPU usage on my system. And none of the nonsense of the unpredictability of the page cache. See commit 1 and 3 for read/write perf data.

https://git.kernel.dk/cgit/linux/log/?h=buffered-uncached.2

2
3
0

@axboe I haven't been following any of this… why is it much simpler this time around?

1
0
0

@Aissen Because it's now just using the page cache as the synchronization rather than private pages, which is what the version from 5 years ago did.

Still got a few kinks to iron out, but there's not much to this now.

1
0
0

@axboe interesting! Couldn't this be used to force-drop some highly needed pages (by other processes) from the page cache, forcing a re-read?

1
0
0

@Aissen Right now it drops everything, but you could just drop the parts you instantiated. Only tricky bit there is read-ahead.

1
0
0

@axboe no, I was thinking as a local attack on performance by a different user, but anyone can do that already with posix_fadvise anyway.

1
0
0

@Aissen Yeah this is nothing new in that sense, the page cache is per-inode anyway.

0
0
0
@axboe @kernellogger Might be interesting for NFSD too.
0
0
1