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 --
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Tejun Heo | [PATCHSET] FUSE: extend FUSE to support more operations |
| Linus Torvalds | Linux 2.6.27-rc8 |
| Linus Torvalds | Linux 2.6.27 |
git: | |
| Ken Pratt | pack operation is thrashing my server |
| Jari Aalto | Re: On Tabs and Spaces |
| Felipe Balbi | Re: git-svnimport |
| Jakub Narebski | Re: VCS comparison table |
| Marcos Laufer | dmesg IBM x3650 OpenBSD 4.3 |
| Kevin Neff | Patching a SSH 'Weakness' |
| F. Caulier | [Perl/locales] Warning about locales |
| OBSD | KSH and Bash problem with long commands |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Denys Fedoryshchenko | thousands of classes, e1000 TX unit hang |
| Chris Snook | [RFC] introducing the Atheros L2 Fast Ethernet driver |
| Tilman Schmidt | Re: 2.6.25-rc8: FTP transfer errors |
| Treason Uncloaked | 1 hour ago | Linux kernel |
| Shared swap partition | 12 hours ago | Linux general |
| high memory | 2 days ago | Linux kernel |
| semaphore access speed | 2 days ago | Applications and Utilities |
| the kernel how to power off the machine | 2 days ago | Linux kernel |
| Easter Eggs in windows XP | 2 days ago | Windows |
| Root password | 2 days ago | Linux general |
| Where/when DNOTIFY is used? | 2 days ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 2 days ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 2 days ago | Linux kernel |
