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
kvm_open(3KVM)						    Kernel VM Library Functions 					    kvm_open(3KVM)

NAME
kvm_open, kvm_close - specify a kernel to examine SYNOPSIS
cc [ flag... ] file... -lkvm [ library...] #include <kvm.h> #include <fcntl.h> kvm_t *kvm_open(char *namelist, char *corefile, char *swapfile, int flag, char *errstr); int kvm_close(kvm_t *kd); DESCRIPTION
The kvm_open() function initializes a set of file descriptors to be used in subsequent calls to kernel virtual memory ( VM) routines. It returns a pointer to a kernel identifier that must be used as the kd argument in subsequent kernel VM function calls. The namelist argument specifies an unstripped executable file whose symbol table will be used to locate various offsets in corefile. If namelist is NULL, the symbol table of the currently running kernel is used to determine offsets in the core image. In this case, it is up to the implementation to select an appropriate way to resolve symbolic references, for instance, using /dev/ksyms as a default namelist file. The corefile argument specifies a file that contains an image of physical memory, for instance, a kernel crash dump file (see savecore(1M)) or the special device /dev/mem. If corefile is NULL, the currently running kernel is accessed, using /dev/mem and /dev/kmem. The swapfile argument specifies a file that represents the swap device. If both corefile and swapfile are NULL, the swap device of the cur- rently running kernel is accessed. Otherwise, if swapfile is NULL, kvm_open() may succeed but subsequent kvm_getu(3KVM) function calls may fail if the desired information is swapped out. The flag function is used to specify read or write access for corefile and may have one of the following values: O_RDONLY open for reading O_RDWR open for reading and writing The errstr argument is used to control error reporting. If it is a null pointer, no error messages will be printed. If it is non-null, it is assumed to be the address of a string that will be used to prefix error messages generated by kvm_open. Errors are printed to stderr. A useful value to supply for errstr would be argv[0]. This has the effect of printing the process name in front of any error messages. Applications using libkvm are dependent on the underlying data model of the kernel image, that is, whether it is a 32-bit or 64-bit ker- nel. The data model of these applications must match the data model of the kernel in order to correctly interpret the size and offsets of kernel data structures. For example, a 32-bit application that uses the 32-bit version of the libkvm interfaces will fail to open a 64-bit kernel image. Similarly, a 64-bit application that uses the 64-bit version of the libkvm interfaces will fail to open a 32-bit kernel image. The kvm_close() function closes all file descriptors that were associated with kd. These files are also closed on exit(2) and execve() (see exec(2)). kvm_close() also resets the proc pointer associated with kvm_nextproc(3KVM) and flushes any cached kernel data. RETURN VALUES
The kvm_open() function returns a non-null value suitable for use with subsequent kernel VM function calls. On failure, it returns NULL and no files are opened. The kvm_close() function returns 0 on success and -1 on failure. FILES
/dev/kmem /dev/ksyms /dev/mem ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Stable | +-----------------------------+-----------------------------+ |MT-Level |Unsafe | +-----------------------------+-----------------------------+ SEE ALSO
savecore(1M), exec(2), exit(2), pathconf(2), getloadavg(3C), kstat(3KSTAT), kvm_getu(3KVM), kvm_nextproc(3KVM), kvm_nlist(3KVM), kvm_kread(3KVM), libkvm(3LIB),sysconf(3C), proc(4), attributes(5), lfcompile(5) NOTES
Kernel core dumps should be examined on the platform on which they were created. While a 32-bit application running on a 64-bit kernel can examine a 32-bit core dump, a 64-bit application running on a 64-bit kernel cannot examine a kernel core dump from the 32-bit system. On 32-bit systems, applications that use libkvm to access the running kernel must be 32-bit applications. On systems that support both 32-bit and 64-bit applications, applications that use the libkvm interfaces to access the running kernel must themselves be 64-bit applica- tions. Although the libkvm API is Stable, the symbol names and data values that can be accessed through this set of interfaces are Private and are subject to ongoing change. Applications using libkvm are likely to be platform- and release-dependent. Most of the traditional uses of libkvm have been superseded by more stable interfaces that allow the same information to be extracted more efficiently, yet independent of the kernel data model. For examples, see sysconf(3C), proc(4), kstat(3KSTAT), getloadavg(3C), and path- conf(2). SunOS 5.10 2 May 2002 kvm_open(3KVM)
All times are GMT -4. The time now is 12:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy