Messages in this thread | | | Date | Thu, 29 Nov 2012 20:20:03 +0100 | From | Andi Kleen <> | Subject | Re: [PATCH 22/25] Generic dynamic per cpu refcounting |
| |
> The trick is that we don't watch for the refcount hitting 0 until we're > shutting down - so this only works if you keep track of your initial > refcount. As long as we're not shutting down, we know the refcount can't > hit 0 because we haven't released the initial refcount.
This seems dangerous to me: assume you have one CPU which always does get and another does put. So there may be 2^32 such operations without a kill and you wrap for real in a way that does not get corrected.
Normally this can only happen if you have a lot of objects or CPUs are limited.
But you don't have any limit on getting out-of-sync.
You could make it 64bit, but then wraps could happen.
-Andi
| |