qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 18/41] hw/intc/arm_gicv3_its: Implement INV command properly


From: Richard Henderson
Subject: Re: [PATCH 18/41] hw/intc/arm_gicv3_its: Implement INV command properly
Date: Sat, 9 Apr 2022 11:22:20 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

On 4/8/22 07:15, Peter Maydell wrote:
We were previously implementing INV (like INVALL) to just blow away
cached highest-priority-pending-LPI information on all connected
redistributors.  For GICv4.0, this isn't going to be sufficient,
because the LPI we are invalidating cached information for might be
either physical or virtual, and the required action is different for
those two cases.  So we need to do the full process of looking up the
ITE from the devid and eventid.  This also means we can do the error
checks that the spec lists for this command.

Split out INV handling into a process_inv() function like our other
command-processing functions.  For the moment, stick to handling only
physical LPIs; we will add the vLPI parts later.

Signed-off-by: Peter Maydell<peter.maydell@linaro.org>
---
We could also improve INVALL to only prod the one redistributor
specified by the ICID in the command packet, but since INVALL
is only for physical LPIs I am leaving it as it is.
---
  hw/intc/gicv3_internal.h   | 12 +++++++++
  hw/intc/arm_gicv3_its.c    | 50 +++++++++++++++++++++++++++++++++++++-
  hw/intc/arm_gicv3_redist.c | 11 +++++++++
  hw/intc/trace-events       |  3 ++-
  4 files changed, 74 insertions(+), 2 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]