Re: [Qemu-devel] [kvm-unit-tests PATCH v6 00/11] arm/arm64: add gic framework

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

 



On Wed, Nov 23, 2016 at 12:33:53PM +0100, Auger Eric wrote:
> Hi,
> On 23/11/2016 11:09, Alex Bennée wrote:
> > 
> > Andrew Jones <drjones@xxxxxxxxxx> writes:
> > 
> >> Andre, Alex, Eric, anybody,
> >>
> >> Any more comments on this? If not, I'll send a pull request
> >> to Radim and Paolo to finally get this merged.
> > 
> > Looks good to me. I successfully re-based my TCG tests on top and they
> > work fine ;-)
> no blocking point for me either. That's already a huge work and when
> adding new tests we may end up rationalizing things in separate v2/v3
> lib files and ops.
> 
> Tested on Cavium ThunderX
> 
> Reviewed-by: Eric Auger <eric.auger@xxxxxxxxxx>
> Tested-by: Eric Auger <eric.auger@xxxxxxxxxx>

Thanks Eric!

I like your suggestions for "gicv3: add an IPI test", so I'll
spin a v7.

drew

> 
> Thanks
> 
> Eric
> 
> 
> > 
> > Tested-by: Alex Bennée <alex.bennee@xxxxxxxxxx>
> > 
> >>
> >> Thanks,
> >> drew
> >>
> >>
> >> On Mon, Nov 14, 2016 at 10:08:28PM +0100, Andrew Jones wrote:
> >>> v6:
> >>>  - rebased to latest master
> >>>  - several other changes thanks to Andre and Alex, changes in
> >>>    individual patch change logs
> >>>  - some code cleanups
> >>>
> >>> v5:
> >>>  - fix arm32/gicv3 compile [drew]
> >>>  - use modern register names [Andre]
> >>>  - one Andre r-b
> >>>
> >>> v4:
> >>>  - Eric's r-b's
> >>>  - Andre's suggestion to only take defines we need
> >>>  - several other changes listed in individual patches
> >>>
> >>> v3:
> >>>  - Rebased on latest master
> >>>  - Added Alex's r-b's
> >>>
> >>> v2:
> >>>  Rebased on latest master + my "populate argv[0]" series (will
> >>>  send a REPOST for that shortly. Additionally a few patches got
> >>>  fixes/features;
> >>>  07/10 got same fix as kernel 7c9b973061 "irqchip/gic-v3: Configure
> >>>        all interrupts as non-secure Group-1" in order to continue
> >>>        working over TCG, as the gicv3 code for TCG removed a hack
> >>>        it had there to make Linux happy.
> >>>  08/10 added more output for when things fail (if they fail)
> >>>  09/10 switched gicv3 broadcast implementation to using IRM. This
> >>>        found a bug in a recent (but not tip) kernel, which I was
> >>>        about to fix, but then I saw MarcZ beat me to it.
> >>>  10/10 actually check that the input irq is the received irq
> >>>
> >>>
> >>> Import defines, and steal enough helper functions, from Linux to
> >>> enable programming of the gic (v2 and v3). Then use the framework
> >>> to add an initial test (an ipi test; self, target-list, broadcast).
> >>>
> >>> It's my hope that this framework will be a suitable base on which
> >>> more tests may be easily added, particularly because we have
> >>> vgic-new and tcg gicv3 emulation getting close to merge. (v3 UPDATE:
> >>> vgic-new and tcg gicv3 are merged now)
> >>>
> >>> To run it, along with other tests, just do
> >>>
> >>>  ./configure [ --arch=[arm|arm64] --cross-prefix=$PREFIX ]
> >>>  make
> >>>  export QEMU=$PATH_TO_QEMU
> >>>  ./run_tests.sh
> >>>
> >>> To run it separately do, e.g.
> >>>
> >>> $QEMU -machine virt,accel=tcg -cpu cortex-a57 \
> >>>  -device virtio-serial-device \
> >>>  -device virtconsole,chardev=ctd -chardev testdev,id=ctd \
> >>>  -display none -serial stdio \
> >>>  -kernel arm/gic.flat \
> >>>  -smp 123 -machine gic-version=3 -append ipi
> >>>       ^^ note, we can go nuts with nr-cpus on TCG :-)
> >>>
> >>> Or, a KVM example using a different "sender" cpu and irq (other than zero)
> >>>
> >>> $QEMU -machine virt,accel=kvm -cpu host \
> >>>  -device virtio-serial-device \
> >>>  -device virtconsole,chardev=ctd -chardev testdev,id=ctd \
> >>>  -display none -serial stdio \
> >>>  -kernel arm/gic.flat \
> >>>  -smp 48 -machine gic-version=3 -append 'ipi sender=42 irq=1'
> >>>
> >>>
> >>> Patches:
> >>> 01-05: fixes and functionality needed by the later gic patches
> >>> 06-07: enable gicv2 and gicv2 IPI test
> >>> 08-10: enable gicv3 and gicv3 IPI test
> >>>    11: extend the IPI tests to take variable sender and irq
> >>>
> >>> Available here: https://github.com/rhdrjones/kvm-unit-tests/commits/arm/gic-v6
> >>>
> >>>
> >>> Andrew Jones (10):
> >>>   lib: xstr: allow multiple args
> >>>   arm64: fix get_"sysreg32" and make MPIDR 64bit
> >>>   arm/arm64: smp: support more than 8 cpus
> >>>   arm/arm64: add some delay routines
> >>>   arm/arm64: irq enable/disable
> >>>   arm/arm64: add initial gicv2 support
> >>>   arm/arm64: gicv2: add an IPI test
> >>>   arm/arm64: add initial gicv3 support
> >>>   arm/arm64: gicv3: add an IPI test
> >>>   arm/arm64: gic: don't just use zero
> >>>
> >>> Peter Xu (1):
> >>>   libcflat: add IS_ALIGNED() macro, and page sizes
> >>>
> >>>  arm/Makefile.common        |   9 +-
> >>>  arm/gic.c                  | 340 +++++++++++++++++++++++++++++++++++++++++++++
> >>>  arm/run                    |  19 ++-
> >>>  arm/selftest.c             |   5 +-
> >>>  arm/unittests.cfg          |  14 ++
> >>>  lib/arm/asm/arch_gicv3.h   |  70 ++++++++++
> >>>  lib/arm/asm/gic-v2.h       |  36 +++++
> >>>  lib/arm/asm/gic-v3.h       | 112 +++++++++++++++
> >>>  lib/arm/asm/gic.h          | 106 ++++++++++++++
> >>>  lib/arm/asm/processor.h    |  42 +++++-
> >>>  lib/arm/asm/setup.h        |   4 +-
> >>>  lib/arm/gic.c              | 267 +++++++++++++++++++++++++++++++++++
> >>>  lib/arm/processor.c        |  15 ++
> >>>  lib/arm/setup.c            |  10 ++
> >>>  lib/arm64/asm/arch_gicv3.h |  66 +++++++++
> >>>  lib/arm64/asm/gic-v2.h     |   1 +
> >>>  lib/arm64/asm/gic-v3.h     |   1 +
> >>>  lib/arm64/asm/gic.h        |   1 +
> >>>  lib/arm64/asm/processor.h  |  53 +++++--
> >>>  lib/arm64/asm/sysreg.h     |  44 ++++++
> >>>  lib/arm64/processor.c      |  15 ++
> >>>  lib/libcflat.h             |  10 +-
> >>>  22 files changed, 1212 insertions(+), 28 deletions(-)
> >>>  create mode 100644 arm/gic.c
> >>>  create mode 100644 lib/arm/asm/arch_gicv3.h
> >>>  create mode 100644 lib/arm/asm/gic-v2.h
> >>>  create mode 100644 lib/arm/asm/gic-v3.h
> >>>  create mode 100644 lib/arm/asm/gic.h
> >>>  create mode 100644 lib/arm/gic.c
> >>>  create mode 100644 lib/arm64/asm/arch_gicv3.h
> >>>  create mode 100644 lib/arm64/asm/gic-v2.h
> >>>  create mode 100644 lib/arm64/asm/gic-v3.h
> >>>  create mode 100644 lib/arm64/asm/gic.h
> >>>  create mode 100644 lib/arm64/asm/sysreg.h
> >>>
> >>> --
> >>> 2.7.4
> >>>
> >>>
> > 
> > 
> > --
> > Alex Bennée
> > --
> > To unsubscribe from this list: send the line "unsubscribe kvm" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> 
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux