On Fri, Sep 29, 2017 at 3:17 AM, Jens Axboe <axboe@xxxxxxxxx> wrote: > On 09/28/2017 11:44 PM, Linus Torvalds wrote: >> On Thu, Sep 28, 2017 at 2:41 PM, Andrew Morton >> <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: >>> >>> test_and_set_bit()? >> >> If there aren't any atomicity concerns (either because of higher-level >> locking, or because racing and having two people set the bit is fine), >> it can be better to do them separately if the test_bit() is the common >> case and you can avoid dirtying a cacheline that way. >> >> But yeah, if that is the case, it might be worth documenting, because >> test_and_set_bit() is the more obviously appropriate "there can be >> only one" model. > > It is documented though, but maybe not well enough... > > I've actually had to document/explain it enough times now, that it > might be worth making a general construct. Though it has to be > used carefully, so perhaps it's better contained as separate use > cases. > Maybe change "Ensure that we only allow one of them pending" in the comment above. Only the "allow one inflight" part is correct. Or apply your follow up patch and be done with in... Amir.