[DragonFlyBSD - Bug #3321] (New) hammer2: HAMMER2_XOPMASK_FEED handling in XOP retire

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Sun Aug 7 02:47:23 PDT 2022


Issue #3321 has been reported by tkusumi.

----------------------------------------
Bug #3321: hammer2: HAMMER2_XOPMASK_FEED handling in XOP retire
http://bugs.dragonflybsd.org/issues/3321

* Author: tkusumi
* Status: New
* Priority: Normal
* Target version: 6.4
* Start date: 2022-08-07
----------------------------------------
HAMMER2_XOPMASK_FEED isn't used for anything, so it makes no difference, but isn't hammer2_xop_retire() supposed to be clearing HAMMER2_XOPMASK_FEED rather than adding again ?

-----
 594 void
 595 hammer2_xop_retire(hammer2_xop_head_t *xop, uint64_t mask)
 596 {
 597         hammer2_chain_t *chain;
 598         uint64_t nmask;
 599         int i;
 600
 601         /*
 602          * Remove the frontend collector or remove a backend feeder.
 603          *
 604          * When removing the frontend we must wakeup any backend feeders
 605          * who are waiting for FIFO space.
 606          *
 607          * When removing the last backend feeder we must wakeup any waiting
 608          * frontend.
 609          */
 610         KKASSERT(xop->run_mask & mask);
 611         nmask = atomic_fetchadd_64(&xop->run_mask,
 612                                    -mask + HAMMER2_XOPMASK_FEED); <--- usually end up adding HAMMER2_XOPMASK_FEED 3 times (once in feed, twice in retire)



-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account


More information about the Bugs mailing list