[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v2 07/17] ppc/xive: Provide silent escalation supp
From: |
David Gibson |
Subject: |
Re: [Qemu-ppc] [PATCH v2 07/17] ppc/xive: Provide silent escalation support |
Date: |
Mon, 22 Jul 2019 18:27:06 +1000 |
User-agent: |
Mutt/1.12.0 (2019-05-25) |
On Thu, Jul 18, 2019 at 01:54:10PM +0200, Cédric Le Goater wrote:
> When the 's' bit is set the escalation is said to be 'silent' or
> 'silent/gather'. In such configuration, the notification sequence is
> skipped and only the escalation sequence is performed. This is used to
> configure all the EQs of a vCPU to escalate on a single EQ which will
> then target the hypervisor.
>
> Signed-off-by: Cédric Le Goater <address@hidden>
> ---
> include/hw/ppc/xive_regs.h | 2 ++
> hw/intc/xive.c | 8 ++++++++
> 2 files changed, 10 insertions(+)
>
> diff --git a/include/hw/ppc/xive_regs.h b/include/hw/ppc/xive_regs.h
> index 5d02ccfeff16..69af326ebf2c 100644
> --- a/include/hw/ppc/xive_regs.h
> +++ b/include/hw/ppc/xive_regs.h
> @@ -209,6 +209,8 @@ typedef struct XiveEND {
> #define xive_end_is_escalate(end) (be32_to_cpu((end)->w0) &
> END_W0_ESCALATE_CTL)
> #define xive_end_is_uncond_escalation(end) \
> (be32_to_cpu((end)->w0) & END_W0_UNCOND_ESCALATE)
> +#define xive_end_is_silent_escalation(end) \
> + (be32_to_cpu((end)->w0) & END_W0_SILENT_ESCALATE)
>
> static inline uint64_t xive_end_qaddr(XiveEND *end)
> {
> diff --git a/hw/intc/xive.c b/hw/intc/xive.c
> index c2e7e2d4c9a9..8ea97ac231a4 100644
> --- a/hw/intc/xive.c
> +++ b/hw/intc/xive.c
> @@ -1463,6 +1463,13 @@ static void xive_router_end_notify(XiveRouter *xrtr,
> uint8_t end_blk,
> xive_router_write_end(xrtr, end_blk, end_idx, &end, 1);
> }
>
> + /*
> + * When the END is silent, we skip the notification part.
> + */
> + if (xive_end_is_silent_escalation(&end)) {
> + goto do_escalation;
I don't love this use of goto, but I'll take it for now.
> + }
> +
> /*
> * The W7 format depends on the F bit in W6. It defines the type
> * of the notification :
> @@ -1542,6 +1549,7 @@ static void xive_router_end_notify(XiveRouter *xrtr,
> uint8_t end_blk,
> */
> }
>
> +do_escalation:
> /*
> * If activated, escalate notification using the ESe PQ bits and
> * the EAS in w4-5
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [Qemu-ppc] [PATCH v2 00/17] ppc/pnv: add XIVE support for KVM guests, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 02/17] ppc/pnv: add more dummy XSCOM addresses for the P9 CAPP, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 01/17] ppc/xive: use an abstract type for XiveNotifier, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 03/17] ppc/xive: Implement TM_PULL_OS_CTX special command, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 04/17] ppc/xive: Provide backlog support, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 05/17] ppc/xive: Provide escalation support, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 06/17] ppc/xive: Provide unconditional escalation support, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 07/17] ppc/xive: Provide silent escalation support, Cédric Le Goater, 2019/07/18
- Re: [Qemu-ppc] [PATCH v2 07/17] ppc/xive: Provide silent escalation support,
David Gibson <=
- [Qemu-ppc] [PATCH v2 08/17] ppc/xive: Improve 'info pic' support, Cédric Le Goater, 2019/07/18
- [Qemu-ppc] [PATCH v2 09/17] ppc/xive: Extend XiveTCTX with a XiveRouter pointer, Cédric Le Goater, 2019/07/18
[Qemu-ppc] [PATCH v2 10/17] ppc/xive: Introduce xive_tctx_ipb_update(), Cédric Le Goater, 2019/07/18
[Qemu-ppc] [PATCH v2 11/17] ppc/xive: Synthesize interrupt from the saved IPB in the NVT, Cédric Le Goater, 2019/07/18
[Qemu-ppc] [PATCH v2 12/17] ppc/pnv: Remove pnv_xive_vst_size() routine, Cédric Le Goater, 2019/07/18
[Qemu-ppc] [PATCH v2 13/17] ppc/pnv: Dump the XIVE NVT table, Cédric Le Goater, 2019/07/18