lkml.org 
[lkml]   [2015]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] tracing: Add comments explaining cpu online filter for trace events
On Thu, 14 May 2015 19:46:11 +0530
Shreyas B Prabhu <shreyas@linux.vnet.ibm.com> wrote:

> > Thanks for the comments, but can't these still be called with
> > preemption enabled. What happens when CONFIG_DEBUG_PREEMPT is set and
> > you enable these tracepoints. Wont it trigger a warning about
> > smp_processor_id() being used in preemptible code?
> >
> Yes. It does trigger "using smp_processor_id() in preemptible code"
> warnings. But as you mentioned in the previous comments, we should be
> safe even if the trace call happens from a preemptible section. Let me
> play out the scenarios here again-
>
> The task gets migrated after the smp_processor_id()
> 1. From an online cpu to another online cpu - No impact
> 2. From an online cpu to an offline cpu - Should never happen
> 3. From an offline cpu to an online cpu - IIUC, once a cpu has been
> offlined it returns to cpu_idle_loop, discovers its offline and calls
> arch_cpu_idle_dead. All this happens with preemption disabled. So this
> scenario too should never happen.
>
> So I don't see any downside to changing smp_processor_id() to
> raw_smp_processor_id() which will suppress the warnings. If you agree
> I'll send a patch doing this.

Yes, please use the raw_smp_processor_id(), and you can add the above
description about why it is safe to do so (in the comments).

>
> Another alternative which is perhaps worth considering is to change
> __DO_TRACE itself to check for offline cpu, without a trace event
> specifying the check. This will prevent any currently uncaught and any
> future tracepoints from using RCU on offline cpus. But I guess it's
> little extreme considering only a low fraction of tracepoints have
> potential of being called from offline cpus.

I think that's a bit extreme, as it would cause an impact to the speed
of tracepoints in the hot path.

-- Steve



\
 
 \ /
  Last update: 2015-05-14 17:41    [W:0.033 / U:0.824 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site