WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] Support big endian domU's

Hi, Dietmar

>I started with supporting big endian domU's on ia64 and have some questions.
>I did some changes to tools/libxc/xc_load_elf.c and now I can load and start 
>the big endian domU.
>Because this is some sort  of a new branch in load_elf how can I get in 
>changes? Should I simply send patches to x86 list or should I first initiate 
>a discussion about that?
>
Is the changes related to x86?
If so, we should discuss on xen-devel.

>I added a flag is_be to struct arch_domain. Is this ok, or may this produce 
>some problems?
>struct arch_domain {
>    struct mm_struct mm;
>    /* Flags.  */
>    union {
>        unsigned long flags;
>        struct {
>            unsigned int is_vti : 1;
>#ifdef CONFIG_XEN_IA64_PERVCPU_VHPT
>            unsigned int has_pervcpu_vhpt : 1;
>#endif
>            unsigned int is_be : 1;              <--------
>        };
>    };
>
I feel like this is ok, but you may add  __attribute__((aligned(8))).

>Should I introduce a new compiler flag where the special big endion support 
>can be switched off?
>
Yes,I think so.
Isaku often introduce new flags, I like the way. :)

>A question to the function reflect_interruptions() in fault.c:
>As far as I understand the code, PSCB(...) are prepared to contain the 
>trapped 
>dumU environment..
>regs->... are prepared to contain the environment for return to the trap 
>handler of the domU.
>If this is the case then on a big endian domU the psr.be bit ist not set in 
>regs->ipsr from dcr.be. This is needed on return from Xen to the trap handler 
>of the domU.
>The other thing is that in vcpu_get_ipsr_int_state() the psr.be bit should 
>not 
>be overwritten by dcr.be. There are cases where a big endian domU runs 
>temporarily littlen endian (during efi calls, ...). If there would be a trap, 
>it would return with psr.be = 1, which is not what we want.
>The same problem may occur on reflect_event()!
I don't understand this issue very much.
But can you check is_be flags, and restore psr.be in each cases?

Best Regards,

Akio Takebe 


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

<Prev in Thread] Current Thread [Next in Thread>