On Wed, Dec 16, 2015 at 02:21:45PM +0100, Colin Pitrat wrote: > Hello, > > in chapter 5 (Counting), in the paragraph concerning "Approximate > structure-allocation limit problem", it is said: > > "Similarly, sub_count() can fail even when the aggregate value of the > counter is nowhere near zero. In many cases, this is unacceptable." > > In the case of the Quick Quiz 5.3 question, it's true that it's quite > a problem if it means freeing the structure fails because the counter > cannot be updated ! And freeing it without updating the counter means > the counter shifts from reality. > > However, the very existence of the structure is a guarantee that the > real (total) counter value cannot be 0 or less than delta, so couldn't > we imagine to always succeed the sub_count operation by keeping a > global negative offset ? In the slow path, after globalize_count, if > the global count is lower than delta then we set it to 0 and we > increment the negative offset by what remains. > > On the next slow path operation during a add_count, this negative > offset can be removed (or reduced) by reducing the local counter of > the thread by the same value. > > This improvement over the proposed solution make it an acceptable > answer for the quick quiz 5.3 whereas it isn't without. > > What do you think ? > Should I spend a bit of time writing a paragraph and a code sample about it ? I must confess that I have read this message a few times, and still don't understand what you are getting at. Part of my trouble is that I am not sure why you are comparing against zero -- the structure-allocation problem only needs to compare against the limit. But you might mean zero after offset, or you might be talking about some related problem. So perhaps a paragraph and sample code would help me understand the problem you are looking at and your example solution. Thanx, Paul -- To unsubscribe from this list: send the line "unsubscribe perfbook" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html