So it hit me today, I recall seeing the memory map for the 4MB RAM address space (0x0 - 0x3FFFFF), and sure enough, only around 2.5 MB allocated to user processes:I conclude by this that only about 2.5MB are available in *total*
Hi Alain.
So it hit me today, I recall seeing the memory map for the 4MB RAM address space (0x0 - 0x3FFFFF), and sure enough, only around 2.5 MB allocated to user processes:I conclude by this that only about 2.5MB are available in *total*
KERNEL ONLY = 00_00_00 – 07_FF_FF (512 KB)
User Process = 08_00_00 – 2F_FF_FF (2.5 MB)
Shared Lib = 30_00_00 – 37_FF_FF (512 KB)
Kernel VM = 38_00_00 – 3F_FF_FF (512 KB)
So I don't think increasing swap is going to help much given the limited address space.
Jesse
Hi Jesse,
On 24/10/2022 07:45, J Booth wrote:
Hi Alain.
So it hit me today, I recall seeing the memory map for the 4MB RAM address space (0x0 - 0x3FFFFF), and sure enough, only around 2.5 MB allocated to user processes:I conclude by this that only about 2.5MB are available in *total*
KERNEL ONLY = 00_00_00 – 07_FF_FF (512 KB)Yes, I have figured this out since then
User Process = 08_00_00 – 2F_FF_FF (2.5 MB)
Shared Lib = 30_00_00 – 37_FF_FF (512 KB)
Kernel VM = 38_00_00 – 3F_FF_FF (512 KB)That bit I didn't know yet. As far as I know, Linux does the same (i.e.
the kernel exists in the application's address space, even though inaccessible to the application, obviously)
So I don't think increasing swap is going to help much given the limited address space.Actually, the problem that I used to have was running "many" *processes* concurrently.
When configuring a software package using GNU autoconf, at some point in time there's a multi-step pipeline and each step implies needs an
additional shell process. With ksh or bash (containing a full load of
config variables), and just 3 or 4 steps of pipeline, this was enough to
run out of VM. Adding more swap resolved the issue. Back then, I did add more swap "the hard way" by re-installing from floppies and choosing
more swap at the appropriate step. But nowadays, I just use dgesswein's s4vol tool
Next challenge is to get gcc-3.3.6 (running on UnixPC) to compile a
program longer than a simple hello-world. It runs out of memory pretty quickly, and as this is one process, swap does not help that use case.
Jesse
Regards,
Alain
The ported memory architecture is a sad waste of a 32 bit microprocessor's potential. Only machines I've ever had where physical memory was greater than per process virtual memory.Yeah does seem like a waste to have a full 4MB physical memory on this machine.
Kernel VM = 38_00_00 – 3F_FF_FF (512 KB)That bit I didn't know yet. As far as I know, Linux does the same (i.e.
the kernel exists in the application's address space, even though inaccessible to the application, obviously)
Actually, the problem that I used to have was running "many" *processes* concurrently.
Adding more swap resolved the issue.Interesting to hear that helped. I would have thought the default 4000 KB would have sufficed, unless yours was smaller than that.
Next challenge is to get gcc-3.3.6 (running on UnixPC) to compile a
program longer than a simple hello-world. It runs out of memory pretty quickly, and as this is one process, swap does not help that use case.
You've probably already found, but there is ktune which allows you to adjust some kernel parameters, such as nproc (number of processes, default: 100), e.g. ktune nproc=200
Interesting to hear that helped. I would have thought the default 4000 KB would have sufficed, unless yours was smaller than that.Nevermind -- I just saw your other note about having pushed the swap partition 100+ MB, nice.
On Monday, October 24, 2022 at 7:19:38 AM UTC-4, Peter Schmidt wrote:
The ported memory architecture is a sad waste of a 32 bit microprocessor's potential. Only machines I've ever had where physical memory was greater than per process virtual memory.Yeah does seem like a waste to have a full 4MB physical memory on this machine.
This mapmem tool will give more info on how memory is being used: http://www.unixpc.org/3b1/osu/misc/mapmem.cpio.gz
so it does look like it makes use of more than 64M of swap after all.And indeed, I could launch 40 of my 2.5M processes this time.
On Monday, October 24, 2022 at 2:40:22 AM UTC-4, Alain Knaff wrote:
Kernel VM = 38_00_00 – 3F_FF_FF (512 KB)That bit I didn't know yet. As far as I know, Linux does the same (i.e.
the kernel exists in the application's address space, even though
inaccessible to the application, obviously)
Ahh ok, I wasn't sure what that Kernel VM address space was.
Actually, the problem that I used to have was running "many" *processes*
concurrently.
You've probably already found, but there is ktune which allows you to adjust some kernel parameters, such as nproc (number of processes, default: 100), e.g. ktune nproc=200
But it sounds like that's not the issue, just purely running out of memory.
Adding more swap resolved the issue.Interesting to hear that helped. I would have thought the default 4000 KB would have sufficed, unless yours was smaller than that.
Next challenge is to get gcc-3.3.6 (running on UnixPC) to compile aGood luck!
program longer than a simple hello-world. It runs out of memory pretty
quickly, and as this is one process, swap does not help that use case.
I really appreciate the work you and Mike have done on the cross compiler. A great resource for anyone interested in UNIX PC.
| Sysop: | Keyop |
|---|---|
| Location: | Huddersfield, West Yorkshire, UK |
| Users: | 715 |
| Nodes: | 16 (2 / 14) |
| Uptime: | 07:09:27 |
| Calls: | 12,100 |
| Calls today: | 8 |
| Files: | 15,003 |
| Messages: | 6,517,927 |
| Posted today: | 1 |