diff mbox series

[stable,1/2] coresight: etb10: Do not call smp_processor_id from preemptible

Message ID 20200108110541.318672-1-suzuki.poulose@arm.com (mailing list archive)
State New, archived
Headers show
Series [stable,1/2] coresight: etb10: Do not call smp_processor_id from preemptible | expand

Commit Message

Suzuki K Poulose Jan. 8, 2020, 11:05 a.m. UTC
[ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]

During a perf session we try to allocate buffers on the "node" associated
with the CPU the event is bound to. If it is not bound to a CPU, we
use the current CPU node, using smp_processor_id(). However this is unsafe
in a pre-emptible context and could generate the splats as below :

 BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544

Use NUMA_NO_NODE hint instead of using the current node for events
not bound to CPUs.

Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org
---
 drivers/hwtracing/coresight/coresight-etb10.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Sasha Levin Jan. 9, 2020, 2:35 p.m. UTC | #1
On Wed, Jan 08, 2020 at 11:05:40AM +0000, Suzuki K Poulose wrote:
>[ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]
>
>During a perf session we try to allocate buffers on the "node" associated
>with the CPU the event is bound to. If it is not bound to a CPU, we
>use the current CPU node, using smp_processor_id(). However this is unsafe
>in a pre-emptible context and could generate the splats as below :
>
> BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
>
>Use NUMA_NO_NODE hint instead of using the current node for events
>not bound to CPUs.
>
>Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
>Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
>Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
>Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
>Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org

I've queued this for 4.9-4.19. There was a simple conflict on 4.9 which
also had to be resolved.
Suzuki K Poulose Jan. 9, 2020, 2:36 p.m. UTC | #2
On 09/01/2020 14:35, Sasha Levin wrote:
> On Wed, Jan 08, 2020 at 11:05:40AM +0000, Suzuki K Poulose wrote:
>> [ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]
>>
>> During a perf session we try to allocate buffers on the "node" associated
>> with the CPU the event is bound to. If it is not bound to a CPU, we
>> use the current CPU node, using smp_processor_id(). However this is 
>> unsafe
>> in a pre-emptible context and could generate the splats as below :
>>
>> BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
>>
>> Use NUMA_NO_NODE hint instead of using the current node for events
>> not bound to CPUs.
>>
>> Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
>> Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>> Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
>> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
>> Link: 
>> https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org 
>>
> 
> I've queued this for 4.9-4.19. There was a simple conflict on 4.9 which
> also had to be resolved.
> 


Thanks Sasha !

Suzuki
Greg KH Jan. 15, 2020, 3:11 p.m. UTC | #3
On Thu, Jan 09, 2020 at 02:36:17PM +0000, Suzuki Kuruppassery Poulose wrote:
> On 09/01/2020 14:35, Sasha Levin wrote:
> > On Wed, Jan 08, 2020 at 11:05:40AM +0000, Suzuki K Poulose wrote:
> > > [ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]
> > > 
> > > During a perf session we try to allocate buffers on the "node" associated
> > > with the CPU the event is bound to. If it is not bound to a CPU, we
> > > use the current CPU node, using smp_processor_id(). However this is
> > > unsafe
> > > in a pre-emptible context and could generate the splats as below :
> > > 
> > > BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
> > > 
> > > Use NUMA_NO_NODE hint instead of using the current node for events
> > > not bound to CPUs.
> > > 
> > > Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
> > > Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
> > > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> > > Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
> > > Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> > > Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org
> > > 
> > 
> > I've queued this for 4.9-4.19. There was a simple conflict on 4.9 which
> > also had to be resolved.
> > 
> 
> 
> Thanks Sasha !

Note, these had to all be dropped as they broke the build :(

So can you please send us patches that at least build?  :)

thanks,

greg k-h
Suzuki K Poulose Jan. 15, 2020, 4:44 p.m. UTC | #4
Hi Greg,

On 15/01/2020 15:11, Greg KH wrote:
> On Thu, Jan 09, 2020 at 02:36:17PM +0000, Suzuki Kuruppassery Poulose wrote:
>> On 09/01/2020 14:35, Sasha Levin wrote:
>>> On Wed, Jan 08, 2020 at 11:05:40AM +0000, Suzuki K Poulose wrote:
>>>> [ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]
>>>>
>>>> During a perf session we try to allocate buffers on the "node" associated
>>>> with the CPU the event is bound to. If it is not bound to a CPU, we
>>>> use the current CPU node, using smp_processor_id(). However this is
>>>> unsafe
>>>> in a pre-emptible context and could generate the splats as below :
>>>>
>>>> BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
>>>>
>>>> Use NUMA_NO_NODE hint instead of using the current node for events
>>>> not bound to CPUs.
>>>>
>>>> Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
>>>> Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
>>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>>>> Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
>>>> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
>>>> Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org
>>>>
>>>
>>> I've queued this for 4.9-4.19. There was a simple conflict on 4.9 which
>>> also had to be resolved.
>>>
>>
>>
>> Thanks Sasha !
> 
> Note, these had to all be dropped as they broke the build :(
> 
> So can you please send us patches that at least build?  :)
> 

