Re: [Xen-devel] [PATCH v5 10/12] x86/xen: Bypass intr mode setup in enlighten_pv system
Hi Thomas, At 07/03/2017 02:56 PM, Thomas Gleixner wrote: On Mon, 3 Jul 2017, Dou Liyang wrote: At 07/03/2017 03:18 AM, Thomas Gleixner wrote: On Fri, 30 Jun 2017, Dou Liyang wrote: xen_smp_ops overwrites smp_prepare_cpus to xen_pv_smp_prepare_cpus which initializes interrupt itself. Touching the intr_mode_init causes unexpected results on the system. Bypass it in enlighten_pv system. So that's the wrong patch order then. You broke XEN at some point with your changes. You need to prevent that breakage upfront not after the fact. Yes, I have considered to prevent that breakage in the patchset. Actually, Until the 11th patch, we put the intr_mode_init ahead of time, which will break XEN. Before the 11th patch, we just unify the code and do the preparation, Kernel will do the intr_mode_init like before, which will have no influence on XEN. So we put the patch here before 11th patch. Ok. That's good, but please explain it in the changelog. I had the impression that this is fixing breakage you introduced earlier, but now with your explanation it makes sense. So the patch order is correct. Something like this wants to be in the changelog: XEN PV overrides smp_prepare_cpus(). xen_pv_smp_prepare_cpus() initializes interrupts in the XEN PV specific way and does not invoke native_smp_prepare_cpus(). As a consequence, x86_init.intr_mode_init() is not invoked either. The invocation of x86_init.intr_mode_init() will be moved from native_smp_prepare_cpus() in a follow up patch to solve . That move would cause the invocation of x86_init.intr_mode_init() for XEN PV platforms. To prevent that, override the default x86_init.intr_mode_init() callback with a noop(). Thank you very much for writing the changelog again. This is really the true purpose which I couldn't explain clearly. I am testing my V6 patchset, will send it out soon. Thanks, dou. Thanks, tglx ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v5 10/12] x86/xen: Bypass intr mode setup in enlighten_pv system
On Mon, 3 Jul 2017, Dou Liyang wrote: > At 07/03/2017 03:18 AM, Thomas Gleixner wrote: > > On Fri, 30 Jun 2017, Dou Liyang wrote: > > > > > xen_smp_ops overwrites smp_prepare_cpus to xen_pv_smp_prepare_cpus > > > which initializes interrupt itself. > > > > > > Touching the intr_mode_init causes unexpected results on the system. > > > > > > Bypass it in enlighten_pv system. > > > > So that's the wrong patch order then. You broke XEN at some point with your > > changes. You need to prevent that breakage upfront not after the fact. > > Yes, I have considered to prevent that breakage in the patchset. > > Actually, Until the 11th patch, we put the intr_mode_init ahead of > time, which will break XEN. > > Before the 11th patch, we just unify the code and do the preparation, > Kernel will do the intr_mode_init like before, which will have no > influence on XEN. > > So we put the patch here before 11th patch. Ok. That's good, but please explain it in the changelog. I had the impression that this is fixing breakage you introduced earlier, but now with your explanation it makes sense. So the patch order is correct. Something like this wants to be in the changelog: XEN PV overrides smp_prepare_cpus(). xen_pv_smp_prepare_cpus() initializes interrupts in the XEN PV specific way and does not invoke native_smp_prepare_cpus(). As a consequence, x86_init.intr_mode_init() is not invoked either. The invocation of x86_init.intr_mode_init() will be moved from native_smp_prepare_cpus() in a follow up patch to solve . That move would cause the invocation of x86_init.intr_mode_init() for XEN PV platforms. To prevent that, override the default x86_init.intr_mode_init() callback with a noop(). Thanks, tglx ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v5 10/12] x86/xen: Bypass intr mode setup in enlighten_pv system
Hi Thomas, At 07/03/2017 03:18 AM, Thomas Gleixner wrote: On Fri, 30 Jun 2017, Dou Liyang wrote: xen_smp_ops overwrites smp_prepare_cpus to xen_pv_smp_prepare_cpus which initializes interrupt itself. Touching the intr_mode_init causes unexpected results on the system. Bypass it in enlighten_pv system. So that's the wrong patch order then. You broke XEN at some point with your changes. You need to prevent that breakage upfront not after the fact. Yes, I have considered to prevent that breakage in the patchset. Actually, Until the 11th patch, we put the intr_mode_init ahead of time, which will break XEN. Before the 11th patch, we just unify the code and do the preparation, Kernel will do the intr_mode_init like before, which will have no influence on XEN. So we put the patch here before 11th patch. Thanks, dou. Thanks, tglx ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v5 10/12] x86/xen: Bypass intr mode setup in enlighten_pv system
On Fri, 30 Jun 2017, Dou Liyang wrote: > xen_smp_ops overwrites smp_prepare_cpus to xen_pv_smp_prepare_cpus > which initializes interrupt itself. > > Touching the intr_mode_init causes unexpected results on the system. > > Bypass it in enlighten_pv system. So that's the wrong patch order then. You broke XEN at some point with your changes. You need to prevent that breakage upfront not after the fact. Thanks, tglx ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v5 10/12] x86/xen: Bypass intr mode setup in enlighten_pv system
xen_smp_ops overwrites smp_prepare_cpus to xen_pv_smp_prepare_cpus which initializes interrupt itself. Touching the intr_mode_init causes unexpected results on the system. Bypass it in enlighten_pv system. Signed-off-by: Dou Liyang --- arch/x86/xen/enlighten_pv.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c index f33eef4..d3362a3 100644 --- a/arch/x86/xen/enlighten_pv.c +++ b/arch/x86/xen/enlighten_pv.c @@ -1268,6 +1268,7 @@ asmlinkage __visible void __init xen_start_kernel(void) x86_platform.get_nmi_reason = xen_get_nmi_reason; x86_init.resources.memory_setup = xen_memory_setup; + x86_init.irqs.intr_mode_init= x86_init_noop; x86_init.oem.arch_setup = xen_arch_setup; x86_init.oem.banner = xen_banner; -- 2.5.5 ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel