All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: "Huang, Tao" <huangtao@rock-chips.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
	devicetree@vger.kernel.org, davidriley@chromium.org,
	heiko@sntech.de, pawel.moll@arm.com,
	ijc+devicetree@hellion.org.uk, catalin.marinas@arm.com,
	will.deacon@arm.com, dianders@chromium.org,
	smbarber@chromium.org, linux-rockchip@lists.infradead.org,
	robh+dt@kernel.org, galak@codeaurora.org, jwerner@chromium.org,
	linux-kernel@vger.kernel.org, Jianqun Xu <jay.xu@rock-chips.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM64: dts: rockchip: add core dtsi file for RK3399 SoCs
Date: Mon, 25 Apr 2016 11:47:46 +0100	[thread overview]
Message-ID: <20160425104746.GE25087@leverpostej> (raw)
In-Reply-To: <571DEF30.90604@rock-chips.com>

On Mon, Apr 25, 2016 at 06:19:28PM +0800, Huang, Tao wrote:
> Hi, Mark:
> On 2016年04月25日 18:05, Mark Rutland wrote:
> > On Mon, Apr 25, 2016 at 05:48:51PM +0800, Huang, Tao wrote:
> >> and pmu define as:
> >>     pmu_a53 {
> >>         compatible = "arm,cortex-a53-pmu";
> >>         interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &part0>;
> >>         interrupt-affinity = <&cpu_l0>,
> >>                      <&cpu_l1>,
> >>                      <&cpu_l2>,
> >>                      <&cpu_l3>;
> >>     };
> >>
> >>     pmu_a72 {
> >>         compatible = "arm,cortex-a72-pmu", "arm,cortex-a57-pmu";
> > That Cortex-A57 PMU fallback should just go. We already have Cortex-A72
> > PMU support upstream, and I believe there are sufficient differences
> > such that the Cortex-A72 PMU is not a strict superset of the Cortex-A57
> > PMU.
> As I say, I tested on v4.4, I don't back port
> arch/arm64/kernel/perf_event.c, so I use "arm,cortex-a57-pmu". Upstream
> will use "arm,cortex-a72-pmu" only.
> BTW, I don't see any differences between A72/A57 in source code:

The PMU name is exposed to userspace, so the user will be told they have
a Cortex-A57 PMU, with all of the IMPLEMENTATION DEFINED events that
implies.

We don't handle those IMPLEMENTATION DEFINED events in the kernel, but
for the sake of the userspace ABI, we should not expose the Cortex-A72
PMU as a Cortex-A57 PMU.

Given the code is otherwise identical, it should be relatively simple to
backport the A72 support.

> >> It can boot. And I test with Android simpleperf stat and perf top, it works!
> >> So these patches work on RK3399.
> > There is still work to do in the driver, as Marc pointed out.
> >
> > While it may appear to work, it will be requesting percpu IRQs on wrong
> > CPUs (e.g. see how cpu_pmu_request_irq calls cpu_pmu_enable_percpu_irq,
> > on each CPU), and we will need to update the binding codument to cover
> > this case.
> I also set interrupt-affinity, maybe this avoid problem. I add some
> debug print on driver, I believe irq is request on right cpus.

Unfortunately, that's not entirely the case.

As I mentioned above, cpu_pmu_request_irq calls
cpu_pmu_enable_percpu_irq on each CPU (i.e. all CPUs in the system),
regardless of the affinity.

That may happen to work, but it's not something I'm keen on relying on.

Thanks,
Mark.

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
To: "Huang, Tao" <huangtao-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
Cc: Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	davidriley-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org,
	pawel.moll-5wv7dgnIgG8@public.gmane.org,
	ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
	catalin.marinas-5wv7dgnIgG8@public.gmane.org,
	will.deacon-5wv7dgnIgG8@public.gmane.org,
	dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	smbarber-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
	jwerner-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Jianqun Xu <jay.xu-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH] ARM64: dts: rockchip: add core dtsi file for RK3399 SoCs
Date: Mon, 25 Apr 2016 11:47:46 +0100	[thread overview]
Message-ID: <20160425104746.GE25087@leverpostej> (raw)
In-Reply-To: <571DEF30.90604-TNX95d0MmH7DzftRWevZcw@public.gmane.org>