Do you have a build failure log ? I did build test it before sending it 
over. I tried it again on 4.9, 4.14 and 4.19. I don't hit any build
failures here.

Please could you share the log if you have it handy ?

Suzuki
Greg KH Jan. 15, 2020, 5:21 p.m. UTC | #5
On Wed, Jan 15, 2020 at 04:44:29PM +0000, Suzuki Kuruppassery Poulose wrote:
> 
> Hi Greg,
> 
> On 15/01/2020 15:11, Greg KH wrote:
> > On Thu, Jan 09, 2020 at 02:36:17PM +0000, Suzuki Kuruppassery Poulose wrote:
> > > On 09/01/2020 14:35, Sasha Levin wrote:
> > > > On Wed, Jan 08, 2020 at 11:05:40AM +0000, Suzuki K Poulose wrote:
> > > > > [ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]
> > > > > 
> > > > > During a perf session we try to allocate buffers on the "node" associated
> > > > > with the CPU the event is bound to. If it is not bound to a CPU, we
> > > > > use the current CPU node, using smp_processor_id(). However this is
> > > > > unsafe
> > > > > in a pre-emptible context and could generate the splats as below :
> > > > > 
> > > > > BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
> > > > > 
> > > > > Use NUMA_NO_NODE hint instead of using the current node for events
> > > > > not bound to CPUs.
> > > > > 
> > > > > Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
> > > > > Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
> > > > > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> > > > > Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
> > > > > Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> > > > > Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org
> > > > > 
> > > > 
> > > > I've queued this for 4.9-4.19. There was a simple conflict on 4.9 which
> > > > also had to be resolved.
> > > > 
> > > 
> > > 
> > > Thanks Sasha !
> > 
> > Note, these had to all be dropped as they broke the build :(
> > 
> > So can you please send us patches that at least build?  :)
> > 
> 
> Do you have a build failure log ? I did build test it before sending it
> over. I tried it again on 4.9, 4.14 and 4.19. I don't hit any build
> failures here.
> 
> Please could you share the log if you have it handy ?

It was in the stable -rc review emails, I don't have it handy, sorry.

greg k-h
Suzuki K Poulose Jan. 15, 2020, 5:28 p.m. UTC | #6
On 15/01/2020 17:21, Greg KH wrote:
> On Wed, Jan 15, 2020 at 04:44:29PM +0000, Suzuki Kuruppassery Poulose wrote:
>>
>> Hi Greg,
>>
>> On 15/01/2020 15:11, Greg KH wrote:
>>> On Thu, Jan 09, 2020 at 02:36:17PM +0000, Suzuki Kuruppassery Poulose wrote:
>>>> On 09/01/2020 14:35, Sasha Levin wrote:
>>>>> On Wed, Jan 08, 2020 at 11:05:40AM +0000, Suzuki K Poulose wrote:
>>>>>> [ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]
>>>>>>
>>>>>> During a perf session we try to allocate buffers on the "node" associated
>>>>>> with the CPU the event is bound to. If it is not bound to a CPU, we
>>>>>> use the current CPU node, using smp_processor_id(). However this is
>>>>>> unsafe
>>>>>> in a pre-emptible context and could generate the splats as below :
>>>>>>
>>>>>> BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
>>>>>>
>>>>>> Use NUMA_NO_NODE hint instead of using the current node for events
>>>>>> not bound to CPUs.
>>>>>>
>>>>>> Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
>>>>>> Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
>>>>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>>>>>> Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
>>>>>> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
>>>>>> Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org
>>>>>>
>>>>>
>>>>> I've queued this for 4.9-4.19. There was a simple conflict on 4.9 which
>>>>> also had to be resolved.
>>>>>
>>>>
>>>>
>>>> Thanks Sasha !
>>>
>>> Note, these had to all be dropped as they broke the build :(
>>>
>>> So can you please send us patches that at least build?  :)
>>>
>>
>> Do you have a build failure log ? I did build test it before sending it
>> over. I tried it again on 4.9, 4.14 and 4.19. I don't hit any build
>> failures here.
>>
>> Please could you share the log if you have it handy ?
> 
> It was in the stable -rc review emails, I don't have it handy, sorry.
> 

