On Fri, Aug 4, 2017 at 4:08 PM, Christopher Li <sparse@xxxxxxxxxxx> wrote: > Then the parent loop iterator will keep a copy of the insert mask and > __nth_slot_ptr before execute the loop body. I found a small bug here. The outer most loop iterator need to reset insert mask to zero. In other words, it need the ptrlist refcount patch. The outer most iterator can even compact the list->list[] and clear out delete slot mask and insert slot mask when refcount drop to zero. > > The inner loop might update the ptrlist and the insert > slot mask. The insert only need to update insert slot mask when list->refcout != 0. In other words, some one is looping on this list entry. Which is very rare. I expect his have very minimal performance impact (other than the refcount part). Most of the case there is no insert happen in this ptrlist. We can do the fast path, need need to adjust __nth_slot_ptr. Let a non inlined function to do the slow patch adjustment of __nth_slot_ptr base on the two insert slot mask(before and after). Chris -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html