From: Paul Walmsley <pjw@kernel.org>
To: Andy Chiu <tchiu@tenstorrent.com>
Cc: Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
linux-riscv@lists.infradead.org, andybnac@gmail.com,
dfustini@oss.tenstorrent.com, greentime.hu@sifive.com,
linux-kernel@vger.kernel.org, olof@lixom.net
Subject: Re: [PATCH v6 0/8] riscv: optimize mode switch latency for Vector
Date: Tue, 6 Oct 2026 04:01:19 -0600 (MDT) [thread overview]
Message-ID: <25b31a4c-5034-6740-eef1-1c2a60748398@kernel.org> (raw)
In-Reply-To: <20260918215154.2481482-1-tchiu@tenstorrent.com>
On Fri, 18 Sep 2026, Andy Chiu wrote:
> This series provide several optimizations targeting system call latency
> regarding vector context management. Before the series, the kernel
> handled user's vector context in an conservative way, where registers
> were null out and VS is tracked as DIRTY. This introduce excess context
> saving and restoring when there is a context swicth. Also, the kernel
> turned off Vector at the exception entry, making all in-kernel vector
> usecase take the serialization cost, which includes context switch and
> user copies. The cost is not easy to hide as vector code are usually sit
> right after enabling V.
>
> Since vector register are set to a known state at syscall exit, the
> series set VS to INIT at syscall entry and null out the vector register
> at the exit, skipping unnecessary saves and restores. The series also
> introduce riscv_novstateopt, when unset, enables vector in the kernel
> mode, and do not perform register nulling on the syscall fast path,
> where there is no context switch or kernel-mode vector during the
> syscall.
>
> With the whole series, nginx request throughput vs base on a four-core
> Ascalon-S, by served page size (* = statistically distinct):
>
> 86B 1KB 2KB 4KB 8KB 16KB 32KB
> v5 +0.79%* +1.36%* +2.33%* +2.02%* +0.14% +0.93% +2.42%*
> v6 +0.33%* -0.23% +2.88%* +2.19%* +1.02% +1.14% +1.40%*
>
> This series depends on [1], which is now queued in the KVM RISC-V tree
> [2]. For those who prefer git, the series is also available at [3].
Thanks. Given the KVM fixes dependency, it's probably best to wait to
merge most of these until v7.5. But I think it's OK to pick up 1, 2, and
3? Will queue those for v7.4.
- Paul
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
prev parent reply other threads:[~2026-10-06 10:01 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 21:51 [PATCH v6 0/8] riscv: optimize mode switch latency for Vector Andy Chiu
2026-09-18 21:51 ` [PATCH v6 1/8] riscv: do not read csr in vector context switch Andy Chiu
2026-10-06 10:01 ` Paul Walmsley
2026-09-18 21:51 ` [PATCH v6 2/8] riscv: vector: refactor context switch for kernel-mode vector Andy Chiu
2026-10-06 10:02 ` Paul Walmsley
2026-09-18 21:51 ` [PATCH v6 3/8] selftest: riscv: test vectorized user copy Andy Chiu
2026-09-18 21:51 ` Andy Chiu
2026-10-06 10:02 ` Paul Walmsley
2026-10-06 10:02 ` Paul Walmsley
2026-09-18 21:51 ` [PATCH v6 4/8] riscv: vector: refactor vector context operations Andy Chiu
2026-09-18 21:51 ` Andy Chiu
2026-09-18 21:51 ` Andy Chiu
2026-09-18 21:51 ` [PATCH v6 5/8] riscv: clarify vector state semantics on syscall and context switch Andy Chiu
2026-09-18 21:51 ` [PATCH v6 6/8] riscv: vector: adjust ptrace and signal behavior for INITIAL state Andy Chiu
2026-09-18 21:51 ` [PATCH v6 7/8] selftests: riscv: Extend vector tests for sigreturn and ptrace Andy Chiu
2026-09-18 21:51 ` Andy Chiu
2026-09-18 21:51 ` [PATCH v6 8/8] riscv: vector: optimize vstate operations Andy Chiu
2026-09-18 21:51 ` Andy Chiu
2026-10-06 9:40 ` [PATCH v6 0/8] riscv: optimize mode switch latency for Vector patchwork-bot+linux-riscv
2026-10-07 14:20 ` Paul Walmsley
2026-10-06 10:01 ` Paul Walmsley [this message]
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=25b31a4c-5034-6740-eef1-1c2a60748398@kernel.org \
--to=pjw@kernel.org \
--cc=alex@ghiti.fr \
--cc=andybnac@gmail.com \
--cc=aou@eecs.berkeley.edu \
--cc=dfustini@oss.tenstorrent.com \
--cc=greentime.hu@sifive.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=olof@lixom.net \
--cc=palmer@dabbelt.com \
--cc=tchiu@tenstorrent.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.