All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ionela Voinescu <ionela.voinescu@arm.com>
To: Valentin Schneider <valentin.schneider@arm.com>
Cc: catalin.marinas@arm.com, will@kernel.org, mark.rutland@arm.com,
	maz@kernel.org, suzuki.poulose@arm.com, sudeep.holla@arm.com,
	dietmar.eggemann@arm.com, peterz@infradead.org, mingo@redhat.com,
	ggherdovich@suse.cz, vincent.guittot@linaro.org,
	linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/6] arm64: add support for the AMU extension v1
Date: Tue, 28 Jan 2020 11:00:07 +0000	[thread overview]
Message-ID: <20200128110007.GA17411@arm.com> (raw)
In-Reply-To: <00d852b0-d456-efc3-5bfa-31524168344b@arm.com>

Hi Valentin,

On Friday 24 Jan 2020 at 12:00:25 (+0000), Valentin Schneider wrote:
> On 23/01/2020 18:32, Ionela Voinescu wrote:
> [...]
> > and later we can use information in
> > AMCGCR_EL0 to get the number of architected counters (n) and
> > AMEVTYPER0<n>_EL0 to find out the type. The same logic would apply to
> > the auxiliary counters.
> > 
> 
> Good, I think that's all we'll really need. I've not gone through the whole
> series (yet!) so I might've missed AMCGCR being used.
>

No, it's not used later in the patches either, specifically because
this is version 1 and we should be able to rely on these first 4
architected counters for all future versions of the AMU implementation.

> >>> @@ -1150,6 +1152,59 @@ static bool has_hw_dbm(const struct arm64_cpu_capabilities *cap,
> >>>  
> >>>  #endif
> >>>  
> >>> +#ifdef CONFIG_ARM64_AMU_EXTN
> >>> +
> >>> +/*
> >>> + * This per cpu variable only signals that the CPU implementation supports
> >>> + * the Activity Monitors Unit (AMU) but does not provide information
> >>> + * regarding all the events that it supports.
> >>> + * When this amu_feat per CPU variable is true, the user of this feature
> >>> + * can only rely on the presence of the 4 fixed counters. But this does
> >>> + * not guarantee that the counters are enabled or access to these counters
> >>> + * is provided by code executed at higher exception levels.
> >>> + *
> >>> + * Also, to ensure the safe use of this per_cpu variable, the following
> >>> + * accessor is defined to allow a read of amu_feat for the current cpu only
> >>> + * from the current cpu.
> >>> + *  - cpu_has_amu_feat()
> >>> + */
> >>> +static DEFINE_PER_CPU_READ_MOSTLY(u8, amu_feat);
> >>> +
> >>
> >> Why not bool?
> >>
> > 
> > I've changed it from bool after a sparse warning about expression using
> > sizeof(bool) and found this is due to sizeof(bool) being compiler
> > dependent. It does not change anything but I thought it might be a good
> > idea to define it as 8-bit unsigned and rely on fixed size.
> > 
> 
> I believe conveying the intent (a truth value) is more important than the
> underlying storage size in this case. It mostly matters when dealing with
> aggregates, but here it's just a free-standing variable.
> 
> We already have a few per-CPU boolean variables in arm64/kernel/fpsimd.c
> and the commits aren't even a year old, so I'd go for ignoring sparse this
> time around.
>

Will do!

Thanks,
Ionela.

WARNING: multiple messages have this Message-ID (diff)
From: Ionela Voinescu <ionela.voinescu@arm.com>
To: Valentin Schneider <valentin.schneider@arm.com>
Cc: mark.rutland@arm.com, maz@kernel.org, suzuki.poulose@arm.com,
	peterz@infradead.org, catalin.marinas@arm.com,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	mingo@redhat.com, ggherdovich@suse.cz, sudeep.holla@arm.com,
	will@kernel.org, dietmar.eggemann@arm.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 1/6] arm64: add support for the AMU extension v1
Date: Tue, 28 Jan 2020 11:00:07 +0000	[thread overview]
Message-ID: <20200128110007.GA17411@arm.com> (raw)
In-Reply-To: <00d852b0-d456-efc3-5bfa-31524168344b@arm.com>

