Re: bigphysarea in 2.3?

Tom Leete (tleete@access.mountain.net)
Wed, 15 Dec 1999 22:57:55 +0000


Pauline Middelink wrote:
>
> On Wed, Dec 15, 1999 at 10:12:14AM +0000, Tom Leete wrote:
> > Adam Fritzler wrote:
> > >
> > > Are the command lines to the e820 code documented somewhere? Is it
> > > documented how to get a driver to use the allocated blocks?
> > >
> > Command line format is documented in comment near the top of
> > parse_mem_cmdline() about 500 lines into
> > arch/i386/kernel/setup.c.
>
> I don't see how this helps us. All it allows us is to seperate
> a piece of memory, so we can scribbe something to it later.

That's what bigphysarea does. It uses a command line
interface to reserve contiguous physical memory that the mm
subsystem is never even told about.

> First we don't know what piece of memory is available for
> removal, on a 64MB machine you want another part of memory
> reserved than on the 2GB one..

It's really for use with devices which have solderspace
limits on their buffer addressing. That is why bigphysarea
grabs its slice as early as possible on boot. bigphysarea is
unable to pick a start address, though. That makes it
useless for devices like Cirrus 5434 on ISA. That is why
e820 comes into the picture.

>
> Second, how can the driver know what piece of memory it can use?
> How can we protect two drivers (sound,grabber?) using the same
> piece of memory twice? etc etc

Excellent point. bigphysarea has no provision in its own
memory management for sharing and locking. It assumes one
driver which owns the space.

The 2.3 resource management makes me think that a physical
framebuffer device can be ginned up without bigphysarea's
limits.

>
> If you revered the guy to the alloc_bootmem() interface I could
> seen some light there, but the mem= interface is not the way to
> go (for the casual user at least!)
>
> Unfortuantly alloc_bootmem does not work for modules...
>
> I see definitly some light for the bigphysarea patch, working
> closely together with alloc_bootmem to get its much needed
> memory...

Like bigphysarea, alloc_bootmem() does its thing in kernel
space. Also contiguous ;-)

Tom

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