diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2025-05-12 13:10:42 +1000 |
---|---|---|
committer | Cédric Le Goater <clg@redhat.com> | 2025-07-21 08:03:53 +0200 |
commit | 581bec5a04c5c27a86cfae93ca531c101f2df2ec (patch) | |
tree | 90d09526cc95ef89b4bd168d6c1333d6d0ba3e8e /rust/qemu-api | |
parent | 3516b9b6739714068d83bb5ed9ce25cc1b20be8d (diff) | |
download | qemu-581bec5a04c5c27a86cfae93ca531c101f2df2ec.zip qemu-581bec5a04c5c27a86cfae93ca531c101f2df2ec.tar.gz qemu-581bec5a04c5c27a86cfae93ca531c101f2df2ec.tar.bz2 |
ppc/xive: tctx signaling registers rework
The tctx "signaling" registers (PIPR, CPPR, NSR) raise an interrupt on
the target CPU thread. The POOL and PHYS rings both raise hypervisor
interrupts, so they both share one set of signaling registers in the
PHYS ring. The PHYS NSR register contains a field that indicates which
ring has presented the interrupt being signaled to the CPU.
This sharing results in all the "alt_regs" throughout the code. alt_regs
is not very descriptive, and worse is that the name is used for
conversions in both directions, i.e., to find the presenting ring from
the signaling ring, and the signaling ring from the presenting ring.
Instead of alt_regs, use the names sig_regs and sig_ring, and regs and
ring for the presenting ring being worked on. Add a helper function to
get the sign_regs, and add some asserts to ensure the POOL regs are
never used to signal interrupts.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Reviewed-by: Michael Kowal <kowal@linux.ibm.com>
Tested-by: Gautam Menghani <gautam@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20250512031100.439842-34-npiggin@gmail.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Diffstat (limited to 'rust/qemu-api')
0 files changed, 0 insertions, 0 deletions