Messages in this thread | | | Date | Sat, 12 Jan 2013 18:46:07 +0100 | From | Oleg Nesterov <> | Subject | Re: [PATCH] rwlock_t unfairness and tasklist_lock |
| |
On 01/11, Michel Lespinasse wrote: > > So I looked again at getpriority() since that's what I had used for my > DOS test code, and it looks like everything there is already protected > by RCU or smaller granularity locks and refcounts. Patch attached to > remove this tasklist_lock usage.
And probably the change in getpriority() is fine, but ...
> @@ -189,7 +189,6 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval) > niceval = 19; > > rcu_read_lock(); > - read_lock(&tasklist_lock); > switch (which) { > case PRIO_PROCESS: > if (who) > @@ -226,7 +225,6 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval) > break; > } > out_unlock: > - read_unlock(&tasklist_lock);
you also changed setpriority(), this should be documented at least ;)
OK. Even without this change, say, sys_setpriority(PRIO_PGRP) can obviously race with fork(), so this change probably is not bad.
Oleg.
| |