Boris Ostrovsky
2013-Feb-28 22:55 UTC
[PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
Invoking arch_flush_lazy_mmu_mode() results in calls to preempt_enable()/disable() which may have performance impact. Since lazy MMU is not used on bare metal we can patch away arch_flush_lazy_mmu_mode() so that it is never called in such environment. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> --- arch/x86/include/asm/paravirt.h | 5 ++++- arch/x86/include/asm/paravirt_types.h | 2 ++ arch/x86/kernel/paravirt.c | 25 +++++++++++++------------ arch/x86/lguest/boot.c | 1 + arch/x86/xen/mmu.c | 1 + 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 5edd174..7361e47 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -703,7 +703,10 @@ static inline void arch_leave_lazy_mmu_mode(void) PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave); } -void arch_flush_lazy_mmu_mode(void); +static inline void arch_flush_lazy_mmu_mode(void) +{ + PVOP_VCALL0(pv_mmu_ops.lazy_mode.flush); +} static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, phys_addr_t phys, pgprot_t flags) diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index 142236e..b3b0ec1 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h @@ -91,6 +91,7 @@ struct pv_lazy_ops { /* Set deferred update mode, used for batching operations. */ void (*enter)(void); void (*leave)(void); + void (*flush)(void); }; struct pv_time_ops { @@ -679,6 +680,7 @@ void paravirt_end_context_switch(struct task_struct *next); void paravirt_enter_lazy_mmu(void); void paravirt_leave_lazy_mmu(void); +void paravirt_flush_lazy_mmu(void); void _paravirt_nop(void); u32 _paravirt_ident_32(u32); diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index 17fff18..8bfb335 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c @@ -263,6 +263,18 @@ void paravirt_leave_lazy_mmu(void) leave_lazy(PARAVIRT_LAZY_MMU); } +void paravirt_flush_lazy_mmu(void) +{ + preempt_disable(); + + if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) { + arch_leave_lazy_mmu_mode(); + arch_enter_lazy_mmu_mode(); + } + + preempt_enable(); +} + void paravirt_start_context_switch(struct task_struct *prev) { BUG_ON(preemptible()); @@ -292,18 +304,6 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void) return this_cpu_read(paravirt_lazy_mode); } -void arch_flush_lazy_mmu_mode(void) -{ - preempt_disable(); - - if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) { - arch_leave_lazy_mmu_mode(); - arch_enter_lazy_mmu_mode(); - } - - preempt_enable(); -} - struct pv_info pv_info = { .name = "bare hardware", .paravirt_enabled = 0, @@ -475,6 +475,7 @@ struct pv_mmu_ops pv_mmu_ops = { .lazy_mode = { .enter = paravirt_nop, .leave = paravirt_nop, + .flush = paravirt_nop, }, .set_fixmap = native_set_fixmap, diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 1cbd89c..7114c63 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c @@ -1334,6 +1334,7 @@ __init void lguest_init(void) pv_mmu_ops.read_cr3 = lguest_read_cr3; pv_mmu_ops.lazy_mode.enter = paravirt_enter_lazy_mmu; pv_mmu_ops.lazy_mode.leave = lguest_leave_lazy_mmu_mode; + pv_mmu_ops.lazy_mode.flush = paravirt_flush_lazy_mmu; pv_mmu_ops.pte_update = lguest_pte_update; pv_mmu_ops.pte_update_defer = lguest_pte_update; diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index e8e3493..f4f4105 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -2197,6 +2197,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = { .lazy_mode = { .enter = paravirt_enter_lazy_mmu, .leave = xen_leave_lazy_mmu, + .flush = paravirt_flush_lazy_mmu, }, .set_fixmap = xen_set_fixmap, -- 1.8.1.2
Borislav Petkov
2013-Feb-28 23:37 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Thu, Feb 28, 2013 at 05:55:49PM -0500, Boris Ostrovsky wrote:> Invoking arch_flush_lazy_mmu_mode() results in calls to > preempt_enable()/disable() which may have performance impact. > > Since lazy MMU is not used on bare metal we can patch away > arch_flush_lazy_mmu_mode() so that it is never called in such > environment. > > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>Looks straight-forward enough to me. Acked-by: Borislav Petkov <bp@suse.de> -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. --
Josh Boyer
2013-Mar-01 00:05 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Fri, Mar 01, 2013 at 12:37:20AM +0100, Borislav Petkov wrote:> On Thu, Feb 28, 2013 at 05:55:49PM -0500, Boris Ostrovsky wrote: > > Invoking arch_flush_lazy_mmu_mode() results in calls to > > preempt_enable()/disable() which may have performance impact. > > > > Since lazy MMU is not used on bare metal we can patch away > > arch_flush_lazy_mmu_mode() so that it is never called in such > > environment. > > > > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> > > Looks straight-forward enough to me. > > Acked-by: Borislav Petkov <bp@suse.de>I''ll try to get someone to test this tomorrow. josh
H. Peter Anvin
2013-Mar-01 00:15 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On 02/28/2013 04:05 PM, Josh Boyer wrote:> On Fri, Mar 01, 2013 at 12:37:20AM +0100, Borislav Petkov wrote: >> On Thu, Feb 28, 2013 at 05:55:49PM -0500, Boris Ostrovsky wrote: >>> Invoking arch_flush_lazy_mmu_mode() results in calls to >>> preempt_enable()/disable() which may have performance impact. >>> >>> Since lazy MMU is not used on bare metal we can patch away >>> arch_flush_lazy_mmu_mode() so that it is never called in such >>> environment. >>> >>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> >> >> Looks straight-forward enough to me. >> >> Acked-by: Borislav Petkov <bp@suse.de> > > I''ll try to get someone to test this tomorrow. >Sounds good. I''d like look at this after the merge window close. I''m kind of bothered about having a choice with an oops on PV, a performance regression on native, or putting a pretty complex patch in as a fix, but since we''ll be right after -rc1 it is probably reasonable to pick the last option. -hpa
Borislav Petkov
2013-Mar-01 00:36 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote:> > I''ll try to get someone to test this tomorrow.Btw, you''d need to apply that other patch too http://marc.info/?l=xen-devel&m=136206183814547&w=2 so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. Thanks. -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. --
Josh Boyer
2013-Mar-01 00:42 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote:> On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > > > I''ll try to get someone to test this tomorrow. > > Btw, you''d need to apply that other patch too > > http://marc.info/?l=xen-devel&m=136206183814547&w=2 > > so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64.Yeah, we already have that applied. It stops crashes in xen environments so we pulled it in as a bugfix. Thanks though! josh
H. Peter Anvin
2013-Mar-01 00:52 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On 02/28/2013 04:42 PM, Josh Boyer wrote:> On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: >> On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: >>>> I''ll try to get someone to test this tomorrow. >> >> Btw, you''d need to apply that other patch too >> >> http://marc.info/?l=xen-devel&m=136206183814547&w=2 >> >> so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. > > Yeah, we already have that applied. It stops crashes in xen > environments so we pulled it in as a bugfix. Thanks though! >Who are "we"? -hpa
Josh Boyer
2013-Mar-01 12:14 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote:> On 02/28/2013 04:42 PM, Josh Boyer wrote: > > On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: > >> On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > >>>> I''ll try to get someone to test this tomorrow. > >> > >> Btw, you''d need to apply that other patch too > >> > >> http://marc.info/?l=xen-devel&m=136206183814547&w=2 > >> > >> so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. > > > > Yeah, we already have that applied. It stops crashes in xen > > environments so we pulled it in as a bugfix. Thanks though! > > > > Who are "we"?Sorry, Fedora. That patch has a link to a bug in it. We applied the patch for that bug. I''ll apply Boris'' patch on top and get the same people to test it. josh
Konrad Rzeszutek Wilk
2013-Mar-04 15:13 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Thu, Feb 28, 2013 at 05:55:49PM -0500, Boris Ostrovsky wrote:> Invoking arch_flush_lazy_mmu_mode() results in calls to > preempt_enable()/disable() which may have performance impact. > > Since lazy MMU is not used on bare metal we can patch away > arch_flush_lazy_mmu_mode() so that it is never called in such > environment. > > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>I am OK with this - had also run it overnight on baremetal/xen to make sure there were no funny business.> --- > arch/x86/include/asm/paravirt.h | 5 ++++- > arch/x86/include/asm/paravirt_types.h | 2 ++ > arch/x86/kernel/paravirt.c | 25 +++++++++++++------------ > arch/x86/lguest/boot.c | 1 + > arch/x86/xen/mmu.c | 1 + > 5 files changed, 21 insertions(+), 13 deletions(-) > > diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h > index 5edd174..7361e47 100644 > --- a/arch/x86/include/asm/paravirt.h > +++ b/arch/x86/include/asm/paravirt.h > @@ -703,7 +703,10 @@ static inline void arch_leave_lazy_mmu_mode(void) > PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave); > } > > -void arch_flush_lazy_mmu_mode(void); > +static inline void arch_flush_lazy_mmu_mode(void) > +{ > + PVOP_VCALL0(pv_mmu_ops.lazy_mode.flush); > +} > > static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, > phys_addr_t phys, pgprot_t flags) > diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h > index 142236e..b3b0ec1 100644 > --- a/arch/x86/include/asm/paravirt_types.h > +++ b/arch/x86/include/asm/paravirt_types.h > @@ -91,6 +91,7 @@ struct pv_lazy_ops { > /* Set deferred update mode, used for batching operations. */ > void (*enter)(void); > void (*leave)(void); > + void (*flush)(void); > }; > > struct pv_time_ops { > @@ -679,6 +680,7 @@ void paravirt_end_context_switch(struct task_struct *next); > > void paravirt_enter_lazy_mmu(void); > void paravirt_leave_lazy_mmu(void); > +void paravirt_flush_lazy_mmu(void); > > void _paravirt_nop(void); > u32 _paravirt_ident_32(u32); > diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c > index 17fff18..8bfb335 100644 > --- a/arch/x86/kernel/paravirt.c > +++ b/arch/x86/kernel/paravirt.c > @@ -263,6 +263,18 @@ void paravirt_leave_lazy_mmu(void) > leave_lazy(PARAVIRT_LAZY_MMU); > } > > +void paravirt_flush_lazy_mmu(void) > +{ > + preempt_disable(); > + > + if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) { > + arch_leave_lazy_mmu_mode(); > + arch_enter_lazy_mmu_mode(); > + } > + > + preempt_enable(); > +} > + > void paravirt_start_context_switch(struct task_struct *prev) > { > BUG_ON(preemptible()); > @@ -292,18 +304,6 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void) > return this_cpu_read(paravirt_lazy_mode); > } > > -void arch_flush_lazy_mmu_mode(void) > -{ > - preempt_disable(); > - > - if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) { > - arch_leave_lazy_mmu_mode(); > - arch_enter_lazy_mmu_mode(); > - } > - > - preempt_enable(); > -} > - > struct pv_info pv_info = { > .name = "bare hardware", > .paravirt_enabled = 0, > @@ -475,6 +475,7 @@ struct pv_mmu_ops pv_mmu_ops = { > .lazy_mode = { > .enter = paravirt_nop, > .leave = paravirt_nop, > + .flush = paravirt_nop, > }, > > .set_fixmap = native_set_fixmap, > diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c > index 1cbd89c..7114c63 100644 > --- a/arch/x86/lguest/boot.c > +++ b/arch/x86/lguest/boot.c > @@ -1334,6 +1334,7 @@ __init void lguest_init(void) > pv_mmu_ops.read_cr3 = lguest_read_cr3; > pv_mmu_ops.lazy_mode.enter = paravirt_enter_lazy_mmu; > pv_mmu_ops.lazy_mode.leave = lguest_leave_lazy_mmu_mode; > + pv_mmu_ops.lazy_mode.flush = paravirt_flush_lazy_mmu; > pv_mmu_ops.pte_update = lguest_pte_update; > pv_mmu_ops.pte_update_defer = lguest_pte_update; > > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c > index e8e3493..f4f4105 100644 > --- a/arch/x86/xen/mmu.c > +++ b/arch/x86/xen/mmu.c > @@ -2197,6 +2197,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = { > .lazy_mode = { > .enter = paravirt_enter_lazy_mmu, > .leave = xen_leave_lazy_mmu, > + .flush = paravirt_flush_lazy_mmu, > }, > > .set_fixmap = xen_set_fixmap, > -- > 1.8.1.2 >
Boris Ostrovsky
2013-Mar-13 13:25 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On 03/01/2013 07:14 AM, Josh Boyer wrote:> On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: >> On 02/28/2013 04:42 PM, Josh Boyer wrote: >>> On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: >>>> On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: >>>>>> I''ll try to get someone to test this tomorrow. >>>> Btw, you''d need to apply that other patch too >>>> >>>> http://marc.info/?l=xen-devel&m=136206183814547&w=2 >>>> >>>> so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. >>> Yeah, we already have that applied. It stops crashes in xen >>> environments so we pulled it in as a bugfix. Thanks though! >>> >> Who are "we"? > Sorry, Fedora. That patch has a link to a bug in it. We applied the > patch for that bug. I''ll apply Boris'' patch on top and get the same > people to test it.Josh, have you had a chance to test this? -boris
Josh Boyer
2013-Mar-13 13:44 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote:> On 03/01/2013 07:14 AM, Josh Boyer wrote: > >On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: > >>On 02/28/2013 04:42 PM, Josh Boyer wrote: > >>>On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: > >>>>On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > >>>>>>I''ll try to get someone to test this tomorrow. > >>>>Btw, you''d need to apply that other patch too > >>>> > >>>>http://marc.info/?l=xen-devel&m=136206183814547&w=2 > >>>> > >>>>so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. > >>>Yeah, we already have that applied. It stops crashes in xen > >>>environments so we pulled it in as a bugfix. Thanks though! > >>> > >>Who are "we"? > >Sorry, Fedora. That patch has a link to a bug in it. We applied the > >patch for that bug. I''ll apply Boris'' patch on top and get the same > >people to test it. > > Josh, have you had a chance to test this?I''ve tested it on bare metal for a while now. No problems noticed at all. I''ve not heard back from Krishna who was testing it in the Xen environment. Krishna? josh
Boris Ostrovsky
2013-Mar-20 13:53 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
----- jwboyer@redhat.com wrote:> On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote: > > On 03/01/2013 07:14 AM, Josh Boyer wrote: > > >On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: > > >>On 02/28/2013 04:42 PM, Josh Boyer wrote: > > >>>On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: > > >>>>On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > > >>>>>>I''ll try to get someone to test this tomorrow. > > >>>>Btw, you''d need to apply that other patch too > > >>>> > > >>>>http://marc.info/?l=xen-devel&m=136206183814547&w=2 > > >>>> > > >>>>so that arch_flush_lazy_mmu_mode() has at least one caller on > x86_64. > > >>>Yeah, we already have that applied. It stops crashes in xen > > >>>environments so we pulled it in as a bugfix. Thanks though! > > >>> > > >>Who are "we"? > > >Sorry, Fedora. That patch has a link to a bug in it. We applied > the > > >patch for that bug. I''ll apply Boris'' patch on top and get the > same > > >people to test it. > > > > Josh, have you had a chance to test this? > > I''ve tested it on bare metal for a while now. No problems noticed at > all. I''ve not heard back from Krishna who was testing it in the Xen > environment. Krishna?Any updates? Thanks. -boris
Josh Boyer
2013-Mar-21 00:08 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Wed, Mar 20, 2013 at 06:53:55AM -0700, Boris Ostrovsky wrote:> > ----- jwboyer@redhat.com wrote: > > > On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote: > > > On 03/01/2013 07:14 AM, Josh Boyer wrote: > > > >On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: > > > >>On 02/28/2013 04:42 PM, Josh Boyer wrote: > > > >>>On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: > > > >>>>On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > > > >>>>>>I''ll try to get someone to test this tomorrow. > > > >>>>Btw, you''d need to apply that other patch too > > > >>>> > > > >>>>http://marc.info/?l=xen-devel&m=136206183814547&w=2 > > > >>>> > > > >>>>so that arch_flush_lazy_mmu_mode() has at least one caller on > > x86_64. > > > >>>Yeah, we already have that applied. It stops crashes in xen > > > >>>environments so we pulled it in as a bugfix. Thanks though! > > > >>> > > > >>Who are "we"? > > > >Sorry, Fedora. That patch has a link to a bug in it. We applied > > the > > > >patch for that bug. I''ll apply Boris'' patch on top and get the > > same > > > >people to test it. > > > > > > Josh, have you had a chance to test this? > > > > I''ve tested it on bare metal for a while now. No problems noticed at > > all. I''ve not heard back from Krishna who was testing it in the Xen > > environment. Krishna? > > > Any updates?No. I''ve still not heard from Krishna. At this point I''ve tested it on bare metal quite a bit, and Konrad has tested it on both bare metal and Xen. That should already cover the case Krishna was going to test anyway. I suggest we move forward and take the patch. josh
Konrad Rzeszutek Wilk
2013-Mar-21 14:07 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Wed, Mar 13, 2013 at 09:44:43AM -0400, Josh Boyer wrote:> On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote: > > On 03/01/2013 07:14 AM, Josh Boyer wrote: > > >On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: > > >>On 02/28/2013 04:42 PM, Josh Boyer wrote: > > >>>On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: > > >>>>On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > > >>>>>>I''ll try to get someone to test this tomorrow. > > >>>>Btw, you''d need to apply that other patch too > > >>>> > > >>>>http://marc.info/?l=xen-devel&m=136206183814547&w=2 > > >>>> > > >>>>so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. > > >>>Yeah, we already have that applied. It stops crashes in xen > > >>>environments so we pulled it in as a bugfix. Thanks though! > > >>> > > >>Who are "we"? > > >Sorry, Fedora. That patch has a link to a bug in it. We applied the > > >patch for that bug. I''ll apply Boris'' patch on top and get the same > > >people to test it. > > > > Josh, have you had a chance to test this? > > I''ve tested it on bare metal for a while now. No problems noticed at > all. I''ve not heard back from Krishna who was testing it in the Xen > environment. Krishna?Roping in Stephan from Canonical as they are seeing it on a regular basis and is affecting their distro. Stephan - there are two patches for it - the paravirt of lazy_mmu mode and then the other one. This thread should provide the right URLs (I hope). Could you (if it is possible) try them out and see if they fix the issue?> > josh
Stefan Bader
2013-Mar-21 14:39 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On 21.03.2013 15:07, Konrad Rzeszutek Wilk wrote:> On Wed, Mar 13, 2013 at 09:44:43AM -0400, Josh Boyer wrote: >> On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote: >>> On 03/01/2013 07:14 AM, Josh Boyer wrote: >>>> On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: >>>>> On 02/28/2013 04:42 PM, Josh Boyer wrote: >>>>>> On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: >>>>>>> On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: >>>>>>>>> I''ll try to get someone to test this tomorrow. >>>>>>> Btw, you''d need to apply that other patch too >>>>>>> >>>>>>> http://marc.info/?l=xen-devel&m=136206183814547&w=2 >>>>>>> >>>>>>> so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. >>>>>> Yeah, we already have that applied. It stops crashes in xen >>>>>> environments so we pulled it in as a bugfix. Thanks though! >>>>>> >>>>> Who are "we"? >>>> Sorry, Fedora. That patch has a link to a bug in it. We applied the >>>> patch for that bug. I''ll apply Boris'' patch on top and get the same >>>> people to test it. >>> >>> Josh, have you had a chance to test this? >> >> I''ve tested it on bare metal for a while now. No problems noticed at >> all. I''ve not heard back from Krishna who was testing it in the Xen >> environment. Krishna? > > Roping in Stephan from Canonical as they are seeing it on a regular basis > and is affecting their distro.That is unfortunately overstated. Just was asked about it by someone who seems affected and who had found the redhat bug. From that I found the other thread (which added the lazy_mmu_flush). Well, I passed on the link to this thread so maybe this will get some confirmation.> > Stephan - there are two patches for it - the paravirt of lazy_mmu mode > and then the other one. > > This thread should provide the right URLs (I hope). Could you (if it is possible) > try them out and see if they fix the issue? > >> >> josh > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Konrad Rzeszutek Wilk
2013-Mar-22 01:11 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Thu, Mar 21, 2013 at 03:39:57PM +0100, Stefan Bader wrote:> On 21.03.2013 15:07, Konrad Rzeszutek Wilk wrote: > > On Wed, Mar 13, 2013 at 09:44:43AM -0400, Josh Boyer wrote: > >> On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote: > >>> On 03/01/2013 07:14 AM, Josh Boyer wrote: > >>>> On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: > >>>>> On 02/28/2013 04:42 PM, Josh Boyer wrote: > >>>>>> On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: > >>>>>>> On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > >>>>>>>>> I''ll try to get someone to test this tomorrow. > >>>>>>> Btw, you''d need to apply that other patch too > >>>>>>> > >>>>>>> http://marc.info/?l=xen-devel&m=136206183814547&w=2 > >>>>>>> > >>>>>>> so that arch_flush_lazy_mmu_mode() has at least one caller on x86_64. > >>>>>> Yeah, we already have that applied. It stops crashes in xen > >>>>>> environments so we pulled it in as a bugfix. Thanks though! > >>>>>> > >>>>> Who are "we"? > >>>> Sorry, Fedora. That patch has a link to a bug in it. We applied the > >>>> patch for that bug. I''ll apply Boris'' patch on top and get the same > >>>> people to test it. > >>> > >>> Josh, have you had a chance to test this? > >> > >> I''ve tested it on bare metal for a while now. No problems noticed at > >> all. I''ve not heard back from Krishna who was testing it in the Xen > >> environment. Krishna? > > > > Roping in Stephan from Canonical as they are seeing it on a regular basis > > and is affecting their distro. > > That is unfortunately overstated. Just was asked about it by someone who seems > affected and who had found the redhat bug. From that I found the other thread > (which added the lazy_mmu_flush). > Well, I passed on the link to this thread so maybe this will get some confirmation.Aaah. Sorry for that.> > > > > Stephan - there are two patches for it - the paravirt of lazy_mmu mode > > and then the other one. > > > > This thread should provide the right URLs (I hope). Could you (if it is possible) > > try them out and see if they fix the issue? > > > >> > >> josh > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xen.org > > http://lists.xen.org/xen-devel > > > >> _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Konrad Rzeszutek Wilk
2013-Mar-22 20:09 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
On Wed, Mar 20, 2013 at 08:08:45PM -0400, Josh Boyer wrote:> On Wed, Mar 20, 2013 at 06:53:55AM -0700, Boris Ostrovsky wrote: > > > > ----- jwboyer@redhat.com wrote: > > > > > On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote: > > > > On 03/01/2013 07:14 AM, Josh Boyer wrote: > > > > >On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin wrote: > > > > >>On 02/28/2013 04:42 PM, Josh Boyer wrote: > > > > >>>On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov wrote: > > > > >>>>On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin wrote: > > > > >>>>>>I''ll try to get someone to test this tomorrow. > > > > >>>>Btw, you''d need to apply that other patch too > > > > >>>> > > > > >>>>http://marc.info/?l=xen-devel&m=136206183814547&w=2 > > > > >>>> > > > > >>>>so that arch_flush_lazy_mmu_mode() has at least one caller on > > > x86_64. > > > > >>>Yeah, we already have that applied. It stops crashes in xen > > > > >>>environments so we pulled it in as a bugfix. Thanks though! > > > > >>> > > > > >>Who are "we"? > > > > >Sorry, Fedora. That patch has a link to a bug in it. We applied > > > the > > > > >patch for that bug. I''ll apply Boris'' patch on top and get the > > > same > > > > >people to test it. > > > > > > > > Josh, have you had a chance to test this? > > > > > > I''ve tested it on bare metal for a while now. No problems noticed at > > > all. I''ve not heard back from Krishna who was testing it in the Xen > > > environment. Krishna? > > > > > > Any updates? > > No. I''ve still not heard from Krishna. > > At this point I''ve tested it on bare metal quite a bit, and Konrad has > tested it on both bare metal and Xen. That should already cover the > case Krishna was going to test anyway. I suggest we move forward and > take the patch.Peter? Would you like me or Boris to clean up the two patches with the appropiate Acks and send them to you?> > josh
H. Peter Anvin
2013-Mar-22 20:25 UTC
Re: [PATCH] mm/x86: Patch out arch_flush_lazy_mmu_mode() when running on bare metal
Sure. Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:>On Wed, Mar 20, 2013 at 08:08:45PM -0400, Josh Boyer wrote: >> On Wed, Mar 20, 2013 at 06:53:55AM -0700, Boris Ostrovsky wrote: >> > >> > ----- jwboyer@redhat.com wrote: >> > >> > > On Wed, Mar 13, 2013 at 09:25:44AM -0400, Boris Ostrovsky wrote: >> > > > On 03/01/2013 07:14 AM, Josh Boyer wrote: >> > > > >On Thu, Feb 28, 2013 at 04:52:20PM -0800, H. Peter Anvin >wrote: >> > > > >>On 02/28/2013 04:42 PM, Josh Boyer wrote: >> > > > >>>On Fri, Mar 01, 2013 at 01:36:29AM +0100, Borislav Petkov >wrote: >> > > > >>>>On Thu, Feb 28, 2013 at 04:15:45PM -0800, H. Peter Anvin >wrote: >> > > > >>>>>>I''ll try to get someone to test this tomorrow. >> > > > >>>>Btw, you''d need to apply that other patch too >> > > > >>>> >> > > > >>>>http://marc.info/?l=xen-devel&m=136206183814547&w=2 >> > > > >>>> >> > > > >>>>so that arch_flush_lazy_mmu_mode() has at least one caller >on >> > > x86_64. >> > > > >>>Yeah, we already have that applied. It stops crashes in xen >> > > > >>>environments so we pulled it in as a bugfix. Thanks though! >> > > > >>> >> > > > >>Who are "we"? >> > > > >Sorry, Fedora. That patch has a link to a bug in it. We >applied >> > > the >> > > > >patch for that bug. I''ll apply Boris'' patch on top and get >the >> > > same >> > > > >people to test it. >> > > > >> > > > Josh, have you had a chance to test this? >> > > >> > > I''ve tested it on bare metal for a while now. No problems >noticed at >> > > all. I''ve not heard back from Krishna who was testing it in the >Xen >> > > environment. Krishna? >> > >> > >> > Any updates? >> >> No. I''ve still not heard from Krishna. >> >> At this point I''ve tested it on bare metal quite a bit, and Konrad >has >> tested it on both bare metal and Xen. That should already cover the >> case Krishna was going to test anyway. I suggest we move forward and >> take the patch. > >Peter? > >Would you like me or Boris to clean up the two patches with the >appropiate Acks and send them to you? >> >> josh-- Sent from my mobile phone. Please excuse brevity and lack of formatting.