From: "Alex Bennée" <alex.bennee@linaro.org>
To: Andrew Jones <drjones@redhat.com>
Cc: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
pbonzini@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org,
andre.przywara@arm.com, peter.maydell@linaro.org,
christoffer.dall@linaro.org, marc.zyngier@arm.com
Subject: Re: [Qemu-devel] [kvm-unit-tests PATCH v2 00/10] arm/arm64: add gic framework
Date: Tue, 07 Jun 2016 18:13:53 +0100 [thread overview]
Message-ID: <87oa7chqge.fsf@linaro.org> (raw)
In-Reply-To: <87d1nweqsc.fsf@linaro.org>
Alex Bennée <alex.bennee@linaro.org> writes:
> Andrew Jones <drjones@redhat.com> writes:
>
>> v2:
>> Rebased on 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
>
> Cool stuff. I'll get to reviewing this next week as my kvm-unit-tests
> queue is getting overly long I need to clean-up and re-submit.
OK I think I'm done for now. Sorry I've skipped the main bits of the GIC
test but I'm not up to speed on the GIC layout so I'll defer to people
who have a better understanding of it ;-)
>
>>
>>
>> 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.
>>
>> 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: code theft from Linux (defines, helper functions)
>> 08-10: arm/gic.flat (the base of the gic unit test), currently just IPI
>>
>> Available here: https://github.com/rhdrjones/kvm-unit-tests/commits/arm/gic
>>
>>
>> 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: add initial gicv3 support
>> arm/arm64: gicv2: add an IPI test
>> arm/arm64: gicv3: add an IPI test
>> arm/arm64: gic: don't just use zero
>>
>> arm/Makefile.common | 7 +-
>> arm/gic.c | 381 +++++++++++++++++++++++++++++++++++++++++++++
>> arm/run | 19 ++-
>> arm/selftest.c | 5 +-
>> arm/unittests.cfg | 13 ++
>> lib/arm/asm/arch_gicv3.h | 184 ++++++++++++++++++++++
>> lib/arm/asm/gic-v2.h | 74 +++++++++
>> lib/arm/asm/gic-v3.h | 321 ++++++++++++++++++++++++++++++++++++++
>> lib/arm/asm/gic.h | 21 +++
>> lib/arm/asm/processor.h | 38 ++++-
>> lib/arm/asm/setup.h | 4 +-
>> lib/arm/gic.c | 142 +++++++++++++++++
>> lib/arm/processor.c | 15 ++
>> lib/arm/setup.c | 12 +-
>> lib/arm64/asm/arch_gicv3.h | 169 ++++++++++++++++++++
>> 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 | 4 +-
>> 22 files changed, 1498 insertions(+), 26 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
--
Alex Bennée
next prev parent reply other threads:[~2016-06-07 17:13 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-04 18:15 [Qemu-devel] [kvm-unit-tests PATCH v2 00/10] arm/arm64: add gic framework Andrew Jones
2016-06-04 18:15 ` [Qemu-devel] [kvm-unit-tests PATCH v2 01/10] lib: xstr: allow multiple args Andrew Jones
2016-06-06 10:49 ` Alex Bennée
2016-06-06 12:12 ` Andrew Jones
2016-06-06 14:52 ` Alex Bennée
2016-06-04 18:15 ` [Qemu-devel] [kvm-unit-tests PATCH v2 02/10] arm64: fix get_"sysreg32" and make MPIDR 64bit Andrew Jones
2016-06-06 12:47 ` Alex Bennée
2016-06-04 18:15 ` [Qemu-devel] [kvm-unit-tests PATCH v2 03/10] arm/arm64: smp: support more than 8 cpus Andrew Jones
2016-06-06 16:22 ` Alex Bennée
2016-06-06 16:31 ` Andrew Jones
2016-06-06 17:32 ` Alex Bennée
2016-06-06 16:32 ` Mark Rutland
2016-06-06 17:28 ` Alex Bennée
2016-06-04 18:15 ` [Qemu-devel] [kvm-unit-tests PATCH v2 04/10] arm/arm64: add some delay routines Andrew Jones
2016-06-06 17:39 ` Alex Bennée
2016-06-06 17:48 ` Andrew Jones
2016-06-04 18:16 ` [Qemu-devel] [kvm-unit-tests PATCH v2 05/10] arm/arm64: irq enable/disable Andrew Jones
2016-06-07 16:22 ` Alex Bennée
2016-06-04 18:16 ` [Qemu-devel] [kvm-unit-tests PATCH v2 06/10] arm/arm64: add initial gicv2 support Andrew Jones
2016-06-04 18:16 ` [Qemu-devel] [kvm-unit-tests PATCH v2 07/10] arm/arm64: add initial gicv3 support Andrew Jones
2016-06-04 18:16 ` [Qemu-devel] [kvm-unit-tests PATCH v2 08/10] arm/arm64: gicv2: add an IPI test Andrew Jones
2016-06-04 18:16 ` [Qemu-devel] [kvm-unit-tests PATCH v2 09/10] arm/arm64: gicv3: " Andrew Jones
2016-06-04 18:16 ` [Qemu-devel] [kvm-unit-tests PATCH v2 10/10] arm/arm64: gic: don't just use zero Andrew Jones
2016-06-04 18:45 ` [Qemu-devel] [kvm-unit-tests PATCH v2 00/10] arm/arm64: add gic framework Alex Bennée
2016-06-07 17:13 ` Alex Bennée [this message]
2016-06-08 10:00 ` Andrew Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87oa7chqge.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=andre.przywara@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=drjones@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=marc.zyngier@arm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).