[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Xen-devel] Odd mapping behavior with map_pages_to_xen
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,
Xen-devel mailing list