From: Dmitry Vyukov <dvyukov@google.com> To: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, Andrey Konovalov <andreyknvl@gmail.com>, Thomas Gleixner <tglx@linutronix.de>, Steven Rostedt <rostedt@goodmis.org>, Marco Elver <elver@google.com>, Clark Williams <williams@redhat.com> Subject: Re: [PATCH 4/5] kcov: Avoid enable+disable interrupts if !in_task(). Date: Fri, 17 Sep 2021 16:50:37 +0200 [thread overview] Message-ID: <CACT4Y+aCm60gfP9uyEdb-KKaikGGXkrcY8FXhESnPyO_cWBw4A@mail.gmail.com> (raw) In-Reply-To: <20210830172627.267989-5-bigeasy@linutronix.de> On Mon, 30 Aug 2021 at 19:26, Sebastian Andrzej Siewior <bigeasy@linutronix.de> wrote: > > kcov_remote_start() may need to allocate memory in the in_task() case > (otherwise per-CPU memory has been pre-allocated) and therefore requires > enabled interrupts. > The interrupts are enabled before checking if the allocation is required > so if no allocation is required then the interrupts are needlessly > enabled and disabled again. > > Enable interrupts only if memory allocation is performed. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Acked-by: Dmitry Vyukov <dvyukov@google.com> > --- > kernel/kcov.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/kernel/kcov.c b/kernel/kcov.c > index 4f910231d99a2..620dc4ffeb685 100644 > --- a/kernel/kcov.c > +++ b/kernel/kcov.c > @@ -869,19 +869,19 @@ void kcov_remote_start(u64 handle) > size = CONFIG_KCOV_IRQ_AREA_SIZE; > area = this_cpu_ptr(&kcov_percpu_data)->irq_area; > } > - spin_unlock_irqrestore(&kcov_remote_lock, flags); > + spin_unlock(&kcov_remote_lock); > > /* Can only happen when in_task(). */ > if (!area) { > + local_irqrestore(flags); > area = vmalloc(size * sizeof(unsigned long)); > if (!area) { > kcov_put(kcov); > return; > } > + local_irq_save(flags); > } > > - local_irq_save(flags); > - > /* Reset coverage size. */ > *(u64 *)area = 0; > > -- > 2.33.0 >
next prev parent reply other threads:[~2021-09-17 14:50 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-30 17:26 [PATCH 0/5] kcov: PREEMPT_RT fixup + misc Sebastian Andrzej Siewior 2021-08-30 17:26 ` [PATCH 1/5] Documentation/kcov: Include types.h in the example Sebastian Andrzej Siewior 2021-09-17 14:34 ` Dmitry Vyukov 2021-08-30 17:26 ` [PATCH 2/5] Documentation/kcov: Define `ip' " Sebastian Andrzej Siewior 2021-09-17 14:37 ` Dmitry Vyukov 2021-08-30 17:26 ` [PATCH 3/5] kcov: Allocate per-CPU memory on the relevant node Sebastian Andrzej Siewior 2021-09-17 14:38 ` Dmitry Vyukov 2021-08-30 17:26 ` [PATCH 4/5] kcov: Avoid enable+disable interrupts if !in_task() Sebastian Andrzej Siewior 2021-09-17 14:50 ` Dmitry Vyukov [this message] 2021-08-30 17:26 ` [PATCH 5/5] kcov: Replace local_irq_save() with a local_lock_t Sebastian Andrzej Siewior 2021-09-17 14:58 ` Dmitry Vyukov 2021-09-06 16:13 ` [PATCH 0/5] kcov: PREEMPT_RT fixup + misc Marco Elver 2021-09-06 16:28 ` Sebastian Andrzej Siewior 2021-09-20 9:26 ` Marco Elver 2021-09-20 9:50 ` Sebastian Andrzej Siewior
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=CACT4Y+aCm60gfP9uyEdb-KKaikGGXkrcY8FXhESnPyO_cWBw4A@mail.gmail.com \ --to=dvyukov@google.com \ --cc=andreyknvl@gmail.com \ --cc=bigeasy@linutronix.de \ --cc=elver@google.com \ --cc=kasan-dev@googlegroups.com \ --cc=linux-kernel@vger.kernel.org \ --cc=rostedt@goodmis.org \ --cc=tglx@linutronix.de \ --cc=williams@redhat.com \ --subject='Re: [PATCH 4/5] kcov: Avoid enable+disable interrupts if '\!'in_task().' \ /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: link
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.