PAE: pretty cool, a way around 64 bit, till it becomes totally used everywhere
Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
On a side note, if the computer has a real 64bit processor, some have reported success using a 32bit gnu/linux but with a 64bit kernel. You will still be limited to 4gigs per process, but the kernel should be more stable handling the memory as a whole.
The only problem you have is when trying to compile kernel modules as they need to be 64bit as well. But if you figure out how to compile your own 64bit kernel, the third party modules should be no problem.
You also have to use 'setarch' to force the architecture detection to 32bits when compiling your own programs.
Hmm, but I suppose there are other problems in this. Won't it be the problem that the processes cannot address the full memory? That you in essence can only use 4 gigs of the ram in total? Because the kernel won't provide any help for the processes in addressing more than 32 bits of ram. It expects them to be able to do the full 64 bit of memory addressing. So it is not like in PAE, where the kernel seems to help the processes in that ("help" might be not the right word, but the kernel knows that things are 32 bits in PAE. So in 64 Bit the kernel expects processes to have this ladder built in, to reach stuff on the high shelves, while in PAE the kernel knows that the processes do not have that ladder and have to climb up by pilling stuff on top of other stuff ;-)
The RAM is installed now, and I do have 8 gigs available. I have not been able to fill it though, so cannot talk much about it. In the nature of how I am nasty to systems and stress them a lot, I am sure I will be soon able to report where the limits are and how they manifest themselves.
How can you know tell the virtual kernel mem is used up?
Note to debian users: the kernel you need for PAE is called BIGMEM
I was always wondering what that is for before.
Distribution: openSuSE Tumbleweed-KDE, Mint 21, MX-21, Manjaro
Posts: 4,629
Rep:
Quote:
Originally Posted by paulsm4
...
Most existing 32 bit apps install and perform flawlessly under 64-bit Linux (provided, of course, you installed lib32 ).
...
What lib32 would that be? I use SuSE 11.3_64 with no problems but I'd like to seet up my system for both architectures, so a hint would be appreciated.
As to the use of RAM: Most RAM in my system is used for buffers -- as I understand it, buffered and thus accelerated I/O which means in turn, you can't have enough RAM thus the 64-bit architecture.
Won't it be the problem that the processes cannot address the full memory? That you in essence can only use 4 gigs of the ram in total? Because the kernel won't provide any help for the processes in addressing more than 32 bits of ram. It expects them to be able to do the full 64 bit of memory addressing. So it is not like in PAE, where the kernel seems to help the processes in that ("help" might be not the right word, but the kernel knows that things are 32 bits in PAE. So in 64 Bit the kernel expects processes to have this ladder built in, to reach stuff on the high shelves, while in PAE the kernel knows that the processes do not have that ladder and have to climb up by pilling stuff on top of other stuff ;-)
That is absolute nonsense.
Each 32-bit process running under a PAE kernel can use up to 3GB of virtual memory. The PAE kernel can give that 32-bit process pages anywhere in the physical ram managed by that kernel. The fact that the physical addresses have more than 32 bits is completely invisible to the user code.
Each 32-bit process running under a 64-bit kernel can use up to 4GB of virtual memory. The 64-bit kernel can give that 32-bit process pages anywhere in the physical ram managed by that kernel. The fact that the physical addresses have more than 32 bits is completely invisible to the user code.
A 64-bit kernel does need some special support for 32-bit processes. That special support might include knowing that the virtual address space is only 4GB. But there is no special support needed for that process using part of a large physical address space. The user mode code sees only virtual addresses, so it has no responsibilities for dealing with any aspect of the larger physical address. The kernel code sets up the mapping from virtual to physical exactly the same for a 32-bit process as for the first 4GB virtual of a 64-bit process. The size of the physical address does not interact in any way with the limit on the size of the virtual address.
Quote:
How can you know tell the virtual kernel mem is used up?
Good question. Hopefully someone else here can tell you.
I've given moderately good help in the past to people with a similar question:
When a PAE system with a lot of ram is failing, how can you diagnose whether the failure is due to the limit on kernel virtual memory?
That moderately good help hasn't involved much more than: Look at how the contents of /proc/slabinfo change as the system goes from recently booted up to heavily loaded.
I expect someone here understands a few more details about kernel virtual memory, to tell you how to see how close you are to that kind of failure.
Good question. Hopefully someone else here can tell you.
I've given moderately good help in the past to people with a similar question:
When a PAE system with a lot of ram is failing, how can you diagnose whether the failure is due to the limit on kernel virtual memory?
That moderately good help hasn't involved much more than: Look at how the contents of /proc/slabinfo change as the system goes from recently booted up to heavily loaded.
I expect someone here understands a few more details about kernel virtual memory, to tell you how to see how close you are to that kind of failure.
I guess I will find out. So far the system is running fine and I am putting a lot of weight on it.
I would of course welcome any suggestions or ideas. But I guess a lot of people are running 64 bit aready and don't mind the extra work or the reinstallation of the system. I do, I hate reinstallations, I have done it way too many times in the past and hate it whenever I have to. I am the kind of guy that buys and builds a new system and then ports over the existing system without reinstalling it from scratch.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.