I think there is a bit of confusion here. If you're referring to

https://lkml.org/lkml/2020/1/11/634

as the build failure report, this is precisely my series fixes.
I sent this series to address the build break reported by Nathan.
The original patches were picked up from the "Fixes" tag automatically
which broke the build due to missing "event" parameter. This series
fixes those build issues and for sure builds fine for the affected
versions. Trust me ;-)

Cheers
Suzuki



> greg k-h
>
Greg KH Jan. 28, 2020, 8:15 a.m. UTC | #7
On Wed, Jan 15, 2020 at 05:28:19PM +0000, Suzuki Kuruppassery Poulose wrote:
> On 15/01/2020 17:21, Greg KH wrote:
> > On Wed, Jan 15, 2020 at 04:44:29PM +0000, Suzuki Kuruppassery Poulose wrote:
> > > 
> > > Hi Greg,
> > > 
> > > On 15/01/2020 15:11, Greg KH wrote:
> > > > On Thu, Jan 09, 2020 at 02:36:17PM +0000, Suzuki Kuruppassery Poulose wrote:
> > > > > On 09/01/2020 14:35, Sasha Levin wrote:
> > > > > > On Wed, Jan 08, 2020 at 11:05:40AM +0000, Suzuki K Poulose wrote:
> > > > > > > [ Upstream commit 730766bae3280a25d40ea76a53dc6342e84e6513 ]
> > > > > > > 
> > > > > > > During a perf session we try to allocate buffers on the "node" associated
> > > > > > > with the CPU the event is bound to. If it is not bound to a CPU, we
> > > > > > > use the current CPU node, using smp_processor_id(). However this is
> > > > > > > unsafe
> > > > > > > in a pre-emptible context and could generate the splats as below :
> > > > > > > 
> > > > > > > BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
> > > > > > > 
> > > > > > > Use NUMA_NO_NODE hint instead of using the current node for events
> > > > > > > not bound to CPUs.
> > > > > > > 
> > > > > > > Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
> > > > > > > Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
> > > > > > > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> > > > > > > Cc: stable <stable@vger.kernel.org> # v4.9 to v4.19
> > > > > > > Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> > > > > > > Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org
> > > > > > > 
> > > > > > 
> > > > > > I've queued this for 4.9-4.19. There was a simple conflict on 4.9 which
> > > > > > also had to be resolved.
> > > > > > 
> > > > > 
> > > > > 
> > > > > Thanks Sasha !
> > > > 
> > > > Note, these had to all be dropped as they broke the build :(
> > > > 
> > > > So can you please send us patches that at least build?  :)
> > > > 
> > > 
> > > Do you have a build failure log ? I did build test it before sending it
> > > over. I tried it again on 4.9, 4.14 and 4.19. I don't hit any build
> > > failures here.
> > > 
> > > Please could you share the log if you have it handy ?
> > 
> > It was in the stable -rc review emails, I don't have it handy, sorry.
> > 
> 
> I think there is a bit of confusion here. If you're referring to
> 
> https://lkml.org/lkml/2020/1/11/634
> 
> as the build failure report, this is precisely my series fixes.
> I sent this series to address the build break reported by Nathan.
> The original patches were picked up from the "Fixes" tag automatically
> which broke the build due to missing "event" parameter. This series
> fixes those build issues and for sure builds fine for the affected
> versions. Trust me ;-)

Ok, for some reason it looked like the "original" commits were added to
the tree, not your backports.  I've queued up your backports now, that
should solve the issue.

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c
index 0dad8626bcfb..6cf28b049635 100644
--- a/drivers/hwtracing/coresight/coresight-etb10.c
+++ b/drivers/hwtracing/coresight/coresight-etb10.c
@@ -275,9 +275,7 @@  static void *etb_alloc_buffer(struct coresight_device *csdev, int cpu,
 	int node;
 	struct cs_buffers *buf;
 
-	if (cpu == -1)
-		cpu = smp_processor_id();
-	node = cpu_to_node(cpu);
+	node = (cpu == -1) ? NUMA_NO_NODE : cpu_to_node(cpu);
 
 	buf = kzalloc_node(sizeof(struct cs_buffers), GFP_KERNEL, node);
 	if (!buf)