Re: [PATCH] Fix a race in pid generation that causes pids to be reused immediately.

From: Linus Torvalds
Date: Wed Jun 09 2010 - 20:20:57 EST




On Wed, 9 Jun 2010, Salman Qazi wrote:
>
> I don't think this gives the right answer in the a < base < b case.
> Here a - base < 0 and
> b - base > 0. But we really want b to be before a, since a has rolled
> over further than b.

Right you are.

> I think the right solution is comparing (a - base + max_pid) % max_pid
> with (b - base + max_pid) % max_pid. Am I correct or deluded? .

That would work, but it would be horrible. Just use the three compares
version: doing a integer 'mod' operator is _way_ more expensive.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/