Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751463AbdCZDef (ORCPT ); Sat, 25 Mar 2017 23:34:35 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:35781 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751259AbdCZDed (ORCPT ); Sat, 25 Mar 2017 23:34:33 -0400 Date: Sat, 25 Mar 2017 20:34:30 -0700 From: Eric Biggers To: linux-fsdevel@vger.kernel.org Cc: Alexander Viro , Christoph Lameter , linux-kernel@vger.kernel.org, Eric Biggers Subject: Re: [PATCH] fs/buffer.c: make bh_lru_install() more efficient Message-ID: <20170326033430.GA20915@zzz> References: <20161229193445.1913-1-ebiggers3@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161229193445.1913-1-ebiggers3@gmail.com> User-Agent: Mutt/1.8.0 (2017-02-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 992 Lines: 25 On Thu, Dec 29, 2016 at 01:34:45PM -0600, Eric Biggers wrote: > From: Eric Biggers > > 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 Ping? Al, do you have any interest in taking this patch? - Eric