[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] Reserved Register/Field fault not correct handledin Xen?
Hi, Dietmar >Hi, > >I had a closer look to my problem described on >http://lists.xensource.com/archives/html/xen-ia64-devel/2006-12/msg00120.html. >Now I can reproduce the panic in Xen with a dom0-user program. >The instructions >movl r16=0xff;; >mov ar.rsc=r16 >lead to a general exception with function code 0x30 (Reserved Register/Field >fault). >The trap handler in ivt.S checks only function code <=0x20. >The other exceptions call dispatch_to_fault_handler() and further >ia64_fault(). >In ia64_fault() there is only a check on function code 0x80 (Illegal >dependency fault). The function codes 0x30 (Reserved Register/Field fault) >and 0x40 lead to the xen-panic! You are right. >It seems the code was copied from the linux ia64_fault() routine. But there >is >a call of die_if_kernel(...) and if not kernel a call of >force_sig(SIGILL, ...) to kill the user process. >I believe the solution is here to use FAULT_OR_REFLECT(24) in the trap >handler >if the function code is > 0x20 and to extend the ia64_handle_reflection() >with handling the vector=24. >With this 2 fixes the user program gets a SIGILL like on native linux. >and my mini-os traphandler gets called from the hypervisor, so I can handle >the trap on my own. >Do I see something complete wrong or should I send a patch? I think your suggestion is almost right. But should the folloing IA64_ISR_CODE_LFETCH be checked? (because Privilege Register Fault may be occurred on guest.) ia64_fault() 393 if ((isr & IA64_ISR_NA) && 394 ((isr & IA64_ISR_CODE_MASK) == IA64_ISR_CODE_LFETCH)) { 395 /* 396 * This fault was due to lfetch.fault, set "ed" bit in the 397 * psr to cancel the lfetch. 398 */ 399 ia64_psr(regs)->ed = 1; 400 printk("ia64_fault: handled lfetch.fault\n"); 401 return; 402 } Could you send patches? Best Regards, Akio Takebe _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |