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

RE: [Xen-devel] [PATCH][RESEND]Nvram patch for IA64



Ian Pratt  write on 2006?10?31? 22:45:
>>>> Yes, static good configurations can be made for different guest OS
>>>> (RHEL, SLES, Win 2003, Win Vista). But I am afraid this workaround
>>>> will have potential issue, because we are unable to predict how
>>>> guest OS would use variable.
>>> 
>>> Is the variable contents the same for all installs of each of the
>>> OSes you list?
>> 
>> No, different OS has differrent configurations.
> 
> But do all installs of the same OS have the same variable contents?
> That was the question.

Oh, I misunderstand your question. Yes. The same OS installation have same 
variable contents.  

> 
>>>>> Further, storing it in a file will create compilcations when we
>>>>> move to running qemu in stub domains -- we'll need a way of
>>>>> passing it across xenbus.
>>>> 
>>>> Could you please elaborate what the "complications" is? Per my
>>>> understanding, even without NVRAM file, qemu in stub domain still
>>>> need to read/write the disk image file.
>>> 
>>> You won't be able to write stuff to a file directly, you'll need to
>>> use a front/back driver, which is needlessly complicated. xenbus is
>>> definitely the way to go. 
>>> 
>>>> It is also OK to store NVRAM in xenstore, but seems xenstore have
>>>> no capability to store binary data, it can only store
>>>> null-termincated strings.  If we want to directly store EFI
>>>> variable in xenstore instead of sotre NVRAM binary, we need to
>>>> para-virtualize guest firmware GetVariable/Setvariable interface,
>>>> which is more complicated.
>>> 
>>> You'll have to escape the NULLs. It might be easiest just to store
>>> the hex string. 
>>> 
>>> You don't need to paravirtulize it as qemu can do the trivial
>>> conversion. 
>>> 
>>> Ian
>> 
>> OK. this should work. Then the only concern is the size of
>> NVRAM. 64KB data is quite large for xenstore. Is it
>> acceptable to xenstore? Maybe qemu need to compress the data
>> first. Usually, most of the NVRAM content is free area, which
>> is continuous byte "0xFF", so compresion can reduce the size
>> significantly.
> 
> Break it into 64 byte (128 character) chunks and only populate nodes
> that are not all ones.
> 
> Ian

OK. then the xensotor content will looks like this:
nvram = " "                                          # nvram dir
   vti-domain1 = " "                               # domain name
       0 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  # 128 characters, data offset = 0*64
       1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  # 128 characters, data offset = 1*64
       .........                                          # skip data block of 
all 0xff 
   vti-domain2 = " "
       ..........


Best Regards
Ke

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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