On Mon, Apr 25, 2016 at 06:19:28PM +0800, Huang, Tao wrote:
> Hi, Mark:
> On 2016年04月25日 18:05, Mark Rutland wrote:
> > On Mon, Apr 25, 2016 at 05:48:51PM +0800, Huang, Tao wrote:
> >> and pmu define as:
> >>     pmu_a53 {
> >>         compatible = "arm,cortex-a53-pmu";
> >>         interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &part0>;
> >>         interrupt-affinity = <&cpu_l0>,
> >>                      <&cpu_l1>,
> >>                      <&cpu_l2>,
> >>                      <&cpu_l3>;
> >>     };
> >>
> >>     pmu_a72 {
> >>         compatible = "arm,cortex-a72-pmu", "arm,cortex-a57-pmu";
> > That Cortex-A57 PMU fallback should just go. We already have Cortex-A72
> > PMU support upstream, and I believe there are sufficient differences
> > such that the Cortex-A72 PMU is not a strict superset of the Cortex-A57
> > PMU.
> As I say, I tested on v4.4, I don't back port
> arch/arm64/kernel/perf_event.c, so I use "arm,cortex-a57-pmu". Upstream
> will use "arm,cortex-a72-pmu" only.
> BTW, I don't see any differences between A72/A57 in source code:

The PMU name is exposed to userspace, so the user will be told they have
a Cortex-A57 PMU, with all of the IMPLEMENTATION DEFINED events that
implies.

We don't handle those IMPLEMENTATION DEFINED events in the kernel, but
for the sake of the userspace ABI, we should not expose the Cortex-A72
PMU as a Cortex-A57 PMU.

Given the code is otherwise identical, it should be relatively simple to
backport the A72 support.

> >> It can boot. And I test with Android simpleperf stat and perf top, it works!
> >> So these patches work on RK3399.
> > There is still work to do in the driver, as Marc pointed out.
> >
> > While it may appear to work, it will be requesting percpu IRQs on wrong
> > CPUs (e.g. see how cpu_pmu_request_irq calls cpu_pmu_enable_percpu_irq,
> > on each CPU), and we will need to update the binding codument to cover
> > this case.
> I also set interrupt-affinity, maybe this avoid problem. I add some
> debug print on driver, I believe irq is request on right cpus.

Unfortunately, that's not entirely the case.

As I mentioned above, cpu_pmu_request_irq calls
cpu_pmu_enable_percpu_irq on each CPU (i.e. all CPUs in the system),
regardless of the affinity.

That may happen to work, but it's not something I'm keen on relying on.

Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM64: dts: rockchip: add core dtsi file for RK3399 SoCs
Date: Mon, 25 Apr 2016 11:47:46 +0100	[thread overview]
Message-ID: <20160425104746.GE25087@leverpostej> (raw)
In-Reply-To: <571DEF30.90604@rock-chips.com>

On Mon, Apr 25, 2016 at 06:19:28PM +0800, Huang, Tao wrote:
> Hi, Mark:
> On 2016?04?25? 18:05, Mark Rutland wrote:
> > On Mon, Apr 25, 2016 at 05:48:51PM +0800, Huang, Tao wrote:
> >> and pmu define as:
> >>     pmu_a53 {
> >>         compatible = "arm,cortex-a53-pmu";
> >>         interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &part0>;
> >>         interrupt-affinity = <&cpu_l0>,
> >>                      <&cpu_l1>,
> >>                      <&cpu_l2>,
> >>                      <&cpu_l3>;
> >>     };
> >>
> >>     pmu_a72 {
> >>         compatible = "arm,cortex-a72-pmu", "arm,cortex-a57-pmu";
> > That Cortex-A57 PMU fallback should just go. We already have Cortex-A72
> > PMU support upstream, and I believe there are sufficient differences
> > such that the Cortex-A72 PMU is not a strict superset of the Cortex-A57
> > PMU.
> As I say, I tested on v4.4, I don't back port
> arch/arm64/kernel/perf_event.c, so I use "arm,cortex-a57-pmu". Upstream
> will use "arm,cortex-a72-pmu" only.
> BTW, I don't see any differences between A72/A57 in source code:

The PMU name is exposed to userspace, so the user will be told they have
a Cortex-A57 PMU, with all of the IMPLEMENTATION DEFINED events that
implies.

We don't handle those IMPLEMENTATION DEFINED events in the kernel, but
for the sake of the userspace ABI, we should not expose the Cortex-A72
PMU as a Cortex-A57 PMU.

Given the code is otherwise identical, it should be relatively simple to
backport the A72 support.

> >> It can boot. And I test with Android simpleperf stat and perf top, it works!
> >> So these patches work on RK3399.
> > There is still work to do in the driver, as Marc pointed out.
> >
> > While it may appear to work, it will be requesting percpu IRQs on wrong
> > CPUs (e.g. see how cpu_pmu_request_irq calls cpu_pmu_enable_percpu_irq,
> > on each CPU), and we will need to update the binding codument to cover
> > this case.
> I also set interrupt-affinity, maybe this avoid problem. I add some
> debug print on driver, I believe irq is request on right cpus.

Unfortunately, that's not entirely the case.

As I mentioned above, cpu_pmu_request_irq calls
cpu_pmu_enable_percpu_irq on each CPU (i.e. all CPUs in the system),
regardless of the affinity.

That may happen to work, but it's not something I'm keen on relying on.

Thanks,
Mark.

  reply	other threads:[~2016-04-25 10:47 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-20  3:15 [PATCH] ARM64: dts: rockchip: add core dtsi file for rk3399 SoCs Jianqun Xu
2016-04-20  3:15 ` Jianqun Xu
2016-04-20  3:15 ` Jianqun Xu
2016-04-21  3:58 ` [PATCH] ARM64: dts: rockchip: add core dtsi file for RK3399 SoCs Jianqun Xu
2016-04-21  3:58   ` Jianqun Xu
2016-04-21 10:19   ` Mark Rutland
2016-04-21 10:19     ` Mark Rutland
2016-04-21 10:47     ` Huang, Tao
2016-04-21 10:47       ` Huang, Tao
2016-04-21 11:30       ` Marc Zyngier
2016-04-21 11:30         ` Marc Zyngier
2016-04-21 11:30         ` Marc Zyngier
2016-04-21 20:24         ` Heiko Stübner
2016-04-21 20:24           ` Heiko Stübner
2016-04-21 20:24           ` Heiko Stübner
2016-04-21 21:12           ` Marc Zyngier
2016-04-21 21:12             ` Marc Zyngier
2016-04-21 21:12             ` Marc Zyngier
2016-04-22  1:50             ` jay.xu
2016-04-22  1:50               ` jay.xu
2016-04-22  7:44               ` Marc Zyngier
2016-04-22  7:44                 ` Marc Zyngier
2016-04-22  7:44                 ` Marc Zyngier
2016-04-25  9:48         ` Huang, Tao
2016-04-25  9:48           ` Huang, Tao
2016-04-25  9:48           ` Huang, Tao
2016-04-25 10:05           ` Mark Rutland
2016-04-25 10:05             ` Mark Rutland
2016-04-25 10:05             ` Mark Rutland
2016-04-25 10:19             ` Huang, Tao
2016-04-25 10:19               ` Huang, Tao
2016-04-25 10:47               ` Mark Rutland [this message]
2016-04-25 10:47                 ` Mark Rutland
2016-04-25 10:47                 ` Mark Rutland
2016-04-25 12:27                 ` Huang, Tao
2016-04-25 12:27                   ` Huang, Tao
2016-04-25 12:27                   ` Huang, Tao
2016-04-25 10:06           ` Marc Zyngier
2016-04-25 10:06             ` Marc Zyngier
2016-04-25 10:06             ` Marc Zyngier
2016-04-25 10:39             ` Marc Zyngier
2016-04-25 10:39               ` Marc Zyngier
2016-04-25 10:39               ` Marc Zyngier
2016-04-25 11:50               ` Huang, Tao
2016-04-25 11:50                 ` Huang, Tao
2016-04-25 11:50                 ` Huang, Tao
2016-04-25 12:04                 ` Marc Zyngier
2016-04-25 12:04                   ` Marc Zyngier
2016-04-25 12:04                   ` Marc Zyngier
2016-04-21 21:02   ` Rob Herring
2016-04-21 21:02     ` Rob Herring
2016-04-21 21:02     ` Rob Herring
2016-04-21 22:02   ` Heiko Stübner
2016-04-21 22:02     ` Heiko Stübner
2016-04-21 22:02     ` Heiko Stübner
2016-04-21 22:38     ` Doug Anderson
2016-04-21 22:38       ` Doug Anderson
2016-04-21 22:38       ` Doug Anderson
2016-04-21 22:49       ` Heiko Stübner
2016-04-21 22:49         ` Heiko Stübner
2016-04-21 22:49         ` Heiko Stübner
2016-04-22  4:23       ` Huang, Tao
2016-04-22  4:23         ` Huang, Tao
2016-04-22  4:23         ` Huang, Tao
2016-04-21 21:48 ` [PATCH] ARM64: dts: rockchip: add core dtsi file for rk3399 SoCs Brian Norris
2016-04-21 21:48   ` Brian Norris
2016-04-21 21:48   ` Brian Norris
2016-04-21 22:32   ` Heiko Stübner
2016-04-21 22:32     ` Heiko Stübner
2016-04-22  5:21 ` [PATCH v2 0/4] ARM64: dts: rockchip: add support for RK3399 Jianqun Xu
2016-04-22  5:21   ` Jianqun Xu
2016-04-22  5:21   ` Jianqun Xu
2016-04-22  5:25 ` [PATCH v2 1/4] Documentation: rockchip-dw-mshc: add description for rk3399 Jianqun Xu
2016-04-22  5:25   ` Jianqun Xu
2016-04-22  5:25   ` Jianqun Xu
2016-04-22  5:28 ` [PATCH v2 2/4] ARM64: dts: rockchip: add core dtsi file for RK3399 SoCs Jianqun Xu
2016-04-22  5:28   ` Jianqun Xu
2016-04-22  5:28   ` Jianqun Xu
2016-04-22  5:31 ` [PATCH 3/4] ARM64: dts: rockchip: add RK3399 evaluation board Jianqun Xu
2016-04-22  5:31   ` Jianqun Xu
2016-04-22  5:31   ` Jianqun Xu
2016-04-22  5:36 ` [PATCH v2 4/4] ARM64: dts: rockchip: add dts file for " Jianqun Xu
2016-04-22  5:36   ` Jianqun Xu
2016-04-22  5:36   ` Jianqun Xu

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=20160425104746.GE25087@leverpostej \
    --to=mark.rutland@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=davidriley@chromium.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=galak@codeaurora.org \
    --cc=heiko@sntech.de \
    --cc=huangtao@rock-chips.com \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jay.xu@rock-chips.com \
    --cc=jwerner@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=marc.zyngier@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=smbarber@chromium.org \
    --cc=will.deacon@arm.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.