[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-ia64-devel] [PATCH] Make VTIdomain boot again
Dan and all: This is an bug related to the task "event channel callback/failsafe callback" that we decided to do in Xen summit but not started yet. If the task is completed, then same mechanism with X86 should be implemented, and the soft-IRQ only happens when returning to guest like X86. (see arch/x86/x86_32/entry.s API: ret_from_intr, test_all_events only happens when returning to guest). I believe there are others issues but not found yet due to our very beginning's walkaround in IA64. That usually means saving time at beginning (shortcut) take us more in later :-( Eddie Xu, Anthony wrote: > Hi All, > > Since the merge from xen-unstable, there is a small window between > bvt_do_schedule and context_switch in function __enter_schedule, where > interrupt is enabled. > > See below scenario: > 1. VTI domain accesses legacy IO, VMM gets control, sets VTI-domain > into blocked status and calls __enter_schedule to yield scheduler and > wait QEMU in domain0 to handle IO request. > 2. There is a timer interrupt in above window, and this timer > interrupt triggers schedule timer, then in irq_exit function, VMM > will do soft_irq, which in turn will invoke __enter_schedule, thus > __enter_schedule is reentered in VMM, which is not correct. > > So the root cause is __enter_schedule is reentered. > The correct way is, soft_irq should be done just before VMM returning > to guest just like in native linux soft-irq is done just before linux > returning to application. But in current implementation soft-irq is > done in irq-exit function. > > The reason why xenU can boot is, > xenU is always runable, so it will not be deleted from runqueue, > though __enter_schedule is reentered, no issue appear, as for > VTIdomain, when it does IO operation, it will be set into blocked > status and be deleted from runqueue, which will crash the whole > system. > > This patch is just a workaround, it makes sure in irq_exit only when > VMM is not in nested interrupted situation, soft_irq is done. > > I strongly suggest soft-irq be done in the path of ia64_leave_kernel > just like native linux kernel. > > Any comment? > > Thanks, > -Anthony _______________________________________________ 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 |