[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Odd mapping behavior with map_pages_to_xen

Dear all,

I'm experiencing some odd behavior when using the map_pages_to_xen function in arch/x86/mm.c.

The set up is as follows:

1. I allocate an entire page and get its virtual address.
2. For each machine frame number (mfn) I map the mfn onto the virtual address acquired in step 1.
       a. I read the contents of the page.
b. If softirqs are pending, exit and do_softirq(); else continue with next mfn.

most of the time this procedure works just fine, but once in a while I get odd results. In one iteration all the
pages are reported to contain only zeros. This of course cannot be true.

Perhaps it should be noted that step 2 is carried out from within the idle_loop. Although it seems safe to exploit this idle state, could there be some assumptions that does not hold? Could it be that for reasons not evident to me, mapping pages into Xen during this idle time, is a bad idea and not safe?

About mapping pages into Xen, if I understand it correctly, Xen's 64MB address space is mapped into every page table for every process in every domain, so the virtual address allocated in step 1 should be accessible
in any context. Is this not the case?

Furthermore there seems to be a direct connection with whether the tls libraries are disabled or not. When they are not
disabled, the odd results seems to occur more frequently.

Thank you in advance,
Arne Mejlholm

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.