Re: [PATCH 0/4] v6 Improve task->comm locking situation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Wed, 18 May 2011 08:25:54 +0200 Ingo Molnar <mingo@xxxxxxx> wrote:
> 
> >   " Hey, this looks a bit racy and 'top' very rarely, on rare workloads that 
> >     play with ->comm[], might display a weird reading task name for a second, 
> >     amongst the many other temporarily nonsensical statistical things it 
> >     already prints every now and then. "
> 
> Well we should at least make sure that `top' won't run off the end of comm[] 
> and go oops.  I think that's guaranteed by the fact(s) that init_tasks's 
> comm[15] is zero and is always copied-by-value across fork and can never be 
> overwritten in any task_struct.

Correct.

> But I didn't check that.

I actually have a highly threaded app that uses PR_SET_NAME heavily and would 
have noticed any oopsing potential long ago.

Since ->comm is often observed from other tasks, regardless whether it's set 
from the prctl() or from the newfangled /proc vector, the race for seeing 
partial updates to ->comm always existed - for more than 10 years.

So the premise of the whole series is wrong: temporarily incomplete ->comm[]s 
were *always* possible and did not start 1.5+ years ago with:

  4614a696bd1c: procfs: allow threads to rename siblings via /proc/pid/tasks/tid/comm

when i see series being built on a fundamentally wrong premise i get a bit sad!

Thanks,

	Ingo

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]