From: Andrew Jones <drjones@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: peter.maydell@linaro.org, kvm@vger.kernel.org,
marc.zyngier@arm.com, andre.przywara@arm.com,
qemu-devel@nongnu.org, eric.auger@redhat.com,
qemu-arm@nongnu.org, pbonzini@redhat.com,
kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org
Subject: Re: [Qemu-devel] [kvm-unit-tests PATCH v5 10/11] arm/arm64: gicv3: add an IPI test
Date: Fri, 11 Nov 2016 14:54:21 +0100 [thread overview]
Message-ID: <20161111135421.5oxdkfqynkgipgom@hawk.localdomain> (raw)
In-Reply-To: <871syi8hbg.fsf@linaro.org>
On Fri, Nov 11, 2016 at 10:02:59AM +0000, Alex Bennée wrote:
>
> Andrew Jones <drjones@redhat.com> writes:
>
> > On Thu, Nov 10, 2016 at 07:53:58PM +0000, Alex Bennée wrote:
> > [...]
> >> > +struct gic gicv2 = {
> >> > + .ipi = {
> >> > + .enable = gicv2_enable_defaults,
> >> > + .send_self = gicv2_ipi_send_self,
> >> > + .send_tlist = gicv2_ipi_send_tlist,
> >> > + .send_broadcast = gicv2_ipi_send_broadcast,
> >> > + },
> >> > + .read_iar = gicv2_read_iar,
> >> > + .irqnr = gicv2_irqnr,
> >> > + .write_eoi = gicv2_write_eoi,
> >> > +};
> >> > +
> >> > +struct gic gicv3 = {
> >> > + .ipi = {
> >> > + .enable = gicv3_enable_defaults,
> >> > + .send_self = gicv3_ipi_send_self,
> >> > + .send_tlist = gicv3_ipi_send_tlist,
> >> > + .send_broadcast = gicv3_ipi_send_broadcast,
> >> > + },
> >> > + .read_iar = gicv3_read_iar,
> >> > + .irqnr = gicv3_irqnr,
> >> > + .write_eoi = gicv3_write_eoir,
> >> > +};
> >> > +
> >>
> >> So I was re-basing my kvm-unit-tests against your GIC rework and found
> >> myself copy and pasting a bunch of this into my tests that fire IRQs.
> >> That makes me think the abstraction should be in the library code so
> >> other tests can fiddle with sending IRQs.
> >>
> >> What do you think?
> >>
> >
> > I guess you mean moving the above two structs and their corresponding
> > functions (all which aren't already common) to lib/arm/ ? Or do you
> > just mean the one non-trivial function gicv3_ipi_send_tlist? I think
> > agree with gicv3_ipi_send_tlist getting shared, but the others are
> > mostly one-liners, so I'm not sure. I guess I'd have to see how you're
> > using them first.
>
> So it looked like there were some functions in the common code for one
> GIC which had local test defined functions for the other. They should at
> least be consistent.
gicv3_read_iar and gicv3_write_eoir being common already is a product of
being sysreg wrappers, allowing for both arm32 and arm64 to use functions
of the same names, not because I wanted gicv3 to be inconsistent with
gicv2 (which uses MMIO and thus doesn't need wrappers)
>
> For my use case I could do with a common:
>
> gic_enable
OK, I can extend gic_init() to initialize a 'struct gic_common_ops' that
includes an enable -> *_enable_defaults(void), ipi_send(int cpu),
read_iar(void), iar_irqnr(u32 iar), and write_eoi(u32 irqstat). And also
provide the wrappers gic_enable, gic_ipi_send(cpu), ...
> gic_send_spi(cpu, irq)
I'll let you add this one to the new common ops struct :-)
> gic_irq_ack() which returns the iar.
This one will be called read_iar.
Would that work for you, Alex?
Andre,
Would this also satisfy your needs for more common code?
Thanks,
drew
>
> See:
>
> https://github.com/stsquad/kvm-unit-tests/blob/mttcg/current-tests-v6/arm/tcg-test.c#L113
>
> >
> > Thanks,
> > drew
>
>
> --
> Alex Bennée
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-11-11 13:54 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-10 17:21 [Qemu-devel] [kvm-unit-tests PATCH v5 00/11] arm/arm64: add gic framework Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 01/11] lib: xstr: allow multiple args Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 02/11] arm64: fix get_"sysreg32" and make MPIDR 64bit Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 03/11] arm/arm64: smp: support more than 8 cpus Andrew Jones
2016-11-11 15:27 ` Andre Przywara
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 04/11] arm/arm64: add some delay routines Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 05/11] arm/arm64: irq enable/disable Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 06/11] arm/arm64: add initial gicv2 support Andrew Jones
2016-11-11 14:52 ` Alex Bennée
2016-11-11 15:17 ` Andre Przywara
2016-11-11 15:30 ` Andrew Jones
2016-11-11 15:24 ` Andrew Jones
2016-11-11 15:34 ` Andre Przywara
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 07/11] arm/arm64: gicv2: add an IPI test Andrew Jones
2016-11-11 11:13 ` Andre Przywara
2016-11-11 13:13 ` Andrew Jones
2016-11-14 14:12 ` Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 08/11] libcflat: add IS_ALIGNED() macro, and page sizes Andrew Jones
2016-11-11 15:02 ` Alex Bennée
2016-11-11 15:35 ` Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 09/11] arm/arm64: add initial gicv3 support Andrew Jones
2016-11-11 15:35 ` Alex Bennée
2016-11-11 16:31 ` Andre Przywara
2016-11-14 15:17 ` Andrew Jones
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 10/11] arm/arm64: gicv3: add an IPI test Andrew Jones
2016-11-10 19:53 ` Alex Bennée
2016-11-10 20:37 ` Andrew Jones
2016-11-11 10:02 ` Alex Bennée
2016-11-11 13:54 ` Andrew Jones [this message]
2016-11-11 14:53 ` Alex Bennée
2016-11-11 15:20 ` Andre Przywara
2016-11-11 9:21 ` Andre Przywara
2016-11-11 10:00 ` Alex Bennée
2016-11-10 17:21 ` [Qemu-devel] [kvm-unit-tests PATCH v5 11/11] arm/arm64: gic: don't just use zero 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=20161111135421.5oxdkfqynkgipgom@hawk.localdomain \
--to=drjones@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=andre.przywara@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=eric.auger@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).