From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Bottomley Subject: Re: How to make kernel block layer generate bigger request in the request queue? Date: Mon, 12 Apr 2010 14:58:29 -0500 Message-ID: <1271102309.4428.85.camel@mulgrave.site> References: <4BBFBE3E.5070605@gmail.com> <1270911503.2806.194.camel@mulgrave.site> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Return-path: Received: from cantor.suse.de ([195.135.220.2]:37477 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753355Ab0DLT6g (ORCPT ); Mon, 12 Apr 2010 15:58:36 -0400 In-Reply-To: Sender: linux-mmc-owner@vger.kernel.org List-Id: linux-mmc@vger.kernel.org To: "Martin K. Petersen" Cc: Robert Hancock , "Gao, Yunpeng" , "linux-ide@vger.kernel.org" , "linux-mmc@vger.kernel.org" On Mon, 2010-04-12 at 14:26 -0400, Martin K. Petersen wrote: > >>>>> "James" == James Bottomley writes: > > >> Correct. It's quite unlikely for pages to be contiguous so this is > >> the best we can do. > > James> Actually, average servers do about 50% contiguous on average > James> since we changed the mm layer to allocate in ascending physical > James> page order ... this figure is highly sensitive to mm changes > James> though, and can vary from release to release. > > Interesting. When did this happen? The initial work was done by Bill Irwin, years ago. For a while it was good, but then after Mel Gorman did the page reclaim code, we became highly sensitive to the reclaim algorithms for this, so it's fluctuated a bit ever since. Even with all this, the efficiency is highly dependent on the amount of free memory: once the machine starts running to exhaustion (excluding page cache, since that usually allocates correctly to begin with) the contiguity really drops. > Last time I gathered data on segment merge efficiency (1 year+ ago) I > found that adjacent pages were quite rare for a normal fs type workload. > Certainly not in the 50% ballpark. I'll take another look when I have a > moment... I got 60% with an I/O bound test with about a gigabyte of free memory a while ago (2.6.31, I think). Even for machines approaching memory starvation, 30% seems achievable. James