* Ralph Slooten <[EMAIL PROTECTED]> [2006-06-19 00:25]: > David Klempner wrote: > > Note that without doing *anything*, with a normal 3G/1G split, you'll > > actually get 896M. Recent kernels added in a config option to have a > > 2.75G/1.25G split, which solves this problem; it makes sense to use that > > if you have 1G of RAM. > > This option must be really new because I don't have it. I have two 3/1 > options, a 2/2 option and a 1/3 option. Either way, I'm now using 2GB.
It's one of the two "3/1" options; one of them is a PAGE_OFFSET of 0xC0000000 (3G) and the other is 0xB0000000 (2.75G); the latter is suggested for someone using 1GB. (I was making that change myself by hand until they added that option.) In fact, the 2G option is slightly lower than 2G, which is why it works with 2G of RAM. > Maybe this is the case, I'm not sure. For testing some other software I > upgraded to 2.16.6.16 2 weeks ago (when I still had 1GB) which resulted > in the same problem. I then went back to the previous-compiled 2.6.16.5 > version which worked flawlessly. It is only now that I have actually > rebuilt the 2.6.16.5 kernel (due to RAM upgrade) and am having the same > problem. The NVidial kernel and glx (to be sure) were also rebuilt. > > I did a bit of testing last night before I went to bed and it seems that > no matter what options I use in the kernel I'm getting bad performance > now from the graphics card. It still gets > 4000 fps with glxgears > though, so I'm not 100% sure it is the graphics card. > > The question I was meaning to ask is what the ideal kernel settings > should be for 2GB of RAM... from there I'll look for other explanations > why the 3d isn't performing well. Do you have performance problems with any other applications? It wouldn't surprise me too much if it's some random library issue that specifically affects that game. > Should I use 2/2 *and* highmem, or just 2/2 ? You suggest the highmem > does very little, but it's there for a valid reason I take it. If you're doing 2/2, then don't bother with highmem. Without highmem, the kernel maps all of physical memory into its address space; this is naive and fast, but it means that normal processes don't get use of that space. This isn't a problem for most applications, but there are a few that expect the extra address space to be available. A direct result of the 2/2 split is that no single process can, even in theory, (directly) use more than 2G of RAM, because it can't even *address* more than 2G. This would be a more noticeable issue if you had 3G of RAM and did the 1/3 split; at that point, no process could use more than 1G. I've seen long running processes (for example, firefox after a month with several dozen open tabs) use more than that. Highmem adds an extra layer of indirection to solve this problem; it's slightly slower (but, I understand, the cost is minimal) but lets you have your address space back while still being able to use all of your RAM. My suggestion is to use 3/1 with highmem. If you want, you could also use 2/2 without highmem; it would probably be just slightly faster, but could break stuff. Using 2/2 with highmem is (I think) pointless.
pgpsDAavPqbVw.pgp
Description: PGP signature

