[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [RFC PATCH v2 07/21] ppc/xive: add MMIO handlers for the
From: |
Benjamin Herrenschmidt |
Subject: |
Re: [Qemu-ppc] [RFC PATCH v2 07/21] ppc/xive: add MMIO handlers for the XIVE interrupt sources |
Date: |
Thu, 28 Sep 2017 10:29:02 +0200 |
On Wed, 2017-09-20 at 15:05 +0200, Cédric Le Goater wrote:
> > > +/*
> > > + * XIVE Interrupt Source MMIOs
> > > + */
> > > +static uint64_t spapr_xive_esb_read(void *opaque, hwaddr addr, unsigned
> > > size)
> > > +{
> > > + sPAPRXive *xive = SPAPR_XIVE(opaque);
> > > + uint32_t offset = addr & 0xF00;
> > > + uint32_t srcno = addr >> xive->esb_shift;
> > > + XiveIVE *ive;
> > > + uint64_t ret = -1;
> > > +
> > > + ive = spapr_xive_get_ive(xive, srcno);
> > > + if (!ive || !(ive->w & IVE_VALID)) {
> > > + qemu_log_mask(LOG_GUEST_ERROR, "XIVE: invalid LISN %d\n", srcno);
> > > + goto out;
> >
> > Since there's a whole (4k) page for each source, I wonder if we should
> > actually map each one as a separate MMIO region to allow us to tweak
> > the mappings more flexibly
>
> yes we could have a subregion for each source. In that case,
> we should also handle IVE_VALID properly. That will require
> a specific XIVE allocator which was difficult to do while
> keeping the compatibility with XICS for migration and CAS.
That will be a serious bloat with lots of interrupts. We also cannot
possibly have a KVM mm region per interrupt or even a vma.
I'm thinking of some kind of /dev/xive (or some other KVM or irqfd
orignated fd) that allows you to mmap a single big region whose content
is demand-faulted and invalidated by the kernel to map the various
interrupts.
So that it looks like a single VMA (and KVM memory block).
Ben.
> C.
>
>
- Re: [Qemu-ppc] [RFC PATCH v2 05/21] ppc/xive: allocate IRQ numbers for the IPIs, (continued)
[Qemu-ppc] [RFC PATCH v2 06/21] ppc/xive: introduce handlers for interrupt sources, Cédric Le Goater, 2017/09/11
[Qemu-ppc] [RFC PATCH v2 07/21] ppc/xive: add MMIO handlers for the XIVE interrupt sources, Cédric Le Goater, 2017/09/11
Re: [Qemu-ppc] [RFC PATCH v2 07/21] ppc/xive: add MMIO handlers for the XIVE interrupt sources, Cédric Le Goater, 2017/09/20
Re: [Qemu-ppc] [RFC PATCH v2 07/21] ppc/xive: add MMIO handlers for the XIVE interrupt sources, David Gibson, 2017/09/22
Re: [Qemu-ppc] [RFC PATCH v2 07/21] ppc/xive: add MMIO handlers for the XIVE interrupt sources, Cédric Le Goater, 2017/09/22
Re: [Qemu-ppc] [RFC PATCH v2 07/21] ppc/xive: add MMIO handlers for the XIVE interrupt sources, Benjamin Herrenschmidt, 2017/09/28
[Qemu-ppc] [RFC PATCH v2 08/21] ppc/xive: describe the XIVE interrupt source flags, Cédric Le Goater, 2017/09/11
[Qemu-ppc] [RFC PATCH v2 09/21] ppc/xive: extend the interrupt presenter model for XIVE, Cédric Le Goater, 2017/09/11