Messages in this thread | | | From | "Hillf Danton" <> | Subject | Re: [PATCH 03/10] proc, oom_adj: extract oom_score_adj setting into a helper | Date | Wed, 22 Jun 2016 11:17:12 +0800 |
| |
> > > diff --git a/fs/proc/base.c b/fs/proc/base.c > > > index 968d5ea06e62..a6a8fbdd5a1b 100644 > > > --- a/fs/proc/base.c > > > +++ b/fs/proc/base.c > > > @@ -1037,7 +1037,47 @@ static ssize_t oom_adj_read(struct file *file, char __user *buf, size_t count, > > > return simple_read_from_buffer(buf, count, ppos, buffer, len); > > > } > > > > > > -static DEFINE_MUTEX(oom_adj_mutex); > > > +static int __set_oom_adj(struct file *file, int oom_adj, bool legacy) > > > +{ > > > + static DEFINE_MUTEX(oom_adj_mutex); > > > > Writers are not excluded for readers! > > Is this a hot path? > > I am not sure I follow you question. This is a write path... Who would > be the reader? > Currently oom_adj_read() and oom_adj_write() are serialized with task->sighand->siglock, and in this work oom_adj_mutex is introduced to only keep writers in hose.
Plus, oom_adj_write() and oom_badness() are currently serialized with task->alloc_lock, and they may be handled in subsequent patches.
thanks Hillf
| |