pid.c (da733563be5a9da26fe81d9f007262d00b846e22) | pid.c (b8f566b04d3cddd192cfd2418ae6d54ac6353792) |
---|---|
1/* 2 * Generic pidhash and scalable, time-bounded PID allocator 3 * 4 * (C) 2002-2003 William Irwin, IBM 5 * (C) 2004 William Irwin, Oracle 6 * (C) 2002-2004 Ingo Molnar, Red Hat 7 * 8 * pid-structures are backing objects for tasks sharing a given ID to chain --- 123 unchanged lines hidden (view full) --- 132 * 133 * (a - base + MAXUINT) % MAXUINT < (b - base + MAXUINT) % MAXUINT 134 * and that mapping orders 'a' and 'b' with respect to 'base'. 135 */ 136 return (unsigned)(a - base) < (unsigned)(b - base); 137} 138 139/* | 1/* 2 * Generic pidhash and scalable, time-bounded PID allocator 3 * 4 * (C) 2002-2003 William Irwin, IBM 5 * (C) 2004 William Irwin, Oracle 6 * (C) 2002-2004 Ingo Molnar, Red Hat 7 * 8 * pid-structures are backing objects for tasks sharing a given ID to chain --- 123 unchanged lines hidden (view full) --- 132 * 133 * (a - base + MAXUINT) % MAXUINT < (b - base + MAXUINT) % MAXUINT 134 * and that mapping orders 'a' and 'b' with respect to 'base'. 135 */ 136 return (unsigned)(a - base) < (unsigned)(b - base); 137} 138 139/* |
140 * We might be racing with someone else trying to set pid_ns->last_pid. | 140 * We might be racing with someone else trying to set pid_ns->last_pid 141 * at the pid allocation time (there's also a sysctl for this, but racing 142 * with this one is OK, see comment in kernel/pid_namespace.c about it). |
141 * We want the winner to have the "later" value, because if the 142 * "earlier" value prevails, then a pid may get reused immediately. 143 * 144 * Since pids rollover, it is not sufficient to just pick the bigger 145 * value. We have to consider where we started counting from. 146 * 147 * 'base' is the value of pid_ns->last_pid that we observed when 148 * we started looking for a pid. --- 423 unchanged lines hidden --- | 143 * We want the winner to have the "later" value, because if the 144 * "earlier" value prevails, then a pid may get reused immediately. 145 * 146 * Since pids rollover, it is not sufficient to just pick the bigger 147 * value. We have to consider where we started counting from. 148 * 149 * 'base' is the value of pid_ns->last_pid that we observed when 150 * we started looking for a pid. --- 423 unchanged lines hidden --- |