Re: NBUF limits on all OpenServer versions
From: Bela Lubkin (belal_at_sco.com)
Date: 08/26/03
- Next message: Stuart Marshall: "Re: ESR urges to cease DOS attack"
- Previous message: tony_at_aplawrence.com: "Re: SCO Down News (3 Stories)"
- In reply to: Frederico Fonseca: "NBUF limits on all OpenServer versions"
- Next in thread: Frederico Fonseca: "Re: NBUF limits on all OpenServer versions"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 26 Aug 2003 11:10:43 GMT To: scomsc@xenitec.ca
Frederico Fonseca wrote:
> After some searches on google, it seems that the value for NBUF in
> these systems is limited to around 450MB.
>
> If the above is correct, is there anyone that knows why this limit
> wasn't increased with 5.0.7?
> Technical explanation appreciated.
>
> If incorrect how do we change it to be above that limit as some of my
> colleagues would like to be able to do it.
The limit remains 450MB.
Buffer cache buffers are allocated out of kernel virtual addresses which
can be "direct mapped". These are addresses in the C0000000-DFFFFFFF
range. Kernel virtual addresses in this range can be converted to
physical addresses by subtracting C0000000; and conversely, physical
addresses below 20000000 can be converted to kernel virtual addresses by
adding C0000000. (Of course there are macros that should be used. You
wanted the technical details...)
The total range in question is 1/2 gigabyte. The actual limit of 450MB
was arbitrarily set to leave some direct-map space for other uses. It
could probably be pushed up to 475MB or something like that, but I
doubt you would find such a small increment helpful.
Why is the direct map important here? HBAs usually need to know the
physical address of a transfer buffer, since the DMA hardware speaks
physical addresses. Converting an virtual address to a physical address
is very cheap for addresses in the direct map. It's expensive for other
addresses, requiring the kernel to walk data structures looking for the
translation. HBA drivers typically use the cheap macros instead of the
expensive data-structure-walking functions; especially since the buffer
cache is designed to always give them a direct-map buffer address.
Expanding beyond the direct map would require one of:
(1) another bounce-buffer scheme where the buffer cache would always
pass direct-map addresses to the HBA driver, then copy the data
elsewhere (as is already done for HBA drivers that do ISA DMA to
addresses < 16MB); or
(2) new protocols between HBA drivers and the buffer cache, so the
buffer cache would know which buffers never to deliver to a
particular HBA. This would also require updated HBA drivers to
take advantage of the new scheme.
>Bela<
- Next message: Stuart Marshall: "Re: ESR urges to cease DOS attack"
- Previous message: tony_at_aplawrence.com: "Re: SCO Down News (3 Stories)"
- In reply to: Frederico Fonseca: "NBUF limits on all OpenServer versions"
- Next in thread: Frederico Fonseca: "Re: NBUF limits on all OpenServer versions"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|