lkml.org 
[lkml]   [2013]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 10/13] tracing/uprobes: Fetch args before reserving a ring buffer
On 11/01, Oleg Nesterov wrote:
>
> Hi Namhyung,
>
> Sorry if this was already discussed. But I can't really understand
> the idea of this per-cpu buffer...
>
> On 10/29, Namhyung Kim wrote:
> >
> > Fetching from user space should be done in a non-atomic context. So
> > use a per-cpu buffer and copy its content to the ring buffer
> > atomically. Note that we can migrate during accessing user memory
> > thus use a per-cpu mutex to protect concurrent accesses.
>
> And if the task migrates or just sleeps in page fault, another task
> which hits another uprobe on the same CPU should wait.
>
> Why we can't simply add trace_uprobe->buffer instead? Only to save
> some memory? But every uprobe is very expensive in this sense anyway.

Ah, please ignore... handler_chain() is not self-serialized, so
tu->buffer needs locking/waiting too.

Oleg.



\
 
 \ /
  Last update: 2013-11-01 16:41    [W:0.241 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site