I believe the limitation in older kernels was that individual
swap partitions could be no larger than 128M. Checking the mkswap
manpage on my RH6.0 box shows:
Linux knows about two styles of swap areas, old style and
new style. The last 10 bytes of the first page of the
swap area distinguishes them: old style has `SWAP_SPACE',
new style has `SWAPSPACE2' as signature.
In the old style, the rest of this first page was a bit
map, with a 1 bit for each usable page of the swap area.
Since the first page holds this bit map, the first bit is
0. Also, the last 10 bytes hold the signature. So, if the
page size is S, an old style swap area can describe at
most 8*(S-10)-1 pages used for swapping. With S=4096 (as
on i386), the useful area is at most 133890048 bytes
(almost 128 MB if you believe in 1 MB=2^20 bytes), and the
rest is wasted. On an alpha and sparc64, with S=8192, the
useful area is at most 535560992 bytes (almost 512 MB with
the same proviso).
The old setup wastes most of this bitmap page, because
zero bits denote bad blocks or blocks past the end of the
swap space, and a simple integer suffices to indicate the
size of the swap space, while the bad blocks, if any, can
simply be listed. Nobody wants to use a swap space with
hundreds of bad blocks. (I would not even use a swap space
with 1 bad block.) In the new style swap area this is
precisely what is done. The maximum useful size of a swap
area now depends on the architecture. It is roughly 2GB
on i386, PPC, m68k, ARM, 1GB on sparc, 512MB on mips,
128GB on alpha and 3TB on sparc64.
Note that before 2.1.117 the kernel allocated one byte for
each page, while it now allocates two bytes, so that tak-
ing a swap area of 2 GB in use might require 2 MB of ker-
nel memory.
Presently, Linux allows 8 swap areas. The areas in use can
be seen in the file /proc/swaps (since 2.1.25).
--
Fletch | "If you find my answers frightening, __`'/|
">fletch@phydeaux.org | Vincent, you should cease askin' \ o.O'
678 443-6239(w) | scary questions." -- Jules =(___)=
| U
--
To unsubscribe: mail ">majordomo@ale.org with "unsubscribe ale" in message body.