Genode 16.08 nova.iso rebooting on real Core 2 Duo after relocating modules

Paul Dufresne dufresnep at ...9...
Fri Sep 23 22:59:37 CEST 2016


Looks like I was ok in my previous post.

In fact I seem to have isolated to a line in pte.cpp in function walk:
template <typename P, typename E, unsigned L, unsigned B, bool F>
P *Pte<P,E,L,B,F>::walk (Quota &quota, E v, unsigned long n, bool a)
{
    unsigned long l = L;

    for (P *p, *e = static_cast<P *>(this);; e = static_cast<P
*>(Buddy::phys_to_ptr (e->addr())) + (v >> (--l * B + PAGE_BITS) &
((1UL << B) - 1))) {
//while(1);
        if (l == n)
            return e;

        if (!e->val) {

            if (!a)
                return nullptr;
while(1);
            if (!e->set (0, Buddy::ptr_to_phys (p = new (quota) P) |
(l == L ? 0 : P::PTE_N)))
                Pte::destroy(p, quota);
//while(1);
        }
    }
}

So I believe the culprit ine is:
            if (!e->set (0, Buddy::ptr_to_phys (p = new (quota) P) |
(l == L ? 0 : P::PTE_N)))
                Pte::destroy(p, quota);

Guess I need to take time to examine, try to think and see if I can go further.




More information about the users mailing list