Hi Marc,

On 3/4/20 9:33 PM, Marc Zyngier wrote:
> The vgic-state debugfs file could do with showing the pending state
> of the HW-backed SGIs. Plug it into the low-level code.
> 
> Signed-off-by: Marc Zyngier <[email protected]>
> ---
>  virt/kvm/arm/vgic/vgic-debug.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/virt/kvm/arm/vgic/vgic-debug.c b/virt/kvm/arm/vgic/vgic-debug.c
> index cc12fe9b2df3..b13a9e3f99dd 100644
> --- a/virt/kvm/arm/vgic/vgic-debug.c
> +++ b/virt/kvm/arm/vgic/vgic-debug.c
> @@ -178,6 +178,8 @@ static void print_irq_state(struct seq_file *s, struct 
> vgic_irq *irq,
>                           struct kvm_vcpu *vcpu)
>  {
>       char *type;
> +     bool pending;
nit: can be directly initialized to irq->pending_latch
> +
>       if (irq->intid < VGIC_NR_SGIS)
>               type = "SGI";
>       else if (irq->intid < VGIC_NR_PRIVATE_IRQS)
> @@ -190,6 +192,16 @@ static void print_irq_state(struct seq_file *s, struct 
> vgic_irq *irq,
>       if (irq->intid ==0 || irq->intid == VGIC_NR_PRIVATE_IRQS)
>               print_header(s, irq, vcpu);
>  
> +     pending = irq->pending_latch;
> +     if (irq->hw && vgic_irq_is_sgi(irq->intid)) {
> +             int err;
> +
> +             err = irq_get_irqchip_state(irq->host_irq,
> +                                         IRQCHIP_STATE_PENDING,
> +                                         &pending);
> +             WARN_ON_ONCE(err);
> +     }
> +
>       seq_printf(s, "       %s %4d "
>                     "    %2d "
>                     "%d%d%d%d%d%d%d "
> @@ -201,7 +213,7 @@ static void print_irq_state(struct seq_file *s, struct 
> vgic_irq *irq,
>                     "\n",
>                       type, irq->intid,
>                       (irq->target_vcpu) ? irq->target_vcpu->vcpu_id : -1,
> -                     irq->pending_latch,
> +                     pending,
>                       irq->line_level,
>                       irq->active,
>                       irq->enabled,
> 
The patch looks good to me but I am now lost about how we retrieve the
pending stat of other hw mapped interrupts. Looks we use
irq->pending_latch always. Is that correct?

For the patch:
Reviewed-by: Eric Auger <[email protected]>

Thanks

Eric

_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to