On Fri, Dec 04, 2020 at 10:03:46AM -0300, Martin Pieuchot wrote:
> 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.

Sounds reasonable to me.

> 
> 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.

I think we're at an acceptable performance hit now, so if this lets you
progress with unlocking signal delivery, I'm happy.

Reply via email to