From: Howlin' Bob (gt8134b@prism.gatech.EDU)
Date: 06/30/93


From: gt8134b@prism.gatech.EDU (Howlin' Bob)
Subject: Re: SUMMARY: Linux performance: WOW! (was: OUCH!)
Date: 30 Jun 1993 23:52:02 GMT

In <C-AMB.93Jun30155732@solitude.math.utah.edu> c-amb@math.utah.edu (Mark B. Alston) writes:

>Now I really don't know what I am talking about but..
>Is is possible to force the system to use the high memory for a ram
>drive or for a disk cache? It would seem to me that then the lack of
>caching on the memory itself would not be so important. I mean it
>still should be faster than a hard drive right?

Well, the current kernel memory allocater doesn't know one region of
memory from another. I don't know how difficult it would be to
change it to support additional flags to get_free_page and kmalloc(),
but it (and some sort of allocation priority scheme) would be useful.
Not only would PC-Linux benefit, but the Amiga/Atari porting groups
would also. Amigas have memory split into Chip and Fast RAM, with
only Chip being usable for screen memory and device buffers, Chip
and Fast usable for normal program/data RAM, and Fast being much faster
than Chip.

One could argue that Linux shouldn't have to make up for a broken
chipset/cache, but there are limitations more inherent to the ISA bus:
DMA can only occur in the lower 16 MB of RAM. Because of this, device
buffers over the 16MB mark must bounce data through a low-memory
temporary store. Being able to specify that you prefer a low-memory
page would be useful; not only would you want this, but you'd want
the kernel to try its best to put user-program pages above 16MB as much
as possible, unless you can't cache that area, and then you'd have
to decide whether to use that for buffer cache of RAMdisk.

If this ever got done, it might be interesting to implement a BSD4.4-like
MFS (memory file system) for fast /tmp operations; the filesystem resides
on a "ramdisk," but it can be "backed" to swap if necessary.

All that said, I surely don't want to do it.

>And on a more specific note... I have 20 MB of memory available. If
>I put the 1 MB simms in the first bank and the 4 MB simms in the
>second, my bios recongnizes that I have 20 MB of mem available.
>However if I flip it around and put the 4 MB simms in the first bank
>the second bank isn't found at all. The bios (and linux) report that
>I have only 16 MB of mem. So, if the above memory usage is possible,
>would it be possible to force the first 4 MB to be a dedicated ram
>drive or cache so that I could use all 20 MB? Or in lieu of this

Well, Linux trusts the BIOS to tell it how much memory you have.
It sounds like your chipset isn't recognizing the 1MB SIMMS.
Make sure the configuration you have is valid, and that you've
set the appropriate jumpers (if any) on your motherboard.

-- 
Robert Sanders
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp:     ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt8134b
Internet: gt8134b@prism.gatech.edu