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

[Xen-devel] [PATCH v2 00/10] ARM: VGIC/GIC separation cleanups



Hi,

a reworked version of this series, addressing Stefano's comments.
Although I don't fully agree, I decided to drop the patches that Stefano
didn't like (3/12, 5/12, 8/12), instead moved the functions in question
into the new gic-vgic.c file, where they are out of the way for any new
VGIC as well. I also fixed the smaller comments and added the tags so
far.

Let me know how this looks!

Cheers,
Andre

Changelog:
01, 02, 03: add tags
04: unchanged
05: update to include non-moved functions (caused by the dropped patches)
06: rework to keep vgic info dump in gic-vgic.c
07, 08, 09: add tags
10: use newly introduced INVALID_IRQ

================
By the original VGIC design, Xen differentiates between the actual VGIC
emulation on one hand and the GIC hardware accesses on the other.
It seems there were some deviations from that scheme (over time?), so at
the moment we end up happily accessing VGIC specific data structures
like struct pending_irq and struct vgic_irq_rank from pure GIC files
like gic.c or even irq.c (try: git grep -l struct\ pending_irq xen/arch/arm).
But any future VGIC rework will depend on a clean separation, so this
series tries to clean this up.
It starts with some rather innocent patches, reaches its peak with the
heavy patch 5/10, and calms down in the rest of the series again.
After this series there are no more references to VGIC structures from
GIC files, at least for non-ITS code. The ITS is a beast own its own
(blame the author) and will be addressed later.

Andre Przywara (10):
  ARM: remove unneeded gic.h inclusions
  ARM: vGIC: fix nr_irq definition
  ARM: VGIC: move gic_remove_irq_from_queues()
  ARM: VGIC: streamline gic_restore_pending_irqs()
  ARM: VGIC: split gic.c to observe hardware/virtual GIC separation
  ARM: VGIC: split up gic_dump_info() to cover virtual part separately
  ARM: VGIC: rework events_need_delivery()
  ARM: VGIC: factor out vgic_connect_hw_irq()
  ARM: VGIC: factor out vgic_get_hw_irq_desc()
  ARM: VGIC: rework gicv[23]_update_lr to not use pending_irq

 xen/arch/arm/Makefile                |   1 +
 xen/arch/arm/domain.c                |   2 +
 xen/arch/arm/domain_build.c          |   1 -
 xen/arch/arm/gic-v2.c                |  14 +-
 xen/arch/arm/gic-v3.c                |  12 +-
 xen/arch/arm/gic-vgic.c              | 471 +++++++++++++++++++++++++++++++++++
 xen/arch/arm/gic.c                   | 430 +-------------------------------
 xen/arch/arm/irq.c                   |   9 +-
 xen/arch/arm/p2m.c                   |   1 -
 xen/arch/arm/platforms/vexpress.c    |   1 -
 xen/arch/arm/platforms/xgene-storm.c |   1 -
 xen/arch/arm/time.c                  |   1 -
 xen/arch/arm/traps.c                 |   3 +-
 xen/arch/arm/vgic-v3-its.c           |   4 +-
 xen/arch/arm/vgic.c                  |  22 +-
 xen/arch/arm/vpsci.c                 |   1 -
 xen/arch/arm/vtimer.c                |   1 -
 xen/include/asm-arm/event.h          |  13 +-
 xen/include/asm-arm/gic.h            |   8 +-
 xen/include/asm-arm/irq.h            |   5 +-
 xen/include/asm-arm/vgic.h           |   7 +
 21 files changed, 541 insertions(+), 467 deletions(-)
 create mode 100644 xen/arch/arm/gic-vgic.c

-- 
2.14.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.