All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ricardo Koller <ricarkol@google.com>
To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, drjones@redhat.com
Cc: maz@kernel.org, alexandru.elisei@arm.com, eric.auger@redhat.com,
	oliver.upton@linux.dev, reijiw@google.com,
	Ricardo Koller <ricarkol@google.com>
Subject: [kvm-unit-tests PATCH 0/3] arm: pmu: Fixes for bare metal
Date: Mon, 18 Jul 2022 08:49:07 -0700	[thread overview]
Message-ID: <20220718154910.3923412-1-ricarkol@google.com> (raw)

There are some tests that fail when running on bare metal (including a
passthrough prototype).  There are three issues with the tests.  The
first one is that there are some missing isb()'s between enabling event
counting and the actual counting. This wasn't an issue on KVM as
trapping on registers served as context synchronization events. The
second issue is that some tests assume that registers reset to 0.  And
finally, the third issue is that overflowing the low counter of a
chained event sets the overflow flag in PMVOS and some tests fail by
checking for it not being set.

I believe the third fix also requires a KVM change, but would like to
double check with others first.  The only reference I could find in the
ARM ARM is the AArch64.IncrementEventCounter() pseudocode (DDI 0487H.a,
J1.1.1 "aarch64/debug") that unconditionally sets the PMOVS bit on
overflow.

Ricardo Koller (3):
  arm: pmu: Add missing isb()'s after sys register writing
  arm: pmu: Reset the pmu registers before starting some tests
  arm: pmu: Remove checks for !overflow in chained counters tests

 arm/pmu.c | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

-- 
2.37.0.170.g444d1eabd0-goog


WARNING: multiple messages have this Message-ID (diff)
From: Ricardo Koller <ricarkol@google.com>
To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, drjones@redhat.com
Cc: maz@kernel.org, oliver.upton@linux.dev
Subject: [kvm-unit-tests PATCH 0/3] arm: pmu: Fixes for bare metal
Date: Mon, 18 Jul 2022 08:49:07 -0700	[thread overview]
Message-ID: <20220718154910.3923412-1-ricarkol@google.com> (raw)

There are some tests that fail when running on bare metal (including a
passthrough prototype).  There are three issues with the tests.  The
first one is that there are some missing isb()'s between enabling event
counting and the actual counting. This wasn't an issue on KVM as
trapping on registers served as context synchronization events. The
second issue is that some tests assume that registers reset to 0.  And
finally, the third issue is that overflowing the low counter of a
chained event sets the overflow flag in PMVOS and some tests fail by
checking for it not being set.

I believe the third fix also requires a KVM change, but would like to
double check with others first.  The only reference I could find in the
ARM ARM is the AArch64.IncrementEventCounter() pseudocode (DDI 0487H.a,
J1.1.1 "aarch64/debug") that unconditionally sets the PMOVS bit on
overflow.

Ricardo Koller (3):
  arm: pmu: Add missing isb()'s after sys register writing
  arm: pmu: Reset the pmu registers before starting some tests
  arm: pmu: Remove checks for !overflow in chained counters tests

 arm/pmu.c | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

-- 
2.37.0.170.g444d1eabd0-goog

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

             reply	other threads:[~2022-07-18 15:49 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-18 15:49 Ricardo Koller [this message]
2022-07-18 15:49 ` [kvm-unit-tests PATCH 0/3] arm: pmu: Fixes for bare metal Ricardo Koller
2022-07-18 15:49 ` [kvm-unit-tests PATCH 1/3] arm: pmu: Add missing isb()'s after sys register writing Ricardo Koller
2022-07-18 15:49   ` Ricardo Koller
2022-07-18 16:38   ` Alexandru Elisei
2022-07-18 16:38     ` Alexandru Elisei
2022-07-18 17:48     ` Ricardo Koller
2022-07-18 17:48       ` Ricardo Koller
2022-07-19 11:26       ` Alexandru Elisei
2022-07-19 11:26         ` Alexandru Elisei
2022-07-19 11:14   ` Alexandru Elisei
2022-07-19 11:14     ` Alexandru Elisei
2022-07-20 21:20     ` Ricardo Koller
2022-07-20 21:20       ` Ricardo Koller
2022-07-18 15:49 ` [kvm-unit-tests PATCH 2/3] arm: pmu: Reset the pmu registers before starting some tests Ricardo Koller
2022-07-18 15:49   ` Ricardo Koller
2022-07-18 15:49 ` [kvm-unit-tests PATCH 3/3] arm: pmu: Remove checks for !overflow in chained counters tests Ricardo Koller
2022-07-18 15:49   ` Ricardo Koller
2022-07-19 11:34   ` Marc Zyngier
2022-07-19 11:34     ` Marc Zyngier
2022-07-20  8:40     ` Ricardo Koller
2022-07-20  8:40       ` Ricardo Koller
2022-07-20  9:45       ` Marc Zyngier
2022-07-20  9:45         ` Marc Zyngier
2022-07-20 21:17         ` Ricardo Koller
2022-07-20 21:17           ` Ricardo Koller
2022-07-20 21:26           ` Ricardo Koller
2022-07-20 21:26             ` Ricardo Koller
2022-07-21 13:43             ` Marc Zyngier
2022-07-21 13:43               ` Marc Zyngier
2022-07-22 21:53               ` Ricardo Koller
2022-07-22 21:53                 ` Ricardo Koller
2022-07-23  7:59                 ` Andrew Jones
2022-07-23  7:59                   ` Andrew Jones
2022-07-24  9:40                   ` Marc Zyngier
2022-07-24  9:40                     ` Marc Zyngier
2022-07-27  2:29                     ` Ricardo Koller
2022-07-27  2:29                       ` Ricardo Koller
2022-07-30 12:47   ` Marc Zyngier
2022-07-30 12:47     ` Marc Zyngier
2022-07-30 12:52     ` Marc Zyngier
2022-07-30 12:52       ` Marc Zyngier
2022-08-01 19:15       ` Ricardo Koller
2022-08-01 19:15         ` Ricardo Koller
2022-07-18 16:42 ` [kvm-unit-tests PATCH 0/3] arm: pmu: Fixes for bare metal Alexandru Elisei
2022-07-18 16:42   ` Alexandru Elisei
2022-07-18 17:18   ` Ricardo Koller
2022-07-18 17:18     ` 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=20220718154910.3923412-1-ricarkol@google.com \
    --to=ricarkol@google.com \
    --cc=alexandru.elisei@arm.com \
    --cc=drjones@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=maz@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=reijiw@google.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.