|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] xc_map_foreign_{range,batch}
Why does xc_map_foreign_range() take an argument named mfn of type
unsigned long, while xc_map_foreign_range() takes a list of pointers
to type xen_pfn_t? Is there a signficance to that difference -- i.e.,
is one truly a guest pfn (which will be translated to an mfn using the
guest p2m table), and the other truly an mfn (which will have no
translation)? Or are they both mfns?
I've looked around the source code in obvious places, but it's not
well documented, and I have no inclination to dig into the linux ioctl
implementation to see if there's a difference between
IOCTL_PRIVCMD_MMAP and IOCTL_PRIVCMD_MMAPBATCH.
I'm trying to rework the xentrace interface. The current interface
only passes back a single mfn; this requires all buffers for all cpus
to be allocated in a contiguous chunk in the xen heap. The size of an
available contiguous allocation is limited, and shrinks as the heap
becomes fragmented. As the number of cpus grows, this means smaller
and smaller buffers per cpu, and thus more lost records during periods
of high trace record generation (when trace records are usually the
most important).
Ideally we'd just allocate the memory we want from the heap without
requiring continuity, and pass back lists of mfns to be mapped by
xentrace. Mapping each cpu's buffer in one virtual address range
would be ideal.
Any suggestions / clarifications?
Thanks,
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] xc_map_foreign_{range,batch},
George Dunlap <=
|
|
|
|
|