On Sat, Mar 25, 2017 at 08:34:30PM -0700, Eric Biggers wrote: > On Thu, Dec 29, 2016 at 01:34:45PM -0600, Eric Biggers wrote: > > From: Eric Biggers <ebigg...@google.com> > > > > To install a buffer_head into the cpu's LRU queue, bh_lru_install() > > would construct a new copy of the queue and then memcpy it over the real > > queue. But it's easily possible to do the update in-place, which is > > faster and simpler. Some work can also be skipped if the buffer_head > > was already in the queue. > > > > As a microbenchmark I timed how long it takes to run sb_getblk() > > 10,000,000 times alternating between BH_LRU_SIZE + 1 blocks. > > Effectively, this benchmarks looking up buffer_heads that are in the > > page cache but not in the LRU: > > > > Before this patch: 1.758s > > After this patch: 1.653s > > > > This patch also removes about 350 bytes of compiled code (on x86_64), > > partly due to removal of the memcpy() which was being inlined+unrolled. > > > > Signed-off-by: Eric Biggers <ebigg...@google.com> > > Ping? Al, do you have any interest in taking this patch? > > - Eric IMO, It is great patch. Could you please share your microbenchmark steps? I wanna take a deep look at it.