On 04/12/20(Fri) 12:01, Jonathan Matthew wrote:
> On Wed, Dec 02, 2020 at 11:41:04AM -0300, Martin Pieuchot wrote:
> > [...] 
> > Could you try the diff below that only call smr_barrier() for multi-
> > threaded processes with threads still in the list.  I guess this also
> > answers guenther@'s question.  The same could be done with smr_flush().
> 
> This removes the overhead, more or less.  Are we only looking at unlocking 
> access
> to ps_threads from within a process (not the sysctl or ptrace stuff)?  
> Otherwise
> this doesn't seem safe.

I'd argue that if `ps_thread' is being iterated the CPU doing the
iteration must already have a reference to the "struct process" so
the serialization should be done on this reference.

Now I doubt we'll be able to answer all the questions right now.  If we
can find a path forward that doesn't decrease performances too much and
allow us to move signal delivery and sleep out of the KERNEL_LOCK()
that's a huge win.

Reply via email to