Re: ll_rw_blk.c and high memory

2001-05-30 Thread Jens Axboe

On Wed, May 30 2001, Mark Hemment wrote:
> Hi Jens, all,
> 
>   In drivers/block/ll_rw_blk.c:blk_dev_init(), the high and low queued
> sectors are calculated from the total number of free pages in all memory
> zones.  Shouldn't this calculation be passed upon the number of pages upon
> which I/O can be done directly (ie. without bounce pages)?

Yes it should

>   On a box with gigabytes of memory, high_queued_sectors becomes larger
> than the amount of memory upon which block I/O can be directly done - the
> test in ll_rw_block() against high_queued_sectors is then never true.  The
> throttling of submitting I/O happens much earlier in the stack - at
> the allocation of a bounce page.  This doesn't seem right.

It's not, I've known this for some time. With some queues doing highmem
I/O though, it becomes less easy to do it. But I'll just change it to
look at the number of low mem pages available. I doubt it would matter
much, the throttling is mainly meant for machines short on memory. For
machines with lots of RAM, the throttling will probably never be
activated anyway.

-- 
Jens Axboe

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



ll_rw_blk.c and high memory

2001-05-30 Thread Mark Hemment

Hi Jens, all,

  In drivers/block/ll_rw_blk.c:blk_dev_init(), the high and low queued
sectors are calculated from the total number of free pages in all memory
zones.  Shouldn't this calculation be passed upon the number of pages upon
which I/O can be done directly (ie. without bounce pages)?

  On a box with gigabytes of memory, high_queued_sectors becomes larger
than the amount of memory upon which block I/O can be directly done - the
test in ll_rw_block() against high_queued_sectors is then never true.  The
throttling of submitting I/O happens much earlier in the stack - at
the allocation of a bounce page.  This doesn't seem right.

Mark

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



ll_rw_blk.c and high memory

2001-05-30 Thread Mark Hemment

Hi Jens, all,

  In drivers/block/ll_rw_blk.c:blk_dev_init(), the high and low queued
sectors are calculated from the total number of free pages in all memory
zones.  Shouldn't this calculation be passed upon the number of pages upon
which I/O can be done directly (ie. without bounce pages)?

  On a box with gigabytes of memory, high_queued_sectors becomes larger
than the amount of memory upon which block I/O can be directly done - the
test in ll_rw_block() against high_queued_sectors is then never true.  The
throttling of submitting I/O happens much earlier in the stack - at
the allocation of a bounce page.  This doesn't seem right.

Mark

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



Re: ll_rw_blk.c and high memory

2001-05-30 Thread Jens Axboe

On Wed, May 30 2001, Mark Hemment wrote:
 Hi Jens, all,
 
   In drivers/block/ll_rw_blk.c:blk_dev_init(), the high and low queued
 sectors are calculated from the total number of free pages in all memory
 zones.  Shouldn't this calculation be passed upon the number of pages upon
 which I/O can be done directly (ie. without bounce pages)?

Yes it should

   On a box with gigabytes of memory, high_queued_sectors becomes larger
 than the amount of memory upon which block I/O can be directly done - the
 test in ll_rw_block() against high_queued_sectors is then never true.  The
 throttling of submitting I/O happens much earlier in the stack - at
 the allocation of a bounce page.  This doesn't seem right.

It's not, I've known this for some time. With some queues doing highmem
I/O though, it becomes less easy to do it. But I'll just change it to
look at the number of low mem pages available. I doubt it would matter
much, the throttling is mainly meant for machines short on memory. For
machines with lots of RAM, the throttling will probably never be
activated anyway.

-- 
Jens Axboe

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