qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] [PATCH v3 00/24] ppc/xics: simplify ICS and ICP creation


From: Cédric Le Goater
Subject: Re: [Qemu-ppc] [PATCH v3 00/24] ppc/xics: simplify ICS and ICP creation
Date: Fri, 24 Feb 2017 11:41:34 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0

On 02/24/2017 11:17 AM, Cédric Le Goater wrote:
> Hello,
> 
> The goal behind this series is to simplify the XICS interface by
> moving back in the machine the way the ICS and ICP objects interact
> together. It's up to the machine to implement this "fabric" logic by
> providing a set of handlers of a QOM interface. These handlers are
> used to grab an ICS or an ICP object and also do irq resends. The idea
> was suggested by David Gibson.

David,

For some reason, my email filters went wild and I missed all your
comments a part from the one on XICSFabric ... So please ignore v3.

I will go through your emails now that I see them ...

Sorry for the noise,

C. 


> The patchset is organised as follow. It starts with a preliminary
> cleanup to get rid of the set_nr_irqs() and set_nr_servers()
> handlers. It also moves the creation of the ICS and ICP objects from
> the XICS object to the sPAPR machine. This simplifies the code
> significantly and prepares ground for future changes.
> 
> As the sPAPR machine only makes use of a single ICS, we can store it
> at the machine level. This lets us remove dependencies on the list of
> ICS of the XICS object and simplify even more the code for the
> following changes.
> 
> The QOM interface to interact with the ICS and ICP objects is then
> introduced. These are moved under the machine and cleanups are done
> accordingly.
> 
> Finally, the XICSState classes are removed as they have been
> deprecated by the QOM interface.
> 
> 
> After the initial cleanups, which are rather big, each patch are small
> and simple. The make target 'check-qtest-ppc64' runs succesfully for
> each of them and so does migration of HV and TCG guests.
> 
> The tree is available here :
> 
>          https://github.com/legoater/qemu/tree/ppc-2.9
> 
> Thanks,
> 
> C.
> 
> 
> 
> Caveats:
> 
>  - The kernel ICP file descriptor 'kernel_xics_fd' was made static to
>    ease changes but that could be an issue. We could move it under the
>    sPAPR machine if needed.
> 
> Changes since v2:
> 
>  - renamed QOM Interface to XICSFabric
> 
> Cédric Le Goater (23):
>   ppc/xics: fix ICP and ICS reset
>   ppc/xics: remove set_nr_irqs() handler from XICSStateClass
>   ppc/xics: remove set_nr_servers() handler from XICSStateClass
>   ppc/xics: store the ICS object under the sPAPR machine
>   ppc/xics: add an InterruptStatsProvider interface to ICS and ICP
>     objects
>   ppc/xics: introduce a XICSFabric QOM interface to handle ICSs
>   ppc/xics: use the QOM interface under the sPAPR machine
>   ppc/xics: use the QOM interface to get irqs
>   ppc/xics: use the QOM interface to resend irqs
>   ppc/xics: remove xics_find_source()
>   ppc/xics: register the reset handler of ICS objects
>   ppc/xics: remove the XICS list of ICS
>   ppc/xics: extend the QOM interface to handle ICPs
>   ppc/xics: simplify the cpu_setup() handler
>   ppc/xics: use the QOM interface to grab an ICP
>   ppc/xics: simplify spapr_dt_xics() interface
>   ppc/xics: register the reset handler of ICP objects
>   ppc/xics: move the ICP array under the sPAPR machine
>   ppc/xics: move kernel_xics_fd out of KVMXICSState
>   ppc/xics: move the cpu_setup() handler under the ICPState class
>   ppc/xics: remove the 'xics' backlinks
>   ppc/xics: export the XICS init routines
>   ppc/xics: remove the XICSState classes
> 
> David Gibson (1):
>   xics: XICS should not be a SysBusDevice
> 
>  hw/intc/xics.c              | 295 
> +++++++++++++-------------------------------
>  hw/intc/xics_kvm.c          | 154 ++++++-----------------
>  hw/intc/xics_spapr.c        | 128 ++++---------------
>  hw/ppc/spapr.c              | 116 +++++++++++++----
>  hw/ppc/spapr_cpu_core.c     |   4 +-
>  hw/ppc/spapr_events.c       |  10 +-
>  hw/ppc/spapr_pci.c          |  10 +-
>  hw/ppc/spapr_vio.c          |   2 +-
>  include/hw/pci-host/spapr.h |   2 +-
>  include/hw/ppc/spapr.h      |   5 +-
>  include/hw/ppc/spapr_vio.h  |   2 +-
>  include/hw/ppc/xics.h       |  93 ++++++--------
>  12 files changed, 294 insertions(+), 527 deletions(-)
> 




reply via email to

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