From: Andre Przywara <andre.przywara@arm.com>
To: Andrew Jones <drjones@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org
Subject: Re: [kvm-unit-tests PATCH 1/6] arm: gic: check_acked: add test description
Date: Fri, 27 Sep 2019 13:40:16 +0100 [thread overview]
Message-ID: <20190927134016.3d137629@donnerap.cambridge.arm.com> (raw)
In-Reply-To: <20190927121845.wjes372uf2hhw2wz@kamzik.brq.redhat.com>
On Fri, 27 Sep 2019 14:18:45 +0200
Andrew Jones <drjones@redhat.com> wrote:
Hi,
> On Fri, Sep 27, 2019 at 11:42:22AM +0100, Andre Przywara wrote:
> > At the moment the check_acked() IRQ helper function just prints a
> > generic "Completed" or "Timed out" message, without given a more
> > detailed test description.
> >
> > To be able to tell the different IRQ tests apart, and also to allow
> > re-using it more easily, add a "description" parameter string,
> > which is prefixing the output line. This gives more information on what
> > exactly was tested.
> >
> > This also splits the variable output part of the line (duration of IRQ
> > delivery) into a separate INFO: line, to not confuse testing frameworks.
> >
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> > ---
> > arm/gic.c | 17 ++++++++++-------
> > 1 file changed, 10 insertions(+), 7 deletions(-)
> >
> > diff --git a/arm/gic.c b/arm/gic.c
> > index ed5642e..6fd5e5e 100644
> > --- a/arm/gic.c
> > +++ b/arm/gic.c
> > @@ -60,7 +60,7 @@ static void stats_reset(void)
> > smp_wmb();
> > }
> >
> > -static void check_acked(cpumask_t *mask)
> > +static void check_acked(const char *testname, cpumask_t *mask)
> > {
> > int missing = 0, extra = 0, unexpected = 0;
> > int nr_pass, cpu, i;
> > @@ -88,7 +88,9 @@ static void check_acked(cpumask_t *mask)
> > }
> > }
> > if (nr_pass == nr_cpus) {
> > - report("Completed in %d ms", !bad, ++i * 100);
> > + report("%s", !bad, testname);
> > + if (i)
> > + report_info("took more than %d ms", i * 100);
>
> Any reason for dropping the '++'? Without it we don't account for the last
> 100 ms.
Actually we expect the interrupt to either fire immediately, or to not fire at all (timeout). So the previous message of "Completed in 100 ms" was somewhat misleading, because this was just due to the mdelay(100) above, and the IRQ was most probably delivered before this delay loop even started.
I had "took less than ++i *100 ms" before (and can revert to that if you like), but then figured that filtering for the most common case (immediate delivery) is more useful.
>
> > return;
> > }
> > }
> > @@ -105,8 +107,9 @@ static void check_acked(cpumask_t *mask)
> > }
> > }
> >
> > - report("Timed-out (5s). ACKS: missing=%d extra=%d unexpected=%d",
> > - false, missing, extra, unexpected);
> > + report("%s", false, testname);
> > + report_info("Timed-out (5s). ACKS: missing=%d extra=%d unexpected=%d",
> > + missing, extra, unexpected);
> > }
> >
> > static void check_spurious(void)
> > @@ -185,7 +188,7 @@ static void ipi_test_self(void)
> > cpumask_clear(&mask);
> > cpumask_set_cpu(smp_processor_id(), &mask);
> > gic->ipi.send_self();
> > - check_acked(&mask);
> > + check_acked("IPI to self", &mask);
>
> Could even do "IPI: self"
> "IPI: directed"
> "IPI: broadcast"
>
> to improve parsibility
Indeed.
Thanks for having a look!
Cheers,
Andre.
>
> > report_prefix_pop();
> > }
> >
> > @@ -200,7 +203,7 @@ static void ipi_test_smp(void)
> > for (i = smp_processor_id() & 1; i < nr_cpus; i += 2)
> > cpumask_clear_cpu(i, &mask);
> > gic_ipi_send_mask(IPI_IRQ, &mask);
> > - check_acked(&mask);
> > + check_acked("directed IPI", &mask);
> > report_prefix_pop();
> >
> > report_prefix_push("broadcast");
> > @@ -208,7 +211,7 @@ static void ipi_test_smp(void)
> > cpumask_copy(&mask, &cpu_present_mask);
> > cpumask_clear_cpu(smp_processor_id(), &mask);
> > gic->ipi.send_broadcast();
> > - check_acked(&mask);
> > + check_acked("IPI broadcast", &mask);
> > report_prefix_pop();
> > }
> >
> > --
> > 2.17.1
> >
>
> Thanks,
> drew
next prev parent reply other threads:[~2019-09-27 12:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-27 10:42 [kvm-unit-tests PATCH 0/6] arm: Use stable test output lines Andre Przywara
2019-09-27 10:42 ` [kvm-unit-tests PATCH 1/6] arm: gic: check_acked: add test description Andre Przywara
2019-09-27 12:18 ` Andrew Jones
2019-09-27 12:40 ` Andre Przywara [this message]
2019-09-27 12:55 ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 2/6] arm: gic: Split variable output data from test name Andre Przywara
2019-09-27 12:25 ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 3/6] arm: timer: " Andre Przywara
2019-09-27 12:25 ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 4/6] arm: selftest: " Andre Przywara
2019-09-27 12:26 ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 5/6] arm: selftest: Make MPIDR output stable Andre Przywara
2019-09-27 12:30 ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 6/6] arm: Add missing test name prefix calls Andre Przywara
2019-09-27 12:31 ` 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=20190927134016.3d137629@donnerap.cambridge.arm.com \
--to=andre.przywara@arm.com \
--cc=drjones@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=pbonzini@redhat.com \
/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