Re: buffer cache question

From: Nate Diller
Date: Wed Dec 28 2005 - 23:09:03 EST


> ----- Original Message -----
> From: Nate Diller
> To: JaniD++
> Cc: Roger Heflin ; linux-kernel@xxxxxxxxxxxxxxx
> Sent: Friday, December 23, 2005 9:58 AM
> Subject: Re: buffer cache question
>
> looks like you're barely using any of your high memory. maybe NBD doesn't
> have highmem support. what file system are you using?
>
> NATE
>
>
> I cannot understant this.
> NBD need to support highmem for buffering?
> If know right, the kernel does buffering, not NBD!
> But the kernel only use ~830MB for buffer cache instead of dinamically use
> all free memory like page cache.
>
> This is one raw disk node, independent from file system.
>

this is an NBD client, using CONFIG_BLK_DEV_NBD? on the 2.6 series
kernel? if so, then it, like any other kernel component using the
page cache, needs to explicity use kmap/kunmap to make use of memory
in the high memory zone. on a 32 bit machine, any pages above the 896
meg mark are treated specially inside the linux kernel (see
http://kerneltrap.org/node/2450).

if you don't have highmem support (CONFIG_HIGHMEM4G) enabled, then
enabling that should fix it. if you already have it enabled (it
looked like it to me, based on your /proc/meminfo) then there is a bug
somewhere.

it would seem from a brief inspection that the send/recv_bvec
functions in nbd (2.6.13) do use kmap. I don't know the nbd code very
well, it seems that Pavel Machek wrote the code, he or block layer
maintainer Jens Axboe may know something I don't. So if enabling
highmem in your .config doesn't help, try CC'ing them with your issue.
in the mean time, one of the memory split patches, such as the 4G:4G
patch, should get things working.

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