riscv: don't probe unaligned access speed if already done
[ Upstream commit c20d36cc2a2073d4cdcda92bd7a1bb9b3b3b7c79 ]
If misaligned_access_speed percpu var isn't so called "HWPROBE
MISALIGNED UNKNOWN", it means the probe has happened(this is possible
for example, hotplug off then hotplug on one cpu), and the percpu var
has been set, don't probe again in this case.
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Fixes: 584ea6564b
("RISC-V: Probe for unaligned access speed")
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20230912154040.3306-1-jszhang@kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
5d1e4e5fd1
commit
b649a7fe9a
|
@ -568,6 +568,10 @@ void check_unaligned_access(int cpu)
|
||||||
void *src;
|
void *src;
|
||||||
long speed = RISCV_HWPROBE_MISALIGNED_SLOW;
|
long speed = RISCV_HWPROBE_MISALIGNED_SLOW;
|
||||||
|
|
||||||
|
/* We are already set since the last check */
|
||||||
|
if (per_cpu(misaligned_access_speed, cpu) != RISCV_HWPROBE_MISALIGNED_UNKNOWN)
|
||||||
|
return;
|
||||||
|
|
||||||
page = alloc_pages(GFP_NOWAIT, get_order(MISALIGNED_BUFFER_SIZE));
|
page = alloc_pages(GFP_NOWAIT, get_order(MISALIGNED_BUFFER_SIZE));
|
||||||
if (!page) {
|
if (!page) {
|
||||||
pr_warn("Can't alloc pages to measure memcpy performance");
|
pr_warn("Can't alloc pages to measure memcpy performance");
|
||||||
|
|
Loading…
Reference in New Issue