All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sami Tolvanen <samitolvanen@google.com>
To: Deepak Gupta <debug@rivosinc.com>
Cc: palmer@dabbelt.com, linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org, Guo Ren <guoren@kernel.org>,
	Jisheng Zhang <jszhang@kernel.org>
Subject: Re: [PATCH v2] riscv: VMAP_STACK overflow detection thread-safe
Date: Wed, 19 Jul 2023 17:18:52 -0700	[thread overview]
Message-ID: <20230720001852.GA572618@google.com> (raw)
In-Reply-To: <20221124094845.1907443-1-debug@rivosinc.com>

Hi Deepak,

On Thu, Nov 24, 2022 at 01:48:45AM -0800, Deepak Gupta wrote:
> commit 31da94c25aea ("riscv: add VMAP_STACK overflow detection") added
> support for CONFIG_VMAP_STACK. If overflow is detected, CPU switches to
> `shadow_stack` temporarily before switching finally to per-cpu
> `overflow_stack`.
> 
> If two CPUs/harts are racing and end up in over flowing kernel stack, one
> or both will end up corrupting each other state because `shadow_stack` is
> not per-cpu. This patch optimizes per-cpu overflow stack switch by
> directly picking per-cpu `overflow_stack` and gets rid of `shadow_stack`.

Are you planning on resending this patch? I see it didn't gain much
traction last time, but this looks like a much cleaner solution for
selecting the overflow stack than having a `shadow_stack` and calling
to C to compute the per-CPU offset. The asm_per_cpu macro also would
come in handy when implementing CONFIG_SHADOW_CALL_STACK, which we'd
like to have on RISC-V too.

Sami

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Sami Tolvanen <samitolvanen@google.com>
To: Deepak Gupta <debug@rivosinc.com>
Cc: palmer@dabbelt.com, linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org, Guo Ren <guoren@kernel.org>,
	Jisheng Zhang <jszhang@kernel.org>
Subject: Re: [PATCH v2] riscv: VMAP_STACK overflow detection thread-safe
Date: Wed, 19 Jul 2023 17:18:52 -0700	[thread overview]
Message-ID: <20230720001852.GA572618@google.com> (raw)
In-Reply-To: <20221124094845.1907443-1-debug@rivosinc.com>

Hi Deepak,

On Thu, Nov 24, 2022 at 01:48:45AM -0800, Deepak Gupta wrote:
> commit 31da94c25aea ("riscv: add VMAP_STACK overflow detection") added
> support for CONFIG_VMAP_STACK. If overflow is detected, CPU switches to
> `shadow_stack` temporarily before switching finally to per-cpu
> `overflow_stack`.
> 
> If two CPUs/harts are racing and end up in over flowing kernel stack, one
> or both will end up corrupting each other state because `shadow_stack` is
> not per-cpu. This patch optimizes per-cpu overflow stack switch by
> directly picking per-cpu `overflow_stack` and gets rid of `shadow_stack`.

Are you planning on resending this patch? I see it didn't gain much
traction last time, but this looks like a much cleaner solution for
selecting the overflow stack than having a `shadow_stack` and calling
to C to compute the per-CPU offset. The asm_per_cpu macro also would
come in handy when implementing CONFIG_SHADOW_CALL_STACK, which we'd
like to have on RISC-V too.

Sami

  parent reply	other threads:[~2023-07-20  0:19 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-24  9:48 [PATCH v2] riscv: VMAP_STACK overflow detection thread-safe Deepak Gupta
2022-11-24  9:48 ` Deepak Gupta
2022-11-24  9:53 ` Guo Ren
2022-11-24  9:53   ` Guo Ren
2022-11-25 20:13   ` Deepak Gupta
2022-11-25 20:13     ` Deepak Gupta
2022-11-24 15:26 ` Jisheng Zhang
2022-11-24 15:26   ` Jisheng Zhang
2022-11-25 11:29   ` Jisheng Zhang
2022-11-25 11:29     ` Jisheng Zhang
2022-11-25 21:41     ` Deepak Gupta
2022-11-25 21:41       ` Deepak Gupta
2022-11-25 21:35   ` Deepak Gupta
2022-11-25 21:35     ` Deepak Gupta
2023-07-20  0:18 ` Sami Tolvanen [this message]
2023-07-20  0:18   ` Sami Tolvanen
2023-07-20 15:06   ` Guo Ren
2023-07-20 15:06     ` Guo Ren
2023-07-24 16:34     ` Sami Tolvanen
2023-07-24 16:34       ` Sami Tolvanen
2023-07-28 12:01       ` Guo Ren
2023-07-28 12:01         ` Guo Ren
     [not found]   ` <CAKC1njSaR2d-T_UnVJDZYbROT5OLEjBJ+Aps-UHPFTefDc8=6g@mail.gmail.com>
2023-07-20 18:42     ` Deepak Gupta
2023-07-20 18:42       ` Deepak Gupta
2023-07-20 15:10 ` Guo Ren
2023-07-20 15:10   ` Guo Ren
2023-07-24 17:03   ` Sami Tolvanen
2023-07-24 17:03     ` Sami Tolvanen

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=20230720001852.GA572618@google.com \
    --to=samitolvanen@google.com \
    --cc=debug@rivosinc.com \
    --cc=guoren@kernel.org \
    --cc=jszhang@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    /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
Be 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.