Module Name: src Committed By: bouyer Date: Mon Apr 13 22:54:12 UTC 2020
Modified Files: src/sys/arch/x86/include: cpu.h src/sys/arch/xen/include: evtchn.h src/sys/arch/xen/x86: xen_intr.c xen_ipi.c src/sys/arch/xen/xen: clock.c evtchn.c Log Message: By default, events are bound to CPU 0 (exept for IPIs and VTIMERs which are bound to a different CPU at creation time). Recent MI changes caused the scheduler to choose a different CPU when probing and attaching xennet devices (I guess it's the xenbus thread which runs on a different CPU). This cause the callback to be called on a different CPU than the one expected by the kernel, and the event is ignored. It is handled when the clock causes the callback to be called on the right CPU, which is why xennet still run, but slowly. Change event_set_handler() to do a EVTCHNOP_bind_vcpu if requested to, and make sure we don't do it for IPIs and VIRQs (for theses, the op fails). To generate a diff of this commit: cvs rdiff -u -r1.119 -r1.120 src/sys/arch/x86/include/cpu.h cvs rdiff -u -r1.28 -r1.29 src/sys/arch/xen/include/evtchn.h cvs rdiff -u -r1.21 -r1.22 src/sys/arch/xen/x86/xen_intr.c cvs rdiff -u -r1.35 -r1.36 src/sys/arch/xen/x86/xen_ipi.c cvs rdiff -u -r1.80 -r1.81 src/sys/arch/xen/xen/clock.c cvs rdiff -u -r1.88 -r1.89 src/sys/arch/xen/xen/evtchn.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.