From: Nicholas Piggin <npiggin@gmail.com> To: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Christophe Leroy <christophe.leroy@csgroup.eu>, Michael Ellerman <mpe@ellerman.id.au>, Paul Mackerras <paulus@samba.org> Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v2 2/4] powerpc/interrupt: Refactor prep_irq_for_user_exit() Date: Fri, 11 Jun 2021 12:30:31 +1000 [thread overview] Message-ID: <1623378421.ayihg84s3a.astroid@bobo.none> (raw) In-Reply-To: <3fbef68e1cffc0ebbbad1893e4fb9426b0915039.1622818556.git.christophe.leroy@csgroup.eu> Excerpts from Christophe Leroy's message of June 5, 2021 12:56 am: > prep_irq_for_user_exit() is a superset of > prep_irq_for_kernel_enabled_exit(). > > Refactor it. I like the refactoring, but now prep_irq_for_user_exit() is calling prep_irq_for_kernel_enabled_exit(), which seems like the wrong naming. You could re-name prep_irq_for_kernel_enabled_exit() to prep_irq_for_enabled_exit() maybe? Or it could be __prep_irq_for_enabled_exit() then prep_irq_for_kernel_enabled_exit() and prep_irq_for_user_exit() would both call it. Otherwise Reviewed-by: Nicholas Piggin <npiggin@gmail.com> > > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/powerpc/kernel/interrupt.c | 25 +++++-------------------- > 1 file changed, 5 insertions(+), 20 deletions(-) > > diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c > index 539455c62c5b..b6aa80930733 100644 > --- a/arch/powerpc/kernel/interrupt.c > +++ b/arch/powerpc/kernel/interrupt.c > @@ -78,29 +78,14 @@ static notrace __always_inline bool prep_irq_for_kernel_enabled_exit(bool restar > */ > static notrace __always_inline bool prep_irq_for_user_exit(void) > { > - user_enter_irqoff(); > - /* This must be done with RI=1 because tracing may touch vmaps */ > - trace_hardirqs_on(); > - > -#ifdef CONFIG_PPC32 > - __hard_EE_RI_disable(); > -#else > - if (exit_must_hard_disable()) > - __hard_EE_RI_disable(); > + bool ret; > > - /* This pattern matches prep_irq_for_idle */ > - if (unlikely(lazy_irq_pending_nocheck())) { > - if (exit_must_hard_disable()) { > - local_paca->irq_happened |= PACA_IRQ_HARD_DIS; > - __hard_RI_enable(); > - } > - trace_hardirqs_off(); > + user_enter_irqoff(); > + ret = prep_irq_for_kernel_enabled_exit(true); > + if (!ret) > user_exit_irqoff(); > > - return false; > - } > -#endif > - return true; > + return ret; > } > > /* Has to run notrace because it is entered not completely "reconciled" */ > -- > 2.25.0 > >
WARNING: multiple messages have this Message-ID (diff)
From: Nicholas Piggin <npiggin@gmail.com> To: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Christophe Leroy <christophe.leroy@csgroup.eu>, Michael Ellerman <mpe@ellerman.id.au>, Paul Mackerras <paulus@samba.org> Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/4] powerpc/interrupt: Refactor prep_irq_for_user_exit() Date: Fri, 11 Jun 2021 12:30:31 +1000 [thread overview] Message-ID: <1623378421.ayihg84s3a.astroid@bobo.none> (raw) In-Reply-To: <3fbef68e1cffc0ebbbad1893e4fb9426b0915039.1622818556.git.christophe.leroy@csgroup.eu> Excerpts from Christophe Leroy's message of June 5, 2021 12:56 am: > prep_irq_for_user_exit() is a superset of > prep_irq_for_kernel_enabled_exit(). > > Refactor it. I like the refactoring, but now prep_irq_for_user_exit() is calling prep_irq_for_kernel_enabled_exit(), which seems like the wrong naming. You could re-name prep_irq_for_kernel_enabled_exit() to prep_irq_for_enabled_exit() maybe? Or it could be __prep_irq_for_enabled_exit() then prep_irq_for_kernel_enabled_exit() and prep_irq_for_user_exit() would both call it. Otherwise Reviewed-by: Nicholas Piggin <npiggin@gmail.com> > > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/powerpc/kernel/interrupt.c | 25 +++++-------------------- > 1 file changed, 5 insertions(+), 20 deletions(-) > > diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c > index 539455c62c5b..b6aa80930733 100644 > --- a/arch/powerpc/kernel/interrupt.c > +++ b/arch/powerpc/kernel/interrupt.c > @@ -78,29 +78,14 @@ static notrace __always_inline bool prep_irq_for_kernel_enabled_exit(bool restar > */ > static notrace __always_inline bool prep_irq_for_user_exit(void) > { > - user_enter_irqoff(); > - /* This must be done with RI=1 because tracing may touch vmaps */ > - trace_hardirqs_on(); > - > -#ifdef CONFIG_PPC32 > - __hard_EE_RI_disable(); > -#else > - if (exit_must_hard_disable()) > - __hard_EE_RI_disable(); > + bool ret; > > - /* This pattern matches prep_irq_for_idle */ > - if (unlikely(lazy_irq_pending_nocheck())) { > - if (exit_must_hard_disable()) { > - local_paca->irq_happened |= PACA_IRQ_HARD_DIS; > - __hard_RI_enable(); > - } > - trace_hardirqs_off(); > + user_enter_irqoff(); > + ret = prep_irq_for_kernel_enabled_exit(true); > + if (!ret) > user_exit_irqoff(); > > - return false; > - } > -#endif > - return true; > + return ret; > } > > /* Has to run notrace because it is entered not completely "reconciled" */ > -- > 2.25.0 > >
next prev parent reply other threads:[~2021-06-11 2:31 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-04 14:56 [PATCH v2 1/4] powerpc/interrupt: Interchange prep_irq_for_{kernel_enabled/user}_exit() Christophe Leroy 2021-06-04 14:56 ` Christophe Leroy 2021-06-04 14:56 ` [PATCH v2 2/4] powerpc/interrupt: Refactor prep_irq_for_user_exit() Christophe Leroy 2021-06-04 14:56 ` Christophe Leroy 2021-06-11 2:30 ` Nicholas Piggin [this message] 2021-06-11 2:30 ` Nicholas Piggin 2021-06-15 8:37 ` Christophe Leroy 2021-06-15 8:37 ` Christophe Leroy 2021-06-17 3:33 ` Nicholas Piggin 2021-06-17 3:33 ` Nicholas Piggin 2021-06-04 14:56 ` [PATCH v2 3/4] powerpc/interrupt: Rename and lightly change syscall_exit_prepare_main() Christophe Leroy 2021-06-04 14:56 ` Christophe Leroy 2021-06-11 2:32 ` Nicholas Piggin 2021-06-11 2:32 ` Nicholas Piggin 2021-06-04 14:56 ` [PATCH v2 4/4] powerpc/interrupt: Refactor interrupt_exit_user_prepare() Christophe Leroy 2021-06-04 14:56 ` Christophe Leroy 2021-06-11 2:26 ` [PATCH v2 1/4] powerpc/interrupt: Interchange prep_irq_for_{kernel_enabled/user}_exit() Nicholas Piggin 2021-06-11 2:26 ` Nicholas Piggin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1623378421.ayihg84s3a.astroid@bobo.none \ --to=npiggin@gmail.com \ --cc=benh@kernel.crashing.org \ --cc=christophe.leroy@csgroup.eu \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=paulus@samba.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.