[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <606aaae4-3f26-7a58-3276-f4c5e3f8d17d@arm.com>
Date: Mon, 12 Aug 2019 11:48:20 +0100
From: Suzuki K Poulose <suzuki.poulose@....com>
To: yabinc@...gle.com, mathieu.poirier@...aro.org,
alexander.shishkin@...ux.intel.com
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] coresight: Serialize enabling/disabling a link device.
Hi Yabin,
On 12/08/2019 11:38, Suzuki K Poulose wrote:
>
> Hi Yabin,
>
> On 09/08/2019 22:45, Yabin Cui wrote:
>> When tracing etm data of multiple threads on multiple cpus through perf
>> interface, some link devices are shared between paths of different cpus.
>> It creates race conditions when different cpus wants to enable/disable
>> the same link device at the same time.
>>
>> Example 1:
>> Two cpus want to enable different ports of a coresight funnel, thus
>> calling the funnel enable operation at the same time. But the funnel
>> enable operation isn't reentrantable.
>>
>> Example 2:
>> For an enabled coresight dynamic replicator with refcnt=1, one cpu wants
>> to disable it, while another cpu wants to enable it. Ideally we still have
>> an enabled replicator with refcnt=1 at the end. But in reality the result
>> is uncertain.
>>
>> Since coresight devices claim themselves when enabled for self-hosted
>> usage, the race conditions above usually make the link devices not usable
>> after many cycles.
>>
>> To fix the race conditions, this patch adds a spinlock to serialize
>> enabling/disabling a link device.
Please could you also add :
Fixes : a06ae8609b3dd ("coresight: add CoreSight core layer framework")
Suzuki
Powered by blists - more mailing lists