Re: [PATCH] utrace: utrace_finish_vfork: check ->vfork_stop lockless

2009-08-30 Thread Roland McGrath
> But report/interrupt/etc are all bitfields :1. Doesn't this mean compiler > can do anything it wants with the word where these bitfields live? Can't > it temporary (say) clear ->interrupt while setting ->report ? I think the story on this is that, yes, technically the C standard doesn't rule tha

Re: [PATCH] utrace: utrace_finish_vfork: check ->vfork_stop lockless

2009-08-20 Thread Oleg Nesterov
On 08/19, Oleg Nesterov wrote: > > I hope I missed something, but I'm _afraid_ we may have problems. > > Looks like we can almost never use utrace->xxx:1 fields without ->lock. > Suppose that, for example, utrace_control(UTRACE_REPORT) does > > utrace->report = 1; > > But report/interrupt/etc

Re: [PATCH] utrace: utrace_finish_vfork: check ->vfork_stop lockless

2009-08-19 Thread Oleg Nesterov
On 08/19, Oleg Nesterov wrote: > > If ->vfork_stop was set, it was set by us, no need to take utrace->lock > to check it. Oh. Yes, but... I hope I missed something, but I'm _afraid_ we may have problems. Looks like we can almost never use utrace->xxx:1 fields without ->lock. Suppose that, for ex

[PATCH] utrace: utrace_finish_vfork: check ->vfork_stop lockless

2009-08-19 Thread Oleg Nesterov
If ->vfork_stop was set, it was set by us, no need to take utrace->lock to check it. Signed-off-by: Oleg Nesterov --- kernel/utrace.c |6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) --- PU/kernel/utrace.c~UTRACE_1_vfork_stop 2009-08-19 14:00:57.0 +0200 +++ PU/kerne