Sponsored Content
Operating Systems Linux Built in ram limit for 64 bit Post 302118101 by Perderabo on Friday 18th of May 2007 11:25:33 AM
Old 05-18-2007
I don't have any experience with x86_64 cpu's and I have never used more than 2 GB Ram on any pc. But after reviewing the memory management sections of my copy "Understanding the Linux Kernel", I may have a handle on this. The Linux kernel needs to use a CPU feature called PAE to access more than 4GB of memory with a 32 bit kernel. This pushes the paging system into a 3 level model (instead of a 2 level model) resulting in the performance hit you mentioned. A 64 bit kernel needs a 3 level model up to kernel version 2.6.10. But this imposed constraints on how memory could be allocated. Starting with version 2.6.11, a four level paging model is used with x86_64 cpu's. It is not clear from the book if it would be possible to not use PAE on a x86_64 with 4 GB or less of memory. But reading between the lines a bit, I gather that the answer is "no". Support for non-PAE kernels seems to be intended for very old cpu's and they won't do 64 bit. Besides large RAM configurations, PAE is required to use the new NX flag which marks some memory regions as non-executable. This closes a security problem. Linux 2.6.11 supports the NX feature.

So a 64-bit kernel may have less decisions for you to make thus "taking care of things".
 

8 More Discussions You Might Find Interesting

1. Programming

copying or concatinating string from 1st bit, leaving 0th bit

Hello, If i have 2 strings str1 and str2, i would like to copy/concatenate str2 to str1, from 1st bit leaving the 0th bit. How do i do it? (2 Replies)
Discussion started by: jazz
2 Replies

2. Red Hat

red hat Linux 5.0 is detecting 3gb ram but physical ram is 16gb

Hi, On server 64bit Hw Arch , Linux 5.0(32bit) is installed it is showing only 3gb of ram though physical is 16gb can u give me idea why? (4 Replies)
Discussion started by: manoj.solaris
4 Replies

3. Red Hat

Limit RAM Usages

Is there any kernel tune parameters available to limit RAM usages at certain level . EG . RAM: 4 GB Swap: 2 GB I Need if my RAM usages reached 3 GB Kernel will start swaping new pages . .. --Shirish Shukla (8 Replies)
Discussion started by: Shirishlnx
8 Replies

4. Shell Programming and Scripting

How to handle 64 bit arithmetic operation at 32 bit compiled perl interpreter?H

Hi, Here is the issue. From the program snippet I have Base: 0x1800000000, Size: 0x3FFE7FFFFFFFF which are of 40 and 56 bits. SO I used use bignum to do the math but summing them up I always failed having correct result. perl interpreter info, perl, v5.8.8 built for... (0 Replies)
Discussion started by: rrd1986
0 Replies

5. Cybersecurity

Limit CPU and RAM utilization for new user in RedHat

We have a system with 4 Xeon Processors each with 10 cores, total 512 GB RAM and 10 TB Hard Drive. we want to create multiple user accounts with different resource limitations as : User 1: RAM : 50GB, PROCESSOR: 10 Cores , User folder in home directory of 10GB space. User 2: RAM :... (5 Replies)
Discussion started by: vaibhavvsk
5 Replies

6. HP-UX

Verify 4 GB Limit is overcome in 64 Bit Processor

We are moving from a 32 Bit PA-RISC processor to 64 Bit Itanium processor based System. I am aware that 64 Bit processor allows for memory (RAM) addressibility beyond the 4 GB memory (RAM) limit imposed by a 32 bit processor I have been asked to prove that the new systems are capable of... (6 Replies)
Discussion started by: allanbm
6 Replies

7. Filesystems, Disks and Memory

Maximum Memory RAM for windows 7 32 bit

Hi, i have just installed 4 gb RAM ddr3 on OS Windows 7 32 bit. In "manage peripherals" i see this section: Memory installed (ram) : 4,00 gb (2,30gb usable) Why only 2,30 gb usable ? In Windows 7 32bit the maximum size is not 3,00gb ? see file attached, please (4 Replies)
Discussion started by: nash83
4 Replies

8. Windows & DOS: Issues & Discussions

Which version of Windows Vista to install with a product key? 32-bit or 64-bit?

Hello everyone. I bought a dell laptop (XPS M1330) online which came without a hard drive. There is a Windows Vista Ultimate OEMAct sticker with product key at the bottom case. I checked dell website (here) for this model and it says this model supports both 32 and 64-bit version of Windows... (4 Replies)
Discussion started by: milhan
4 Replies
GETCPU(2)						     Linux Programmer's Manual							 GETCPU(2)

NAME
getcpu - determine CPU and NUMA node on which the calling thread is running SYNOPSIS
#include <linux/getcpu.h> int getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache); DESCRIPTION
The getcpu() system call identifies the processor and node on which the calling thread or process is currently running and writes them into the integers pointed to by the cpu and node arguments. The processor is a unique small integer identifying a CPU. The node is a unique small identifier identifying a NUMA node. When either cpu or node is NULL nothing is written to the respective pointer. The third argument to this system call is nowadays unused. The information placed in cpu is only guaranteed to be current at the time of the call: unless the CPU affinity has been fixed using sched_setaffinity(2), the kernel might change the CPU at any time. (Normally this does not happen because the scheduler tries to minimize movements between CPUs to keep caches hot, but it is possible.) The caller must be prepared to handle the situation when cpu and node are no longer the current CPU and node. VERSIONS
getcpu() was added in kernel 2.6.19 for x86_64 and i386. CONFORMING TO
getcpu() is Linux specific. NOTES
Linux makes a best effort to make this call as fast possible. The intention of getcpu() is to allow programs to make optimizations with per-CPU data or for NUMA optimization. Glibc does not provide a wrapper for this system call; call it using syscall(2); or use sched_getcpu(3) instead. The tcache argument is unused since Linux 2.6.24. In earlier kernels, if this argument was non-NULL, then it specified a pointer to a caller-allocated buffer in thread-local storage that was used to provide a caching mechanism for getcpu(). Use of the cache could speed getcpu() calls, at the cost that there was a very small chance that the returned information would be out of date. The caching mechanism was considered to cause problems when migrating threads between CPUs, and so the argument is now ignored. SEE ALSO
mbind(2), sched_setaffinity(2), set_mempolicy(2), sched_getcpu(3), cpuset(7) COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2008-06-03 GETCPU(2)
All times are GMT -4. The time now is 01:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy