xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/12] ARM: VGIC/GIC separation cleanups
@ 2017-10-19 12:48 Andre Przywara
  2017-10-19 12:48 ` [PATCH 01/12] ARM: remove unneeded gic.h inclusions Andre Przywara
                   ` (12 more replies)
  0 siblings, 13 replies; 36+ messages in thread
From: Andre Przywara @ 2017-10-19 12:48 UTC (permalink / raw)
  To: Julien Grall, Stefano Stabellini; +Cc: xen-devel

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
ugly patch 5/12 and the heavy 6/12, 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.

This is a first shot, any ideas on improvements are welcome.

Cheers,
Andre.

Andre Przywara (12):
  ARM: remove unneeded gic.h inclusions
  ARM: vGIC: fix nr_irq definition
  ARM: VGIC: remove gic_clear_pending_irqs()
  ARM: VGIC: move gic_remove_irq_from_queues()
  ARM: VGIC: move gic_remove_from_lr_pending()
  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              | 442 +++++++++++++++++++++++++++++++++++
 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           |   6 +-
 xen/arch/arm/vgic.c                  |  46 +++-
 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            |   9 +-
 xen/include/asm-arm/irq.h            |   2 +-
 xen/include/asm-arm/vgic.h           |  10 +
 21 files changed, 534 insertions(+), 472 deletions(-)
 create mode 100644 xen/arch/arm/gic-vgic.c

-- 
2.14.1


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2017-12-07 18:34 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-19 12:48 [PATCH 00/12] ARM: VGIC/GIC separation cleanups Andre Przywara
2017-10-19 12:48 ` [PATCH 01/12] ARM: remove unneeded gic.h inclusions Andre Przywara
2017-10-25 23:55   ` Stefano Stabellini
2017-10-19 12:48 ` [PATCH 02/12] ARM: vGIC: fix nr_irq definition Andre Przywara
2017-10-26  0:00   ` Stefano Stabellini
2017-10-19 12:48 ` [PATCH 03/12] ARM: VGIC: remove gic_clear_pending_irqs() Andre Przywara
2017-10-26  0:14   ` Stefano Stabellini
2017-11-10 16:42     ` Andre Przywara
2017-11-16  1:17       ` Stefano Stabellini
2017-11-16 14:32         ` Julien Grall
2017-12-06 18:01       ` Andre Przywara
2017-10-19 12:48 ` [PATCH 04/12] ARM: VGIC: move gic_remove_irq_from_queues() Andre Przywara
2017-10-26  0:19   ` Stefano Stabellini
2017-10-26  8:22     ` Julien Grall
2017-11-10 17:14     ` Andre Przywara
2017-11-10 19:04       ` Stefano Stabellini
2017-10-19 12:48 ` [PATCH 05/12] ARM: VGIC: move gic_remove_from_lr_pending() Andre Przywara
2017-10-26  0:20   ` Stefano Stabellini
2017-12-06 18:02     ` Andre Przywara
2017-10-19 12:48 ` [PATCH 06/12] ARM: VGIC: streamline gic_restore_pending_irqs() Andre Przywara
2017-10-19 12:48 ` [PATCH 07/12] ARM: VGIC: split gic.c to observe hardware/virtual GIC separation Andre Przywara
2017-10-26  0:37   ` Stefano Stabellini
2017-12-06 18:04     ` Andre Przywara
2017-10-19 12:48 ` [PATCH 08/12] ARM: VGIC: split up gic_dump_info() to cover virtual part separately Andre Przywara
2017-10-26  0:41   ` Stefano Stabellini
2017-10-19 12:48 ` [PATCH 09/12] ARM: VGIC: rework events_need_delivery() Andre Przywara
2017-10-26  0:47   ` Stefano Stabellini
2017-10-19 12:48 ` [PATCH 10/12] ARM: VGIC: factor out vgic_connect_hw_irq() Andre Przywara
2017-10-26  0:49   ` Stefano Stabellini
2017-10-19 12:48 ` [PATCH 11/12] ARM: VGIC: factor out vgic_get_hw_irq_desc() Andre Przywara
2017-10-26  0:50   ` Stefano Stabellini
2017-10-19 12:48 ` [PATCH 12/12] ARM: VGIC: rework gicv[23]_update_lr to not use pending_irq Andre Przywara
2017-10-26  0:51   ` Stefano Stabellini
2017-10-26  8:28   ` Julien Grall
2017-12-07 18:33     ` Andre Przywara
2017-10-19 15:37 ` [PATCH 00/12] ARM: VGIC/GIC separation cleanups Andre Przywara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).