From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54506) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c58fp-00014T-Gu for qemu-devel@nongnu.org; Fri, 11 Nov 2016 05:03:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c58fm-0002fy-Do for qemu-devel@nongnu.org; Fri, 11 Nov 2016 05:03:05 -0500 Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:32795) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1c58fm-0002fQ-6J for qemu-devel@nongnu.org; Fri, 11 Nov 2016 05:03:02 -0500 Received: by mail-wm0-x22a.google.com with SMTP id c184so58978049wmd.0 for ; Fri, 11 Nov 2016 02:03:02 -0800 (PST) References: <1478798481-25030-1-git-send-email-drjones@redhat.com> <1478798481-25030-11-git-send-email-drjones@redhat.com> <874m3f8621.fsf@linaro.org> <20161110203713.4idzgs5u2xm7ms4o@hawk.localdomain> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <20161110203713.4idzgs5u2xm7ms4o@hawk.localdomain> Date: Fri, 11 Nov 2016 10:02:59 +0000 Message-ID: <871syi8hbg.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [kvm-unit-tests PATCH v5 10/11] arm/arm64: gicv3: add an IPI test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andrew Jones 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 Andrew Jones 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. For my use case I could do with a common: gic_enable gic_send_spi(cpu, irq) gic_irq_ack() which returns the iar. See: https://github.com/stsquad/kvm-unit-tests/blob/mttcg/current-tests-v6/arm/tcg-test.c#L113 > > Thanks, > drew -- Alex Bennée