Re: bounce buffer usage

Jens Axboe (axboe@suse.de)
Tue, 8 Jan 2002 08:42:00 +0100


On Mon, Jan 07 2002, Randy.Dunlap wrote:
> On Sun, 23 Dec 2001, Jens Axboe wrote:
>
> | On Fri, Dec 21 2001, Randy.Dunlap wrote:
> | > Are there any drivers in 2.4.x that support highmem directly,
> | > or is all of that being done in 2.5.x (BIO patches)?
> |
> | 2.4 + my block-highmem patches support direct highmem I/O.
> |
> | > Would it be useful to try this with a 2.5.1 kernel?
> |
> | Sure
>
>
> OK, here's 'fillmem 700' run against 5 kernels as described below,
> with my bounce io/swap statistics patch added.
>
> All tests are 6 instances of "fillmem 700" (700 MB) on a 4-way 4 GB
> x86 VA 4450 server.
>
> I'm including a reduced version of /proc/stat -- before and after the
> fillmem test in each case.
>
> Let me know if you'd like to see other variations.

The results look very promising, although I'm a bit surprised that 2.5
is actually that much quicker :-)

The bounce counts you are doing don't make too much sense to me though,
how come 2.4 + block-high and 2.5 show any bounced numbers at all? Maybe
you are not doing the accounting correctly? To get the right counts do
something ala:

+++ mm/highmem.c
@@ -409,7 +409,9 @@
vfrom = kmap(from->bv_page) + from->bv_offset;
memcpy(vto, vfrom, to->bv_len);
kunmap(from->bv_page);
- }
+ bounced_write++;
+ } else
+ bounced_read++;
}

Of course those are all bounces, not just (or only) swap bounces. Also
note that the above is not SMP safe.

-- 
Jens Axboe

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/