[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] Re: A credit scheduler issue
>Although you may have spotted a performance bug that should be looked >into (if this migration happens significantly frequently), it *should >not* be a correctness bug! I don't think the fixes for the >HVM-and-credit-sched bugs lie in the credit scheduler itself. :-) > Hi Keir, we just found the root cause of IA32 HVM guests can not run on 64 bit host with the default credit scheduler. credit scheduler migrates HVM vcpu from logical precessor from time to time, but on x86_64 hypervisor, in __context_switch, we have if ( !is_idle_vcpu(p) ) { memcpy(&p->arch.guest_context.user_regs, stack_regs, CTXT_SWITCH_STACK_BYTES); unlazy_fpu(p); p->arch.ctxt_switch_from(p); } if ( !is_idle_vcpu(n) ) { memcpy(stack_regs, &n->arch.guest_context.user_regs, CTXT_SWITCH_STACK_BYTES); And CTXT_SWITCH_STACK_BYTES is defined as (offsetof(struct cpu_user_regs, es)). The definition of CTXT_SWITCH_STACK_BYTES on x86_64 is OK for 64 bit guests, no matter para guests or HVM guests, but for 32 bit HVM guests, since segments registers are skipped, it's buggy. I'd perfer to define CTXT_SWITCH_STACK_BYTES to sizeof(struct cpu_user_regs). How about your opinion? Thanks -Xin _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |