[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170622175255.GD25967@leverpostej>
Date: Thu, 22 Jun 2017 18:52:56 +0100
From: Mark Rutland <mark.rutland@....com>
To: Hoan Tran <hotran@....com>
Cc: Will Deacon <will.deacon@....com>,
Jonathan Corbet <corbet@....net>,
Tai Nguyen <ttnguyen@....com>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-doc@...r.kernel.org, Loc Ho <lho@....com>
Subject: Re: [PATCH v3 3/3] perf: xgene: Add support for SoC PMU version 3
Hi Hoan,
This largely looks good; I have one minor comment.
On Tue, Jun 06, 2017 at 11:02:26AM -0700, Hoan Tran wrote:
> static inline void
> +xgene_pmu_write_counter64(struct xgene_pmu_dev *pmu_dev, int idx, u64 val)
> +{
> + u32 cnt_lo, cnt_hi;
> +
> + cnt_hi = upper_32_bits(val);
> + cnt_lo = lower_32_bits(val);
> +
> + /* v3 has 64-bit counter registers composed by 2 32-bit registers */
> + xgene_pmu_write_counter32(pmu_dev, 2 * idx, cnt_lo);
> + xgene_pmu_write_counter32(pmu_dev, 2 * idx + 1, cnt_hi);
> +}
For this to be atomic, we need to disable the counters for the duration
of the IRQ handler, which we don't do today.
Regardless, we should do that to ensure that groups are self-consistent.
i.e. in xgene_pmu_isr() we should call ops->stop_counters() just after
taking the pmu lock, and we should call ops->start_counters() just
before releasing it.
With that:
Acked-by: Mark Rutland <mark.rutland@....com>
Thanks,
Mark.
Powered by blists - more mailing lists