On Thu, Mar 20, 2008 at 6:20 AM, Andrew Morton <akpm@linux-foundation.org> wrote:I've experienced the same kind of degradation with buffered IO vs direct specifically when using Linux partitions. Using the full block device doesn't create such fragmented IOs. The problem was reported to the blktrace list some weeks ago by my coworker (cc'ing Ming): http://marc.info/?l=linux-btrace&m=120296070516776&w=2 (fyi, Ming forgot to use oflag=sync, this explains the weird results when doing buffered writes while blktrace'ing) To summarize a little more (without messing round with partition alignment), the test system is x86_64 with 4GB, storage is directly connected via aacraid, 7200 rpm SATA disk. Using: dd if=/dev/zero of=/dev/sdhX bs=1M oflag=sync count=4 seek=2 and dd if=/dev/zero of=/dev/sdhX bs=1M oflag=direct count=4 seek=2 full disk case (sdh): buffered writes are +8 and being merged to 3 512k requests, 1 8k and 1 504k (27MB/s) odirect writes are all +512 (35MB/s) partitioned case: a 3GB sdh1 and ~720GB sdh2. buffered writes to partition1 are +1 and are merged to 65k requests (10.3MB/s) buffered writes to partition2 are +2 and are merged to 130k requests (15.2MB/s) odirect writes to either partition are all +512 (27MB/s) So it appears partition size matters (at least in this case)? As you can see performing buffered writes to a partition resulted in very small requests, much like David reported in his original post (+1 or +2 via blktrace). This happens with every kernel tried; 2.6.22, 2.6.24, RHEL5U1, etc. cfq vs deadline doesn't change anything. For partitions, changing partition alignment to a power of 2 actually hurt!? Mike --
| Jens Axboe | Re: [BUG] New Kernel Bugs |
| KAMEZAWA Hiroyuki | Re: 2.6.24-rc3-mm1 |
| Ingo Molnar | Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS] |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jarek Poplawski | Re: Data corruption issue with splice() on 2.6.27.10 |
| Patrick McHardy | Re: [GIT]: Networking |
