On Wed, 2006-08-09 at 17:44 +0100, Keir Fraser wrote:
> On 9/8/06 4:14 pm, "Hollis Blanchard" <[EMAIL PROTECTED]> wrote:
> > That direction certainly seems like a good one to me.
> > 
> > In this case, we need to load the device tree into the domain's memory
> > and pass its address in a register (i.e. via xc_vcpu_setcontext).
> > Currently it doesn't look like xc_vcpu_setcontext is exposed to python
> > for us to use. What would you like to see here?
> Hmmm... I was expecting you'd want a ppc-specific libxenguest or libxenctrl
> function, but I guess maybe you could do it by more generic means. That
> would obviously be much preferable if it's possible.
> Could a copy_to/from_guest interface exposed to Python be used? Or does the
> device tree need some processing in C into an appropriate format for writing
> into guest memory? As for set/get_vcpu_context, the context could be
> expressed as a Python dictionary mapping register names to (reasonably
> constrained) long values.

I spent some time building the proper binary format in Python (through
lots of struct.pack and '\0'.join), so the C code doesn't need to
reformat it.

However, there are a few values we only determine in C code that need to
be inserted into the device tree:
- initrd start/end -- could be done in Python with an xc.copy_to_guest
- console_mfn/store_mfn -- chosen arbitrarily in C, so could just as
easily be chosen arbitrarily in Python

Actually, I think that may be it... most of the data we can gather in
Python or come directly from the domain config file.

I can implement xc.copy_to_guest() and wc.copy_from_guest() and do the
initrd loading in Python (including using the gzip module). However,
initrd loading in tools/libxc/xc_linux_build.c looks a little more
complicated than I'd feel comfortable modifying without testing, and I'm
not really set up to test x86 changes.

Hollis Blanchard
IBM Linux Technology Center

Xen-ppc-devel mailing list

Reply via email to