Sponsored Content
Top Forums UNIX for Beginners Questions & Answers 32 bit process addressing more than 4GB Post 303042500 by MadeInGermany on Friday 27th of December 2019 07:15:43 AM
Old 12-27-2019
PAE was invented for 32bit kernels, in order to address more than 4GB.
It allowed many apps to consume more than 4GB, but I have my doubts that a single app could address more than 4GB.

PAE caused some severe misbehavior on Linux: for example, OOM killer was invoked if one 4GB segment was full; without knowing which process occupied most in that segment it often killed "wrong" processes before it killed a "correct" one. OpenSuSE kernels even invoked OOM killer if a single small process did continous I/O that filled a 4GB segment with only cache data - a nightmare!
Fortunately PAE is from the past - today there are 64bit kernels.

Solaris never had OOM killer, and Sparc early supported 64bit - there was no need for something like PAE.
These 2 Users Gave Thanks to MadeInGermany For This Post:
 

6 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. AIX

fiber with 4GB

Hi, It's my first time I will use a 4BG fiber with two ports on one card. I used only one port 2GB before. What will be the drivers I need to install on my AIX5.3? Is the two ports going to be just one line? Or I can use the other ports on another connection. Thanks in advance, itik (1 Reply)
Discussion started by: itik
1 Replies

3. Homework & Coursework Questions

Four-Level multi-paging on x86 system with 64 bit addressing

1. The problem statement, all variables and given/known data: Hi all, I've got a huuuuuuge problem with understanding this new concept of multi-paging. I really tried to research but i could not find anything significant. I've been trying to understand this for 4 days and i cannot. The question... (0 Replies)
Discussion started by: snowboarder
0 Replies

4. Red Hat

process fails if setuid bit is set

Hi, OS : Linux I have an executable (P1) owned by user say "abcd" and the setuid bit is set. And there is another executable (P2) which brings up the process (P1). When the setuid bit is set, the process P1 is failing, if the setuid bit is not set there is no issue. I was wondering if... (6 Replies)
Discussion started by: ahamed101
6 Replies

5. 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

6. 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
ARCH_PRCTL(2)						     Linux Programmer's Manual						     ARCH_PRCTL(2)

NAME
arch_prctl - set architecture-specific thread state SYNOPSIS
#include <asm/prctl.h> #include <sys/prctl.h> int arch_prctl(int code, unsigned long addr); int arch_prctl(int code, unsigned long *addr); DESCRIPTION
The arch_prctl() function sets architecture-specific process or thread state. code selects a subfunction and passes argument addr to it; addr is interpreted as either an unsigned long for the "set" operations, or as an unsigned long *, for the "get" operations. Sub functions for x86-64 are: ARCH_SET_FS Set the 64-bit base for the FS register to addr. ARCH_GET_FS Return the 64-bit base value for the FS register of the current thread in the unsigned long pointed to by addr. ARCH_SET_GS Set the 64-bit base for the GS register to addr. ARCH_GET_GS Return the 64-bit base value for the GS register of the current thread in the unsigned long pointed to by addr. RETURN VALUE
On success, arch_prctl() returns 0; on error, -1 is returned, and errno is set to indicate the error. ERRORS
EFAULT addr points to an unmapped address or is outside the process address space. EINVAL code is not a valid subcommand. EPERM addr is outside the process address space. CONFORMING TO
arch_prctl() is a Linux/x86-64 extension and should not be used in programs intended to be portable. NOTES
arch_prctl() is only supported on Linux/x86-64 for 64-bit programs currently. The 64-bit base changes when a new 32-bit segment selector is loaded. ARCH_SET_GS is disabled in some kernels. Context switches for 64-bit segment bases are rather expensive. It may be a faster alternative to set a 32-bit base using a segment selec- tor by setting up an LDT with modify_ldt(2) or using the set_thread_area(2) system call in kernel 2.5 or later. arch_prctl() is only needed when you want to set bases that are larger than 4GB. Memory in the first 2GB of address space can be allocated by using mmap(2) with the MAP_32BIT flag. As of version 2.7, glibc provides no prototype for arch_prctl(). You have to declare it yourself for now. This may be fixed in future glibc versions. FS may be already used by the threading library. SEE ALSO
mmap(2), modify_ldt(2), prctl(2), set_thread_area(2) AMD X86-64 Programmer's manual COLOPHON
This page is part of release 3.25 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 2007-12-26 ARCH_PRCTL(2)
All times are GMT -4. The time now is 02:39 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy