So Christian. Just to offer some more information. We had an issue with mapping where by memory was being corrupted, I think by overlapping of the memory mappings. I cannot give you a simple test since it only seems to happen with a big machine with lots of memory. Anyway, the fix was to align the sub_rm allocations to 2^N.
So I think there is a bug somewhere either in our code, Genode code or Fiasco.OC. For the moment rounding up works for us. Best Daniel On Wed, 2013-07-10 at 13:18 -0700, Daniel Waddington wrote: > Sorry. My mistake. > Daniel > > On Wed, 2013-07-10 at 22:04 +0200, Christian Prochaska wrote: > > Hi Daniel, > > > > TOTAL_MEMORY_TO_USED was only used to calculate REGION_SIZE, but the RAM > > dataspace size is still set to GB(1). > > > > When increasing the RAM dataspace size to 2G, I'm getting the error > > > > We ran out of physical memory while allocating - bytes > > [init -> core-api-1] Assertion failed:ram.alloc() failed > > > > but not the page faults. > > > > Christian > > > > On 10.07.2013 21:52, Daniel Waddington wrote: > > > Hi Christian, > > > But this is 2GB which even rounded up to 128M is 1920MB?? The RAM > > > dataspace should be plenty big enough. > > > > > > Daniel > > > > > > On Wed, 2013-07-10 at 20:26 +0200, Christian Prochaska wrote: > > >> Hi Daniel, > > >> > > >> On 10.07.2013 16:48, Daniel Waddington wrote: > > >>> Hi Alex, > > >>> I see, so there is some 2^N round up. Why is this, I thought it used an > > >>> AVL tree to manage memory? > > >> >From my understanding it's a mapping optimization for some kernels. > > >> >Something like: mapping 64M to another task can be done with one > > >> syscall if the address has 64M alignment. But I'm not familiar with the > > >> details, perhaps somebody else can help out here? > > >> > > >>> Also, can you run the test with.. > > >>> > > >>> #define NUM_REGIONS 15 > > >>> #define TOTAL_MEMORY_TO_USE GB(2) > > >>> #define REGION_SIZE MB(96) > > >>> > > >>> I then get unhandled page faults. Can you see why? > > >>> > > >>> Thanks > > >>> Daniel > > >>> > > >> When only changing these values, the RAM dataspace is too small > > >> (phys_slab_size = GB(1)) for 15 regions of 96M. Usually, it would be > > >> an error if 'Ram_session::attach()' gets called with an 'offset' which > > >> exceeds the size of the dataspace (which happens in this > > >> case), but if I remember correctly there was a use case where this was > > >> valid. Something with ELF images and the dynamic linker. > > >> @ssumpf, do you remember? We should probably document this in > > >> 'Rm_session_component::attach()', why no exception gets thrown if > > >> 'size' is given and (offset >= dsc()->size()). > > >> > > >> Christian > > >> > > >> > > >> ------------------------------------------------------------------------------ > > >> See everything from the browser to the database with AppDynamics > > >> Get end-to-end visibility with application monitoring from AppDynamics > > >> Isolate bottlenecks and diagnose root cause in seconds. > > >> Start your free trial of AppDynamics Pro today! > > >> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > > >> _______________________________________________ > > >> Genode-main mailing list > > >> [email protected] > > >> https://lists.sourceforge.net/lists/listinfo/genode-main > > > > > > > > > ------------------------------------------------------------------------------ > > > See everything from the browser to the database with AppDynamics > > > Get end-to-end visibility with application monitoring from AppDynamics > > > Isolate bottlenecks and diagnose root cause in seconds. > > > Start your free trial of AppDynamics Pro today! > > > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > > > _______________________________________________ > > > Genode-main mailing list > > > [email protected] > > > https://lists.sourceforge.net/lists/listinfo/genode-main > > > > > > ------------------------------------------------------------------------------ > > See everything from the browser to the database with AppDynamics > > Get end-to-end visibility with application monitoring from AppDynamics > > Isolate bottlenecks and diagnose root cause in seconds. > > Start your free trial of AppDynamics Pro today! > > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > > _______________________________________________ > > Genode-main mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/genode-main > > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > _______________________________________________ > Genode-main mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/genode-main ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Genode-main mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/genode-main
