Re: [RFC][PATCH] ps command race fix take2 [4/4] proc_pid_readdir

From: Andi Kleen
Date: Tue Aug 22 2006 - 07:08:57 EST

KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> writes:

> proc_pid_readdir() by list_token.
> Remember 'where we are reading' by inserting a token in the list.
> It seems a bit complicated because of RCU but what we do is very simple.

What happens when you have multiple readers at the same time? Can't
the tokens then be mixed up?

>+ /* this small kmalloc() can fail in rare case, but readdir()
>+ * is not allowed to return ENOMEM. retrying is reasonable. */

Who disallows this? Such retry loops are normally discouraged
because they can lead to deadlocks in OOM situations.
I think it would be better to just return ENOMEM.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at