Re: Greater than 2GB per process
Jordan Hubbard [EMAIL PROTECTED] writes: Well, that single 4GB of address space is divided up into kernel data structures, which are in the address space of the process but subject to various levels of MMU-provided memory protection, and the process' own "user data." I believe the break is currently set in the middle at 2GB, and various attempts to adjust it more aggressively (in user data's favor) have been interesting but ultimately also proved to break things like BSD/OS binaries, which have their own assumptions about the setting of the break. Ahem. The other way around, actually (we increased KVM space from 256 MB to 1 GB - not 2 GB as you claim). And the problem with legacy BSDI binaries (newer ones don't have this problem) was fixed a long time ago, in 3.0 (before 3.0-RELEASE). DES -- Dag-Erling Smorgrav - [EMAIL PROTECTED] To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Greater than 2GB per process
I know very little about how kernel or low level processor stuff works, but shouldn't we be able to do a 4GB process on a 32-bit system? The limitation of 2GB per process should only be an issue if there is some need to use signed numbers, right? Well, that single 4GB of address space is divided up into kernel data structures, which are in the address space of the process but subject to various levels of MMU-provided memory protection, and the process' own "user data." I believe the break is currently set in the middle at 2GB, and various attempts to adjust it more aggressively (in user data's favor) have been interesting but ultimately also proved to break things like BSD/OS binaries, which have their own assumptions about the setting of the break. - Jordan To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Greater than 2GB per process
On 12-Mar-01 Joseph Gleason wrote: - Original Message - From: "Alfred Perlstein" [EMAIL PROTECTED] To: "Ian Campbell" [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Sunday, March 11, 2001 23:41 Subject: Re: Greater than 2GB per process * Ian Campbell [EMAIL PROTECTED] [010311 16:14] wrote: Hello, Could anybody advise me on the possiblity of having greater than 2GB per process on FreeBSD. I have tried increasing the limit beyond this and the kernel compiles successfully - however libc causes every process to segfault. I am assuming that just recompiling the C library wouldn't do the trick but perhaps someone could confirm this. It's not possible on the Intel archetecture with the current system, changing the current intel system to use 2GB processes would cost too much in terms of performance (64 bit values on a 32 bit system). At least that's what i've been told. I know very little about how kernel or low level processor stuff works, but shouldn't we be able to do a 4GB process on a 32-bit system? The limitation of 2GB per process should only be an issue if there is some need to use signed numbers, right? In theory, yes. In practice, the kernel and userland share the same memory area so that the kernel can more easily access user memory when handling syscalls, etc. Technically we could switch to using a separate virtual memory space for the kernel, but it would require work from someone very familiar with the vm system and the 386 side of vm. (Or someone willing to learn enough of it) We don't have very many such people unless you are volunteering. :) Joe Gleason -- John Baldwin [EMAIL PROTECTED] -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Greater than 2GB per process
Hello, Could anybody advise me on the possiblity of having greater than 2GB per process on FreeBSD. I have tried increasing the limit beyond this and the kernel compiles successfully - however libc causes every process to segfault. I am assuming that just recompiling the C library wouldn't do the trick but perhaps someone could confirm this. Cheers, Ian Campbell To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Greater than 2GB per process
* Ian Campbell [EMAIL PROTECTED] [010311 16:14] wrote: Hello, Could anybody advise me on the possiblity of having greater than 2GB per process on FreeBSD. I have tried increasing the limit beyond this and the kernel compiles successfully - however libc causes every process to segfault. I am assuming that just recompiling the C library wouldn't do the trick but perhaps someone could confirm this. It's not possible on the Intel archetecture with the current system, changing the current intel system to use 2GB processes would cost too much in terms of performance (64 bit values on a 32 bit system). At least that's what i've been told. -- -Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]] To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Greater than 2GB per process
- Original Message - From: "Alfred Perlstein" [EMAIL PROTECTED] To: "Ian Campbell" [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Sunday, March 11, 2001 23:41 Subject: Re: Greater than 2GB per process * Ian Campbell [EMAIL PROTECTED] [010311 16:14] wrote: Hello, Could anybody advise me on the possiblity of having greater than 2GB per process on FreeBSD. I have tried increasing the limit beyond this and the kernel compiles successfully - however libc causes every process to segfault. I am assuming that just recompiling the C library wouldn't do the trick but perhaps someone could confirm this. It's not possible on the Intel archetecture with the current system, changing the current intel system to use 2GB processes would cost too much in terms of performance (64 bit values on a 32 bit system). At least that's what i've been told. I know very little about how kernel or low level processor stuff works, but shouldn't we be able to do a 4GB process on a 32-bit system? The limitation of 2GB per process should only be an issue if there is some need to use signed numbers, right? Joe Gleason To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Greater than 2GB per process
Alfred Perlstein ([EMAIL PROTECTED]) wrote: * Joseph Gleason [EMAIL PROTECTED] [010311 20:48] wrote: - Original Message - From: "Alfred Perlstein" [EMAIL PROTECTED] To: "Ian Campbell" [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Sunday, March 11, 2001 23:41 Subject: Re: Greater than 2GB per process * Ian Campbell [EMAIL PROTECTED] [010311 16:14] wrote: Hello, Could anybody advise me on the possiblity of having greater than 2GB per process on FreeBSD. I have tried increasing the limit beyond this and the kernel compiles successfully - however libc causes every process to segfault. I am assuming that just recompiling the C library wouldn't do the trick but perhaps someone could confirm this. It's not possible on the Intel archetecture with the current system, changing the current intel system to use 2GB processes would cost too much in terms of performance (64 bit values on a 32 bit system). At least that's what i've been told. I know very little about how kernel or low level processor stuff works, but shouldn't we be able to do a 4GB process on a 32-bit system? The limitation of 2GB per process should only be an issue if there is some need to use signed numbers, right? Yes, we use signed numbers. Check the list archives, there's some pretty detailed discussions that explain why it's this way. Actually.. the kernel and userspace processes use the same address space and since the kernel take 1GB of the address apce, you then have 512MB allocated for the malloc pool and the rest is allocated to malloc, so techinically you can mmap 2.5GB of memory, but according to the manual page of mmap.. BUGS len is limited to 2GB. Mmapping slightly more than 2GB doesn't work, but it is possible to map a window of size (filesize % 2GB) for file sizes of slightly less than 2G, 4GB, 6GB and 8GB. The limit is imposed for a variety of reasons. Most of them have to do with FreeBSD not wanting to use 64 bit offsets in the VM system due to the extreme performance penalty. So FreeBSD uses 32bit page indexes and this gives FreeBSD a maximum of 8TB filesizes. It's actually bugs in the filesystem code that causes the limit to be further restricted to 1TB (loss of precision when doing blockno calculations). Another reason for the 2GB limit is that filesystem metadata can reside at negative offsets. asd We currently can only deal with page aligned file offsets. b To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message