From: Ricardo Koller <ricarkol@google.com>
To: Andrew Jones <drjones@redhat.com>
Cc: kvm@vger.kernel.org, maz@kernel.org,
Paolo Bonzini <pbonzini@redhat.com>,
kvmarm@lists.cs.columbia.edu
Subject: Re: [PATCH 2/2] kvm: selftests: aarch64: fix some vgic related comments
Date: Wed, 26 Jan 2022 10:44:36 -0800 [thread overview]
Message-ID: <YfGWlIT37gTYFBxi@google.com> (raw)
In-Reply-To: <20220126152203.6bxqpqw2ld5r6eog@gator>
On Wed, Jan 26, 2022 at 04:22:03PM +0100, Andrew Jones wrote:
> On Thu, Jan 20, 2022 at 09:39:05AM -0800, Ricardo Koller wrote:
> > Fix the formatting of some comments and the wording of one of them (in
> > gicv3_access_reg).
> >
> > Signed-off-by: Ricardo Koller <ricarkol@google.com>
> > Reported-by: Reiji Watanabe <reijiw@google.com>
> > Cc: Andrew Jones <drjones@redhat.com>
> > ---
> > tools/testing/selftests/kvm/aarch64/vgic_irq.c | 12 ++++++++----
> > tools/testing/selftests/kvm/lib/aarch64/gic_v3.c | 11 +++++++----
> > tools/testing/selftests/kvm/lib/aarch64/vgic.c | 3 ++-
> > 3 files changed, 17 insertions(+), 9 deletions(-)
> >
> > diff --git a/tools/testing/selftests/kvm/aarch64/vgic_irq.c b/tools/testing/selftests/kvm/aarch64/vgic_irq.c
> > index e6c7d7f8fbd1..258bb5150a07 100644
> > --- a/tools/testing/selftests/kvm/aarch64/vgic_irq.c
> > +++ b/tools/testing/selftests/kvm/aarch64/vgic_irq.c
> > @@ -306,7 +306,8 @@ static void guest_restore_active(struct test_args *args,
> > uint32_t prio, intid, ap1r;
> > int i;
> >
> > - /* Set the priorities of the first (KVM_NUM_PRIOS - 1) IRQs
> > + /*
> > + * Set the priorities of the first (KVM_NUM_PRIOS - 1) IRQs
> > * in descending order, so intid+1 can preempt intid.
> > */
> > for (i = 0, prio = (num - 1) * 8; i < num; i++, prio -= 8) {
> > @@ -315,7 +316,8 @@ static void guest_restore_active(struct test_args *args,
> > gic_set_priority(intid, prio);
> > }
> >
> > - /* In a real migration, KVM would restore all GIC state before running
> > + /*
> > + * In a real migration, KVM would restore all GIC state before running
> > * guest code.
> > */
> > for (i = 0; i < num; i++) {
> > @@ -503,7 +505,8 @@ static void guest_code(struct test_args args)
> > test_injection_failure(&args, f);
> > }
> >
> > - /* Restore the active state of IRQs. This would happen when live
> > + /*
> > + * Restore the active state of IRQs. This would happen when live
> > * migrating IRQs in the middle of being handled.
> > */
> > for_each_supported_activate_fn(&args, set_active_fns, f)
> > @@ -837,7 +840,8 @@ int main(int argc, char **argv)
> > }
> > }
> >
> > - /* If the user just specified nr_irqs and/or gic_version, then run all
> > + /*
> > + * If the user just specified nr_irqs and/or gic_version, then run all
> > * combinations.
> > */
> > if (default_args) {
> > diff --git a/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c b/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
> > index e4945fe66620..93fc35b88410 100644
> > --- a/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
> > +++ b/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
> > @@ -19,7 +19,7 @@ struct gicv3_data {
> > unsigned int nr_spis;
> > };
> >
> > -#define sgi_base_from_redist(redist_base) (redist_base + SZ_64K)
> > +#define sgi_base_from_redist(redist_base) (redist_base + SZ_64K)
> > #define DIST_BIT (1U << 31)
> >
> > enum gicv3_intid_range {
> > @@ -105,7 +105,8 @@ static void gicv3_set_eoi_split(bool split)
> > {
> > uint32_t val;
> >
> > - /* All other fields are read-only, so no need to read CTLR first. In
> > + /*
> > + * All other fields are read-only, so no need to read CTLR first. In
> > * fact, the kernel does the same.
> > */
> > val = split ? (1U << 1) : 0;
> > @@ -160,8 +161,10 @@ static void gicv3_access_reg(uint32_t intid, uint64_t offset,
> >
> > GUEST_ASSERT(bits_per_field <= reg_bits);
> > GUEST_ASSERT(!write || *val < (1U << bits_per_field));
> > - /* Some registers like IROUTER are 64 bit long. Those are currently not
> > - * supported by readl nor writel, so just asserting here until then.
> > + /*
> > + * This function does not support 64 bit accesses as those are
> > + * currently not supported by readl nor writel, so just asserting here
> > + * until then.
>
> Well, readl and writel will never support 64 bit accesses. We'd need to
> implement readq and writeq for that. If we're going to rewrite this
> comment please state it that way instead.
Good point, will make it clearer in v2. Thanks!
>
> > */
> > GUEST_ASSERT(reg_bits == 32);
> >
> > diff --git a/tools/testing/selftests/kvm/lib/aarch64/vgic.c b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> > index b3a0fca0d780..79864b941617 100644
> > --- a/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> > +++ b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> > @@ -150,7 +150,8 @@ static void vgic_poke_irq(int gic_fd, uint32_t intid,
> > attr += SZ_64K;
> > }
> >
> > - /* All calls will succeed, even with invalid intid's, as long as the
> > + /*
> > + * All calls will succeed, even with invalid intid's, as long as the
> > * addr part of the attr is within 32 bits (checked above). An invalid
> > * intid will just make the read/writes point to above the intended
> > * register space (i.e., ICPENDR after ISPENDR).
> > --
> > 2.35.0.rc0.227.g00780c9af4-goog
> >
>
> Thanks,
> drew
>
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Ricardo Koller <ricarkol@google.com>
To: Andrew Jones <drjones@redhat.com>
Cc: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
maz@kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
oupton@google.com, reijiw@google.com
Subject: Re: [PATCH 2/2] kvm: selftests: aarch64: fix some vgic related comments
Date: Wed, 26 Jan 2022 10:44:36 -0800 [thread overview]
Message-ID: <YfGWlIT37gTYFBxi@google.com> (raw)
In-Reply-To: <20220126152203.6bxqpqw2ld5r6eog@gator>
On Wed, Jan 26, 2022 at 04:22:03PM +0100, Andrew Jones wrote:
> On Thu, Jan 20, 2022 at 09:39:05AM -0800, Ricardo Koller wrote:
> > Fix the formatting of some comments and the wording of one of them (in
> > gicv3_access_reg).
> >
> > Signed-off-by: Ricardo Koller <ricarkol@google.com>
> > Reported-by: Reiji Watanabe <reijiw@google.com>
> > Cc: Andrew Jones <drjones@redhat.com>
> > ---
> > tools/testing/selftests/kvm/aarch64/vgic_irq.c | 12 ++++++++----
> > tools/testing/selftests/kvm/lib/aarch64/gic_v3.c | 11 +++++++----
> > tools/testing/selftests/kvm/lib/aarch64/vgic.c | 3 ++-
> > 3 files changed, 17 insertions(+), 9 deletions(-)
> >
> > diff --git a/tools/testing/selftests/kvm/aarch64/vgic_irq.c b/tools/testing/selftests/kvm/aarch64/vgic_irq.c
> > index e6c7d7f8fbd1..258bb5150a07 100644
> > --- a/tools/testing/selftests/kvm/aarch64/vgic_irq.c
> > +++ b/tools/testing/selftests/kvm/aarch64/vgic_irq.c
> > @@ -306,7 +306,8 @@ static void guest_restore_active(struct test_args *args,
> > uint32_t prio, intid, ap1r;
> > int i;
> >
> > - /* Set the priorities of the first (KVM_NUM_PRIOS - 1) IRQs
> > + /*
> > + * Set the priorities of the first (KVM_NUM_PRIOS - 1) IRQs
> > * in descending order, so intid+1 can preempt intid.
> > */
> > for (i = 0, prio = (num - 1) * 8; i < num; i++, prio -= 8) {
> > @@ -315,7 +316,8 @@ static void guest_restore_active(struct test_args *args,
> > gic_set_priority(intid, prio);
> > }
> >
> > - /* In a real migration, KVM would restore all GIC state before running
> > + /*
> > + * In a real migration, KVM would restore all GIC state before running
> > * guest code.
> > */
> > for (i = 0; i < num; i++) {
> > @@ -503,7 +505,8 @@ static void guest_code(struct test_args args)
> > test_injection_failure(&args, f);
> > }
> >
> > - /* Restore the active state of IRQs. This would happen when live
> > + /*
> > + * Restore the active state of IRQs. This would happen when live
> > * migrating IRQs in the middle of being handled.
> > */
> > for_each_supported_activate_fn(&args, set_active_fns, f)
> > @@ -837,7 +840,8 @@ int main(int argc, char **argv)
> > }
> > }
> >
> > - /* If the user just specified nr_irqs and/or gic_version, then run all
> > + /*
> > + * If the user just specified nr_irqs and/or gic_version, then run all
> > * combinations.
> > */
> > if (default_args) {
> > diff --git a/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c b/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
> > index e4945fe66620..93fc35b88410 100644
> > --- a/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
> > +++ b/tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
> > @@ -19,7 +19,7 @@ struct gicv3_data {
> > unsigned int nr_spis;
> > };
> >
> > -#define sgi_base_from_redist(redist_base) (redist_base + SZ_64K)
> > +#define sgi_base_from_redist(redist_base) (redist_base + SZ_64K)
> > #define DIST_BIT (1U << 31)
> >
> > enum gicv3_intid_range {
> > @@ -105,7 +105,8 @@ static void gicv3_set_eoi_split(bool split)
> > {
> > uint32_t val;
> >
> > - /* All other fields are read-only, so no need to read CTLR first. In
> > + /*
> > + * All other fields are read-only, so no need to read CTLR first. In
> > * fact, the kernel does the same.
> > */
> > val = split ? (1U << 1) : 0;
> > @@ -160,8 +161,10 @@ static void gicv3_access_reg(uint32_t intid, uint64_t offset,
> >
> > GUEST_ASSERT(bits_per_field <= reg_bits);
> > GUEST_ASSERT(!write || *val < (1U << bits_per_field));
> > - /* Some registers like IROUTER are 64 bit long. Those are currently not
> > - * supported by readl nor writel, so just asserting here until then.
> > + /*
> > + * This function does not support 64 bit accesses as those are
> > + * currently not supported by readl nor writel, so just asserting here
> > + * until then.
>
> Well, readl and writel will never support 64 bit accesses. We'd need to
> implement readq and writeq for that. If we're going to rewrite this
> comment please state it that way instead.
Good point, will make it clearer in v2. Thanks!
>
> > */
> > GUEST_ASSERT(reg_bits == 32);
> >
> > diff --git a/tools/testing/selftests/kvm/lib/aarch64/vgic.c b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> > index b3a0fca0d780..79864b941617 100644
> > --- a/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> > +++ b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> > @@ -150,7 +150,8 @@ static void vgic_poke_irq(int gic_fd, uint32_t intid,
> > attr += SZ_64K;
> > }
> >
> > - /* All calls will succeed, even with invalid intid's, as long as the
> > + /*
> > + * All calls will succeed, even with invalid intid's, as long as the
> > * addr part of the attr is within 32 bits (checked above). An invalid
> > * intid will just make the read/writes point to above the intended
> > * register space (i.e., ICPENDR after ISPENDR).
> > --
> > 2.35.0.rc0.227.g00780c9af4-goog
> >
>
> Thanks,
> drew
>
next prev parent reply other threads:[~2022-01-26 18:44 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-20 17:39 [PATCH 0/2] kvm: selftests: aarch64: some fixes for vgic_irq Ricardo Koller
2022-01-20 17:39 ` Ricardo Koller
2022-01-20 17:39 ` [PATCH 1/2] kvm: selftests: aarch64: fix assert in gicv3_access_reg Ricardo Koller
2022-01-20 17:39 ` Ricardo Koller
2022-01-26 15:17 ` Andrew Jones
2022-01-26 15:17 ` Andrew Jones
2022-01-20 17:39 ` [PATCH 2/2] kvm: selftests: aarch64: fix some vgic related comments Ricardo Koller
2022-01-20 17:39 ` Ricardo Koller
2022-01-26 15:22 ` Andrew Jones
2022-01-26 15:22 ` Andrew Jones
2022-01-26 18:44 ` Ricardo Koller [this message]
2022-01-26 18:44 ` Ricardo Koller
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=YfGWlIT37gTYFBxi@google.com \
--to=ricarkol@google.com \
--cc=drjones@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=maz@kernel.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.