L4Re + ARM

Alexis Fajardo Moya afmoya at uclv.cu
Wed Apr 2 21:52:19 CEST 2014

El 02/04/14 12:24, Alexis Fajardo Moya escribió:
> =>=>=> lastmoduleend 0 received from rounded  this_module->end() 0
Note this output. After move the first module (00, corresponding to 
fiasco), the "end" value of the variable


is 0.

After many printfs, I (aka. my team) discover the problem in the function

move_module (l4util_mb_info_t *mbi, int i, Region *from, Region *to, bool overlap_check)

after execute the sentence

memmove((void *)to->begin(), (void *)start, size);

the *begin* and *end* values of the region *to*, originally with values 
711cf000 and 712256db, turns in 10101464c457f and 0. The *begin* and 
*end* values of the region *from* are set to the corresponding values of 
the region *to*, causing the problem in the assigment to *lastmoduleend* 
variable in the *move_modules* function, making false the comparision

for (unsigned i = 0; i < mbi->mods_count; ++i) { ...

     if (i < 3) { ...

         if (start < lastmoduleend)  // false, (7106e000 < 0)?

in the second iteration of the for sentence.

Best regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20140402/35233174/attachment.html>

More information about the l4-hackers mailing list