Re: [PATCH] signal: reorder struct sighand_struct

From: Andrew Morton
Date: Thu May 23 2019 - 22:14:14 EST


On Sat, 4 May 2019 19:33:02 -0400 Michal Hocko <mhocko@xxxxxxxxxx> wrote:

> CCing Oleg.
>
> On Fri 03-05-19 22:28:00, Alexey Dobriyan wrote:
> [...]
> > add/remove: 0/0 grow/shrink: 8/68 up/down: 49/-1147 (-1098)
> [...]
> > --- a/include/linux/sched/signal.h
> > +++ b/include/linux/sched/signal.h
> > @@ -15,10 +15,10 @@
> > */
> >
> > struct sighand_struct {
> > - refcount_t count;
> > - struct k_sigaction action[_NSIG];
> > spinlock_t siglock;
> > + refcount_t count;
> > wait_queue_head_t signalfd_wqh;
> > + struct k_sigaction action[_NSIG];
> > };
>
> Is it possible that this would cause false sharing of the cache line
> that would have performance implications now?

Doesn't seem likely. Possible .count vs .siglock, but .count only gets
altered by fork/exec-style code, so it's pretty low bandwidth.