[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240307-disable_misaligned_probe_config-v8-0-55d696cb398b@rivosinc.com>
Date: Thu, 07 Mar 2024 11:05:44 -0800
From: Charlie Jenkins <charlie@...osinc.com>
To: Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>, Albert Ou <aou@...s.berkeley.edu>,
Jisheng Zhang <jszhang@...nel.org>, Evan Green <evan@...osinc.com>,
Clément Léger <cleger@...osinc.com>,
Eric Biggers <ebiggers@...nel.org>,
Elliot Berman <quic_eberman@...cinc.com>, Charles Lohr <lohr85@...il.com>,
Conor Dooley <conor.dooley@...rochip.com>
Cc: linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
Charlie Jenkins <charlie@...osinc.com>
Subject: [PATCH v8 0/4] riscv: Use Kconfig to set unaligned access speed
If the hardware unaligned access speed is known at compile time, it is
possible to avoid running the unaligned access speed probe to speedup
boot-time.
Signed-off-by: Charlie Jenkins <charlie@...osinc.com>
---
Changes in v8:
- Minor commit message changes (Conor)
- Clean up hwprobe_misaligned() (Conor)
- Link to v7: https://lore.kernel.org/r/20240306-disable_misaligned_probe_config-v7-0-6c90419e7a96@rivosinc.com
Changes in v7:
- Fix check_unaligned_access_emulated_all_cpus to return false when any
cpu has emulated accesses
- Fix wording in Kconfig (Conor)
- Link to v6: https://lore.kernel.org/r/20240301-disable_misaligned_probe_config-v6-0-612ebd69f430@rivosinc.com
Changes in v6:
- Consolidate Kconfig into 4 options (probe, emulated, slow,
efficient)
- Change the behavior of "emulated" to allow hwprobe to return "slow" if
unaligned accesses are not emulated by the kernel
- With this consolidation, check_unaligned_access_emulated is able to be
moved back into the original file (traps_misaligned.c)
- Link to v5: https://lore.kernel.org/r/20240227-disable_misaligned_probe_config-v5-0-b6853846e27a@rivosinc.com
Changes in v5:
- Clarify Kconfig options from Conor's feedback
- Use "unaligned" instead of "misaligned" in introduced file/function.
This is a bit hard to standardize because the riscv manual says
"misaligned" but the existing Linux configs say "unaligned".
- Link to v4: https://lore.kernel.org/r/20240216-disable_misaligned_probe_config-v4-0-dc01e581c0ac@rivosinc.com
Changes in v4:
- Add additional Kconfig options for the other unaligned access speeds
- Link to v3: https://lore.kernel.org/r/20240202-disable_misaligned_probe_config-v3-0-c44f91f03bb6@rivosinc.com
Changes in v3:
- Revert change to csum (Eric)
- Change ifndefs for ifdefs (Eric)
- Change config in Makefile (Elliot/Eric)
- Link to v2: https://lore.kernel.org/r/20240201-disable_misaligned_probe_config-v2-0-77c368bed7b2@rivosinc.com
Changes in v2:
- Move around definitions to reduce ifdefs (Clément)
- Make RISCV_MISALIGNED depend on !HAVE_EFFICIENT_UNALIGNED_ACCESS
(Clément)
- Link to v1: https://lore.kernel.org/r/20240131-disable_misaligned_probe_config-v1-0-98d155e9cda8@rivosinc.com
---
Charlie Jenkins (4):
riscv: lib: Introduce has_fast_unaligned_access()
riscv: Only check online cpus for emulated accesses
riscv: Decouple emulated unaligned accesses from access speed
riscv: Set unaligned access speed at compile time
arch/riscv/Kconfig | 60 ++++--
arch/riscv/include/asm/cpufeature.h | 31 ++--
arch/riscv/kernel/Makefile | 4 +-
arch/riscv/kernel/cpufeature.c | 255 --------------------------
arch/riscv/kernel/sys_hwprobe.c | 13 ++
arch/riscv/kernel/traps_misaligned.c | 17 +-
arch/riscv/kernel/unaligned_access_speed.c | 282 +++++++++++++++++++++++++++++
arch/riscv/lib/csum.c | 7 +-
8 files changed, 376 insertions(+), 293 deletions(-)
---
base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
change-id: 20240131-disable_misaligned_probe_config-043aea375f93
--
- Charlie
Powered by blists - more mailing lists