By: Vincent Diepeveen (diep.delete@this.xs4all.nl), May 16, 2007 9:10 am
Room: Moderated Discussions
Linus Torvalds (torvalds@osdl.org) on 5/14/07 wrote:
---------------------------
>Dean Kent (dkent@realworldtech.com) on 5/14/07 wrote:
>>
>>It seems odd to me that virtually *every* address must
>>be mapped, whether actually used or not.
>
>Why would you ever have unused memory?
>
>Why did you buy such memory in the first place?
>
>Any sane OS (and yeah, XP/Vista may not fall under that
>heading) will basically always use all your memory, and
>you will never have anything unused.
huh?
You just reserve 32MB ram for shared memory, any allocation bigger than that needs root permission. Very ugly from user viewpoint.
Not many systems nowadays have just one core.
Can this get fixed (i remember in 1999 already Cox saying at the SMP list that this was not his fault, but now it's 2007 and still not fixed despite many people asking for a neat implementation)?
Also sharing memory with other processes, no matter how much more crappy it is under windows; sharing memory between processes in windows can easily slow you down factor 100+ nowadays, as it all gets allocated via the pagefile which is the most ugly way of doing it, and also takes care that if some DLL's hang around in RAM that your shared memory of a few gigabytes is dead slow, about a factor 1000 slower than you would want it to be; in linux it still gets done with private memory (why on planet earth can other processes read private memory of this process?), which is basically profitting from a bug in the implementation (otherwise sharing memory would not be possible). Just following the manual page, which lists also SHM_ANON (shared anonymousmemory) is just not implemented into the kernel.
It's incredible to me how both linux and windows are behind with respect to multiprocessing. Windows of course most of all. Nothing can save you in windows. Just nothing works there, especially not for memory that needs to get put in the same virtual adress space (mapviewoffileex). The only way to make a bigger chance of not allocating slow shared memory in windows is a regular reboot of the machine.
Now we didn't yet even touch the NUMA problem.
Of course past few years the kernels improved quite a bit there, yet not enough.
Running some long term calculations, where after some weeks or months 1 or 2 finish out of the 4 cores (dual opteron dual core) and not always immediately new processes start,
you just see how every few seconds the processes swap from processor to processor, based upon the load of the processor.
Very ugly.
Of course it's tough to check how many of those switches are switches to different memory controllers.
I feel however a few % more can be achieved there.
stuff like libnuma, it all isn't 100% working.
I want 0 flips of course.
Just my own private opinion...
Vincent
>Any unused memory is just wasted (pretty much by
>definition).
>So Linux will always use all your memory, even if it's
>just for caching (of course, "just" is unfair. Caching
>is just about the most important thing any OS can do, so
>it's definitely not a "just" thing).
>
>We keep a small percentage of memory free for emergency
>purposes, and if you've run a big process and exit it
>and throw it away we'll obviously temporarily have lots
>of free memory that we can't do much about, but in
>general you should never see any big amount of unused
>memory except just after bootup.
>
>Linus
---------------------------
>Dean Kent (dkent@realworldtech.com) on 5/14/07 wrote:
>>
>>It seems odd to me that virtually *every* address must
>>be mapped, whether actually used or not.
>
>Why would you ever have unused memory?
>
>Why did you buy such memory in the first place?
>
>Any sane OS (and yeah, XP/Vista may not fall under that
>heading) will basically always use all your memory, and
>you will never have anything unused.
huh?
You just reserve 32MB ram for shared memory, any allocation bigger than that needs root permission. Very ugly from user viewpoint.
Not many systems nowadays have just one core.
Can this get fixed (i remember in 1999 already Cox saying at the SMP list that this was not his fault, but now it's 2007 and still not fixed despite many people asking for a neat implementation)?
Also sharing memory with other processes, no matter how much more crappy it is under windows; sharing memory between processes in windows can easily slow you down factor 100+ nowadays, as it all gets allocated via the pagefile which is the most ugly way of doing it, and also takes care that if some DLL's hang around in RAM that your shared memory of a few gigabytes is dead slow, about a factor 1000 slower than you would want it to be; in linux it still gets done with private memory (why on planet earth can other processes read private memory of this process?), which is basically profitting from a bug in the implementation (otherwise sharing memory would not be possible). Just following the manual page, which lists also SHM_ANON (shared anonymousmemory) is just not implemented into the kernel.
It's incredible to me how both linux and windows are behind with respect to multiprocessing. Windows of course most of all. Nothing can save you in windows. Just nothing works there, especially not for memory that needs to get put in the same virtual adress space (mapviewoffileex). The only way to make a bigger chance of not allocating slow shared memory in windows is a regular reboot of the machine.
Now we didn't yet even touch the NUMA problem.
Of course past few years the kernels improved quite a bit there, yet not enough.
Running some long term calculations, where after some weeks or months 1 or 2 finish out of the 4 cores (dual opteron dual core) and not always immediately new processes start,
you just see how every few seconds the processes swap from processor to processor, based upon the load of the processor.
Very ugly.
Of course it's tough to check how many of those switches are switches to different memory controllers.
I feel however a few % more can be achieved there.
stuff like libnuma, it all isn't 100% working.
I want 0 flips of course.
Just my own private opinion...
Vincent
>Any unused memory is just wasted (pretty much by
>definition).
>So Linux will always use all your memory, even if it's
>just for caching (of course, "just" is unfair. Caching
>is just about the most important thing any OS can do, so
>it's definitely not a "just" thing).
>
>We keep a small percentage of memory free for emergency
>purposes, and if you've run a big process and exit it
>and throw it away we'll obviously temporarily have lots
>of free memory that we can't do much about, but in
>general you should never see any big amount of unused
>memory except just after bootup.
>
>Linus
Topic | Posted By | Date |
---|---|---|
Rock/Tukwila rumors | mas | 2007/05/05 11:59 AM |
Rock/Tukwila rumors | David Kanter | 2007/05/05 01:33 PM |
Rock/Tukwila rumors | Dean Kent | 2007/05/05 02:35 PM |
K8 vs Win64 timeline | anonymous | 2007/05/05 05:19 PM |
Yes, I misremembered... | Dean Kent | 2007/05/05 09:03 PM |
Rock | Daniel Bizó | 2007/05/06 01:34 AM |
Rock | Dean Kent | 2007/05/06 06:11 AM |
Rock/Tukwila rumors | Joe | 2007/05/06 10:24 AM |
Rock/Tukwila rumors | Dean Kent | 2007/05/06 10:49 AM |
Rock/Tukwila rumors | Linus Torvalds | 2007/05/06 11:09 AM |
Rock/Tukwila rumors | anon | 2007/05/07 12:32 AM |
Rock/Tukwila rumors | Rakesh Malik | 2007/05/07 08:36 AM |
Rock/Tukwila rumors | Michael S | 2007/05/07 09:06 AM |
Rock/Tukwila rumors | anon | 2007/05/07 08:48 PM |
Rock/Tukwila rumors | Rakesh Malik | 2007/05/08 05:45 AM |
Rock/Tukwila rumors | anon | 2007/05/08 04:30 PM |
Wow. (nt) | Brannon | 2007/05/08 05:16 PM |
Rock/Tukwila rumors | rwessel | 2007/05/08 08:48 PM |
Rock/Tukwila rumors | JS | 2007/05/08 09:07 PM |
Rock/Tukwila rumors | JS | 2007/05/09 05:44 AM |
Rock/Tukwila rumors | Rakesh Malik | 2007/05/09 04:35 AM |
Much ado about x | Michael S | 2007/05/09 08:39 AM |
Call it x86-64 | Linus Torvalds | 2007/05/09 09:27 AM |
(i)AMD64 | Michael S | 2007/05/09 11:16 AM |
(i)AMD64 | Linus Torvalds | 2007/05/09 11:29 AM |
(i)AMD64 | Groo | 2007/05/09 03:45 PM |
TIFNAA | anonymous | 2007/05/09 04:49 PM |
Inspired by FYR Macedonia? (NT) | Michael S | 2007/05/09 10:21 PM |
More likely... | rwessel | 2007/05/09 11:39 PM |
TIFNAA | Gabriele Svelto | 2007/05/09 10:57 PM |
(i)AMD64 | James | 2007/05/10 01:27 AM |
i86 | Dean Kent | 2007/05/09 11:30 AM |
(i)AMD64 | Max | 2007/05/09 12:28 PM |
wide86? long86? | hobold | 2007/05/10 04:05 AM |
x87 perhaps, it is one more. :) (NT) | Groo | 2007/05/10 04:50 AM |
x86+ | Dean Kent | 2007/05/10 07:44 AM |
Does it really matter? | Doug Siebert | 2007/05/10 08:10 AM |
let's stay with x86-64 for now, please | Marcin Niewiadomski | 2007/05/10 10:50 AM |
let's stay with x86-64 for now, please | Dean Kent | 2007/05/11 05:11 AM |
let's stay with x86-64 for now, please | rwessel | 2007/05/11 01:46 PM |
let's stay with x86-64 for now, please | Dean Kent | 2007/05/11 05:03 PM |
let's stay with x86-64 for now, please | Michael S | 2007/05/12 09:49 AM |
let's stay with x86-64 for now, please | Dean Kent | 2007/05/12 12:05 PM |
let's stay with x86-64 for now, please | Michael S | 2007/05/12 12:25 PM |
let's stay with x86-64 for now, please | Dean Kent | 2007/05/12 02:39 PM |
let's stay with x86-64 for now, please | JasonB | 2007/05/13 06:43 AM |
client consolidation | Michael S | 2007/05/13 07:37 AM |
let's stay with x86-64 for now, please | Tzvetan Mikov | 2007/05/13 02:44 PM |
let's stay with x86-64 for now, please | rwessel | 2007/05/14 01:42 PM |
What's your point? | Doug Siebert | 2007/05/11 01:56 PM |
What's your point? | Linus Torvalds | 2007/05/11 03:15 PM |
What's your point? | Doug Siebert | 2007/05/13 02:11 PM |
What's your point? | Dean Kent | 2007/05/13 06:04 PM |
What's your point? | JasonB | 2007/05/14 01:06 AM |
What's your point? | Dean Kent | 2007/05/14 06:20 AM |
What's your point? | JasonB | 2007/05/14 03:35 PM |
What's your point? | JasonB | 2007/05/14 06:35 PM |
What's your point? | Dean Kent | 2007/05/14 07:12 PM |
What's your point? | Dean Kent | 2007/05/11 05:06 PM |
What's your point? | Stephen H | 2007/05/13 12:55 AM |
Why didn't MS take advantage of PAE? | David W. Hess | 2007/05/13 07:37 AM |
PAE sucks (Why didn't MS take advantage of PAE?) | Linus Torvalds | 2007/05/13 09:20 AM |
PAE sucks (Why didn't MS take advantage of PAE?) | Dean Kent | 2007/05/13 09:49 AM |
PAE sucks (Why didn't MS take advantage of PAE?) | David W. Hess | 2007/05/13 11:37 AM |
> 1 GB RAM on a 32-bit system | Tzvetan Mikov | 2007/05/13 12:44 PM |
> 1 GB RAM on a 32-bit system | S. Rao | 2007/05/13 02:00 PM |
> 1 GB RAM on a 32-bit system | Tzvetan Mikov | 2007/05/13 04:32 PM |
> 1 GB RAM on a 32-bit system | S. Rao | 2007/05/13 11:19 PM |
> 1 GB RAM on a 32-bit system | Linus Torvalds | 2007/05/13 02:46 PM |
> 1 GB RAM on a 32-bit system | Tzvetan Mikov | 2007/05/13 04:23 PM |
> 1 GB RAM on a 32-bit system | JasonB | 2007/05/13 05:37 PM |
Windows manages memory differently | Tzvetan Mikov | 2007/05/13 07:31 PM |
Windows manages memory differently | JasonB | 2007/05/14 12:50 AM |
Windows manages memory differently | Tzvetan Mikov | 2007/05/14 07:56 AM |
Windows manages memory differently | rwessel | 2007/05/14 02:40 PM |
Windows manages memory differently | David W. Hess | 2007/05/14 03:07 PM |
Windows manages memory differently | rwessel | 2007/05/14 03:51 PM |
Windows manages memory differently | Tzvetan Mikov | 2007/05/14 04:40 PM |
Windows manages memory differently | rwessel | 2007/05/14 05:09 PM |
Windows manages memory differently | Howard Chu | 2007/05/14 10:17 AM |
Windows manages memory differently | Jukka Larja | 2007/05/14 10:30 AM |
Windows manages memory differently | Tzvetan Mikov | 2007/05/14 12:54 PM |
Windows manages memory differently | Howard Chu | 2007/05/15 02:35 AM |
Windows manages memory differently | Groo | 2007/05/15 06:34 AM |
Anyone know what OS X (10.4, Intel, desktop) does? | Matt Sayler | 2007/05/15 05:23 AM |
Anyone know what OS X (10.4, Intel, desktop) does? | Wes Felter | 2007/05/15 07:37 AM |
Anyone know what OS X (10.4, Intel, desktop) does? | Anonymous | 2007/05/15 09:49 AM |
Anyone know what OS X (10.4, Intel, desktop) does? | anon2 | 2007/05/15 06:13 PM |
PAE sucks (Why didn't MS take advantage of PAE?) | Paul | 2007/05/13 02:40 PM |
PAE sucks (Why didn't MS take advantage of PAE?) | Peter Arremann | 2007/05/13 04:38 PM |
PAE sucks (Why didn't MS take advantage of PAE?) | Henrik S | 2007/05/14 02:31 AM |
The fragility of your argument | slacker | 2007/05/13 02:56 PM |
The fragility of your argument | nick | 2007/05/13 04:42 PM |
The fragility of your argument | Howard Chu | 2007/05/14 01:52 AM |
The fragility of your argument | Dean Kent | 2007/05/14 08:19 AM |
The fragility of your argument | anon2 | 2007/05/14 07:26 AM |
The fragility of your argument | Tzvetan Mikov | 2007/05/14 08:01 AM |
The fragility of your argument | Dean Kent | 2007/05/14 08:16 AM |
The fragility of your argument | Linus Torvalds | 2007/05/14 10:57 AM |
The fragility of your argument | JasonB | 2007/05/14 03:48 PM |
The fragility of your argument | Dean Kent | 2007/05/14 06:36 PM |
The fragility of your argument | Ricardo B | 2007/05/16 01:40 AM |
The fragility of your argument | Dean Kent | 2007/05/16 02:32 AM |
The fragility of your argument | Ricardo B | 2007/05/16 05:41 AM |
PS | Ricardo B | 2007/05/16 05:50 AM |
The fragility of your argument | Dean Kent | 2007/05/16 08:07 AM |
Modern web browsing | S. Rao | 2007/05/16 08:16 AM |
Aha! | Dean Kent | 2007/05/16 08:27 AM |
Aha! | Dean Kent | 2007/05/16 08:32 AM |
Aha! | S. Rao | 2007/05/16 09:34 AM |
The fragility of your argument | Ricardo B | 2007/05/16 09:00 AM |
The fragility of your argument | Vincent Diepeveen | 2007/05/16 09:10 AM |
The fragility of your argument | Paul | 2007/05/16 02:01 PM |
The fragility of your argument | Vincent Diepeveen | 2007/05/17 02:05 AM |
The fragility of your argument | anon2 | 2007/05/15 12:35 AM |
Splits vs page allocations? | Matt Sayler | 2007/05/15 06:33 AM |
What's your point? | Michael S | 2007/05/13 07:55 AM |
What's your point? | anonymous | 2007/05/13 10:08 AM |
What's your point? | Michael S | 2007/05/13 10:31 AM |
let's stay with x86-64 for now, please | JasonB | 2007/05/13 06:16 AM |
x864 =) (NT) | some1 | 2007/05/15 02:03 AM |
Rock/Tukwila rumors | IntelUser2000 | 2007/05/06 01:27 PM |
Rock/Tukwila rumors | m | 2007/05/13 07:05 AM |
Rock/Tukwila rumors | mas | 2007/05/15 08:40 AM |