Again, I'll try to read (at least this) patch later this week, just one cosmetic nit for now... On 06/24, Andrii Nakryiko wrote: > > + * UPROBE_REFCNT_GET constant is chosen such that it will *increment both* > + * epoch and refcnt parts atomically with one atomic_add(). > + * UPROBE_REFCNT_PUT is chosen such that it will *decrement* refcnt part and > + * *increment* epoch part. > + */ > +#define UPROBE_REFCNT_GET ((1LL << 32) | 1LL) > +#define UPROBE_REFCNT_PUT (0xffffffffLL) How about #define UPROBE_REFCNT_GET ((1ULL << 32) + 1ULL) #define UPROBE_REFCNT_PUT ((1ULL << 32) - 1ULL) ? this makes them symmetrical and makes it clear why atomic64_add(UPROBE_REFCNT_PUT) works as described in the comment. Feel free to ignore if you don't like it. Oleg.