Research projects at the AG Heiss

Managing Big Physical Memory Areas in Linux

The Linux kernel is optimized for managing many small pieces of memory, usually one page at a time. The largest continuous block that can be allocated is 128Kb (default value). Some drivers need much larger blocks, e.g. drivers for framegrabbers, high speed A/D converters or our SCI driver (see Project Arminius). March 1996 Matt Welsh (mdw@cs.cornell.edu) introduced a first bigphysarea patch for Linux 1.3.71 that allowed reservation of a memory area at boot time available for drivers. Now this patch has been extended. Some features of the new version:
  1. Patch against stable kernel (2.0.x/2.2.x)
  2. Comfortable interface (allows alignment of areas)
  3. Faster algorithm
  4. Parameter checking
  5. /proc interface for usage monitoring
The patch is available here: bigphysarea-2.0.36.tar.gz, bigphysarea-2.2.13.tar.gz

Note: The patch has to be applied against an unmodified kernel, not a kernel where an old bigphysarea patch has been applied.



Mail to butenuth@uni-paderborn.de