Messages in this thread | | | Date | Mon, 12 Apr 2010 21:50:42 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH -mm 3/3] proc: make task_sig() lockless |
| |
On 04/09, Roland McGrath wrote: > > > Yes. From the changelog: > > > > Of course, this means we read pending/blocked/etc nonatomically, > > but I hope this is OK for fs/proc. > > > > But I don't think the returned data could be "really" inconsistent > > from the /bin/ps pov. Yes, it is possible that, say, some signal is > > seen as both pending and ignored without ->siglock. Or we can report > > user->sigpending != 0 while pending/shpending are empty. > > > > But this looks harmless to me. We never guaranteed /proc/pid/status > > can't report the "intermediate" state, and I don't think we can > > confuse the user-space. > > > > Do you agree? Or do you think this can make problems ? > > I'm not so sure. Operations like sigprocmask and sigaction really have > always been entirely atomic from the userland perspective before. Now it > becomes possible to read from /proc e.g. a blocked set that never existed > as such (one word updated by sigprocmask but not yet the next word).
Yes, /proc/pid/status can report the intermediate state, I even sent the updated changelog to document this.
But if you are not sure this is OK, I am worried. Do you think we should drop this patch? If yes, I won't argue.
Oleg.
| |