[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240322-3c32873c4021477383a15f7d@orel>
Date: Fri, 22 Mar 2024 09:09:49 +0100
From: Andrew Jones <ajones@...tanamicro.com>
To: Deepak Gupta <debug@...osinc.com>
Cc: Samuel Holland <samuel.holland@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>, linux-riscv@...ts.infradead.org, devicetree@...r.kernel.org,
Catalin Marinas <catalin.marinas@....com>, linux-kernel@...r.kernel.org, tech-j-ext@...ts.risc-v.org,
Conor Dooley <conor@...nel.org>, kasan-dev@...glegroups.com,
Evgenii Stepanov <eugenis@...gle.com>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Rob Herring <robh+dt@...nel.org>, Guo Ren <guoren@...nel.org>, Heiko Stuebner <heiko@...ech.de>,
Paul Walmsley <paul.walmsley@...ive.com>
Subject: Re: [RISC-V] [tech-j-ext] [RFC PATCH 5/9] riscv: Split per-CPU and
per-thread envcfg bits
On Tue, Mar 19, 2024 at 09:39:52PM -0700, Deepak Gupta wrote:
..
> I am not sure of the practicality of this heterogeneity for Zicboz and
> for that matter any of the upcoming
> features that'll be enabled via senvcfg (control flow integrity,
> pointer masking, etc).
>
> As an example if cache zeroing instructions are used by app binary, I
> expect it to be used in following
> manner
>
> - Explicitly inserting cbo.zero by application developer
> - Some compiler flag which ensures that structures larger than cache
> line gets zeroed by cbo.zero
>
> In either of the cases, the developer is not expecting to target it to
> a specific hart on SoC and instead expect it to work.
> There might be libraries (installed via sudo apt get) with cache zero
> support in them which may run in different address spaces.
> Should the library be aware of the CPU on which it's running. Now
> whoever is running these binaries should be aware which CPUs
> they get assigned to in order to avoid faults?
>
> That seems excessive, doesn't it?
>
It might be safe to assume extensions like Zicboz will be on all harts if
any, but I wouldn't expect all extensions in the future to be present on
all available harts. For example, some Arm big.LITTLE boards only have
virt extensions on big CPUs. When a VMM wants to launch a guest it must
be aware of which CPUs it will use for the VCPU threads. For riscv, we
have the which-cpus variant of the hwprobe syscall to try and make this
type of thing easier to manage, but I agree it will still be a pain for
software since it will need to make that query and then set its affinity,
which is something it hasn't needed to do before.
Thanks,
drew
Powered by blists - more mailing lists