Hi Valentin,

On Friday 24 Jan 2020 at 12:00:25 (+0000), Valentin Schneider wrote:
> On 23/01/2020 18:32, Ionela Voinescu wrote:
> [...]
> > and later we can use information in
> > AMCGCR_EL0 to get the number of architected counters (n) and
> > AMEVTYPER0<n>_EL0 to find out the type. The same logic would apply to
> > the auxiliary counters.
> > 
> 
> Good, I think that's all we'll really need. I've not gone through the whole
> series (yet!) so I might've missed AMCGCR being used.
>

No, it's not used later in the patches either, specifically because
this is version 1 and we should be able to rely on these first 4
architected counters for all future versions of the AMU implementation.

> >>> @@ -1150,6 +1152,59 @@ static bool has_hw_dbm(const struct arm64_cpu_capabilities *cap,
> >>>  
> >>>  #endif
> >>>  
> >>> +#ifdef CONFIG_ARM64_AMU_EXTN
> >>> +
> >>> +/*
> >>> + * This per cpu variable only signals that the CPU implementation supports
> >>> + * the Activity Monitors Unit (AMU) but does not provide information
> >>> + * regarding all the events that it supports.
> >>> + * When this amu_feat per CPU variable is true, the user of this feature
> >>> + * can only rely on the presence of the 4 fixed counters. But this does
> >>> + * not guarantee that the counters are enabled or access to these counters
> >>> + * is provided by code executed at higher exception levels.
> >>> + *
> >>> + * Also, to ensure the safe use of this per_cpu variable, the following
> >>> + * accessor is defined to allow a read of amu_feat for the current cpu only
> >>> + * from the current cpu.
> >>> + *  - cpu_has_amu_feat()
> >>> + */
> >>> +static DEFINE_PER_CPU_READ_MOSTLY(u8, amu_feat);
> >>> +
> >>
> >> Why not bool?
> >>
> > 
> > I've changed it from bool after a sparse warning about expression using
> > sizeof(bool) and found this is due to sizeof(bool) being compiler
> > dependent. It does not change anything but I thought it might be a good
> > idea to define it as 8-bit unsigned and rely on fixed size.
> > 
> 
> I believe conveying the intent (a truth value) is more important than the
> underlying storage size in this case. It mostly matters when dealing with
> aggregates, but here it's just a free-standing variable.
> 
> We already have a few per-CPU boolean variables in arm64/kernel/fpsimd.c
> and the commits aren't even a year old, so I'd go for ignoring sparse this
> time around.
>

Will do!

Thanks,
Ionela.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-01-28 11:00 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-18 18:26 [PATCH v2 0/6] arm64: ARMv8.4 Activity Monitors support Ionela Voinescu
2019-12-18 18:26 ` Ionela Voinescu
2019-12-18 18:26 ` [PATCH v2 1/6] arm64: add support for the AMU extension v1 Ionela Voinescu
2019-12-18 18:26   ` Ionela Voinescu
2020-01-23 17:04   ` Valentin Schneider
2020-01-23 17:04     ` Valentin Schneider
2020-01-23 18:32     ` Ionela Voinescu
2020-01-23 18:32       ` Ionela Voinescu
2020-01-24 12:00       ` Valentin Schneider
2020-01-24 12:00         ` Valentin Schneider
2020-01-28 11:00         ` Ionela Voinescu [this message]
2020-01-28 11:00           ` Ionela Voinescu
2020-01-28 16:34   ` Suzuki Kuruppassery Poulose
2020-01-28 16:34     ` Suzuki Kuruppassery Poulose
2020-01-29 16:42     ` Ionela Voinescu
2020-01-29 16:42       ` Ionela Voinescu
2019-12-18 18:26 ` [PATCH v2 2/6] arm64: trap to EL1 accesses to AMU counters from EL0 Ionela Voinescu
2019-12-18 18:26   ` Ionela Voinescu
2020-01-23 17:04   ` Valentin Schneider
2020-01-23 17:04     ` Valentin Schneider
2020-01-23 17:34     ` Ionela Voinescu
2020-01-23 17:34       ` Ionela Voinescu
2019-12-18 18:26 ` [PATCH v2 3/6] arm64/kvm: disable access to AMU registers from kvm guests Ionela Voinescu
2019-12-18 18:26   ` Ionela Voinescu
2020-01-27 15:33   ` Valentin Schneider
2020-01-27 15:33     ` Valentin Schneider
2020-01-28 15:48     ` Ionela Voinescu
2020-01-28 15:48       ` Ionela Voinescu
2020-01-28 17:26     ` Suzuki Kuruppassery Poulose
2020-01-28 17:26       ` Suzuki Kuruppassery Poulose
2020-01-28 17:37       ` Valentin Schneider
2020-01-28 17:37         ` Valentin Schneider
2020-01-28 17:52         ` Ionela Voinescu
2020-01-28 17:52           ` Ionela Voinescu
2019-12-18 18:26 ` [PATCH v2 4/6] Documentation: arm64: document support for the AMU extension Ionela Voinescu
2019-12-18 18:26   ` Ionela Voinescu
2020-01-27 16:47   ` Valentin Schneider
2020-01-27 16:47     ` Valentin Schneider
2020-01-28 16:53     ` Ionela Voinescu
2020-01-28 16:53       ` Ionela Voinescu
2020-01-28 18:36       ` Valentin Schneider
2020-01-28 18:36         ` Valentin Schneider
2020-01-30 15:04   ` Suzuki Kuruppassery Poulose
2020-01-30 15:04     ` Suzuki Kuruppassery Poulose
2020-01-30 16:45     ` Ionela Voinescu
2020-01-30 16:45       ` Ionela Voinescu
2020-01-30 18:26       ` Suzuki K Poulose
2020-01-30 18:26         ` Suzuki K Poulose
2020-01-31  9:54         ` Ionela Voinescu
2020-01-31  9:54           ` Ionela Voinescu
2019-12-18 18:26 ` [PATCH v2 5/6] TEMP: sched: add interface for counter-based frequency invariance Ionela Voinescu
2019-12-18 18:26   ` Ionela Voinescu
2020-01-29 19:37   ` Peter Zijlstra
2020-01-29 19:37     ` Peter Zijlstra
2020-01-30 15:33     ` Ionela Voinescu
2020-01-30 15:33       ` Ionela Voinescu
2019-12-18 18:26 ` [PATCH v2 6/6] arm64: use activity monitors for " Ionela Voinescu
2019-12-18 18:26   ` Ionela Voinescu
2020-01-23 11:49   ` Lukasz Luba
2020-01-23 11:49     ` Lukasz Luba
2020-01-23 17:07     ` Ionela Voinescu
2020-01-23 17:07       ` Ionela Voinescu
2020-01-24  1:19       ` Lukasz Luba
2020-01-24  1:19         ` Lukasz Luba
2020-01-24 13:12         ` Ionela Voinescu
2020-01-24 13:12           ` Ionela Voinescu
2020-01-24 15:17           ` Lukasz Luba
2020-01-24 15:17             ` Lukasz Luba
2020-01-28 17:36             ` Ionela Voinescu
2020-01-28 17:36               ` Ionela Voinescu
2020-01-29 17:13   ` Valentin Schneider
2020-01-29 17:13     ` Valentin Schneider
2020-01-29 17:52     ` Ionela Voinescu
2020-01-29 17:52       ` Ionela Voinescu
2020-01-29 23:39     ` Valentin Schneider
2020-01-29 23:39       ` Valentin Schneider
2020-01-30 15:49       ` Ionela Voinescu
2020-01-30 15:49         ` Ionela Voinescu
2020-01-30 16:11         ` Valentin Schneider
2020-01-30 16:11           ` Valentin Schneider

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=20200128110007.GA17411@arm.com \
    --to=ionela.voinescu@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=ggherdovich@suse.cz \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=sudeep.holla@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=valentin.schneider@arm.com \
    --cc=vincent.guittot@linaro.org \
    --cc=will@kernel.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 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.