Maximum memory... - SCO
This is a discussion on Maximum memory... - SCO ; What is the maximum amount of RAM supported by Openserver 5.0.4, 5.0.5
What is the maximum amount of RAM supported by Openserver 5.0.4, 5.0.5
Re: Maximum memory...
In article <firstname.lastname@example.org> Jon Lapp writes:
$What is the maximum amount of RAM supported by Openserver 5.0.4, 5.0.5
According to the FAQ, 5.0.4 supported 4 GB. The documentation for
5.0.5 and 5.0.7 also says 4 GB max, so it's reasonable to assume
the same applies to 5.0.6.
Stephen M. Dunn
>>>----------------> http://www.stevedunn.ca/ <----------------<<<
Say hi to my cat -- http://www.stevedunn.ca/photos/toby/
Re: Maximum memory...
Stephen M. Dunn wrote:
> In article <email@example.com> Jon Lapp writes:
> $What is the maximum amount of RAM supported by Openserver 5.0.4, 5.0.5
> $and 5.0.6?
> According to the FAQ, 5.0.4 supported 4 GB. The documentation for
> 5.0.5 and 5.0.7 also says 4 GB max, so it's reasonable to assume
> the same applies to 5.0.6.
All of those releases will operate with and use 4GB of RAM. However,
the number, severity and creativity of 4GB-related bugs decreases
steadily with each successive release.
All releases before 507 have a set of behaviors which, while not
strictly related to 4GB, tends to cramp the system's style whenever you
really _use_ a lot of RAM. The kernel distinguishes between several
classes of memory usable for different purposes. There's "DMAABLE"
memory, below 16MB, which is usable for ancient ISA direct memory access
(DMA); "direct mapped", below 768MB, which is more convenient for
certain kinds of device drivers; and "unmapped", which can only be used
for user process memory and driver buffers operated by newer drivers
that know how to use it.
Notice that the "DMAABLE" area is tiny compared to the rest of the
system. It comes out of a 16MB space, but certain parts of the kernel
are firmly nailed down there to start with. It's under 10MB in a
typical system. That's 1/400th of the memory in a 4GB system...
Meanwhile, the kernel memory allocation functions _assume_ you require
DMAABLE memory unless you tell them otherwise. This is for the benefit
of ancient drivers which did in fact require DMAABLE, and had no idea
that any other sort of memory existed. (The first release of the SCO
Unix kernel supported a _maximum_ of 16MB RAM. Drivers which date back
that far assume they can use any memory at all for ISA DMA.)
Before OSR507, many many parts of the kernel were allocating DMAABLE
memory "by mistake", that is, they called memory allocation functions
without explicitly noting that they didn't need DMAABLE memory.
As a result, the kernel could easily end up struggling to scrape
together DMAABLE memory for purposes which really didn't need it.
Between 506 and 507, the kernel was audited for such misuses of memory.
507 is much cleaner about only using DMAABLE for the few purposes that
need it (in modern systems, this is essentially only the legacy floppy
driver!) There's no reverse bottleneck because a request that doesn't
require DMAABLE memory can be satisfied with DMAABLE, if that's all the
kernel has available.
As I remember it, NFS was one of the worst culprits in this area.
You're more likely to be OK with 4GB pre-507 if you don't use NFS.
These problems only happen if you're really using the memory. If you
have 4GB but your active memory footprint is only 600MB, you're fine.