-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello,
On 30.07.2012 19:56, Norman Feske wrote:
Using 0x6000000 works fine, whereas addresses like 0x47000000, 0x80000000, 0xa0000000 or 0xb0000000 cause pagefaults very early in the startup of Genode. Init complains about addresses having changed after attach.
does changing the link address of vancouver influence the behavior of init? This is unexpected and should not happen. No matter what strange things vancouver is doing, it should not be able to have an effect on init. If Vancouver is able to mess up init, you have likely hit a bug. I would appreciate a way to reproduce it.
Init doesn't fail, it's alive. It's just denying to attach at the addresses > 0x80000000.
For some reasons, in base-nova/src/core/platform.cc around line 355 the available virtual address space is configured to use only the first 2G.
After adjusting the size to 3G, I was able to use link addresses for vancouver above 2G.
@Norman: Is there a reason to have this 2G boundary instead of 3G for 32bit @ NOVA ?
Regarding another question of Markus:
I used run/vancouver as starting script, yes. And I noticed that increasing to something around 90 MiB works without problems. Going beyond that (e.g., 100MiB) strange things happen like page faults where there should not be ones, or for example an INT 3 debug instruction which seems to "forget" about the parameter it was passed.
In base-nova/src/core/platform_thread.cc ~line 51 the UTCB of the first address of a new address space is hard coded and is at 0x6000000.
That explains why you get in trouble if you use more than 96 MiB. Some other well chosen address we should use here ...
Cheers,
Alex.