On 2022-02-03 17:44:33 [+0100], To Eric Dumazet wrote: > > I guess the cost of the local_bh_enable()/local_bh_disable() pair > > will be roughly the same, please measure it :) > > We would avoid that branch maybe that helps. Will measure. | BH OFF/ON : 722922586 | BH OFF/ON : 722931661 | BH OFF/ON : 725341486 | BH OFF/ON : 725909591 | BH OFF/ON : 741705606 | BH OFF/ON-OPT : 536683873 | BH OFF/ON-OPT : 536933779 | BH OFF/ON-OPT : 536967581 | BH OFF/ON-OPT : 537109700 | BH OFF/ON-OPT : 537148631 in a tight loop of 100000000 iterations: BH OFF/ON = local_bh_disable(); local_bh_enable() BH OFF/ON-OPT = local_bh_disable(); local_bh_enable_opt() where local_bh_enable_opt() is the proposed function. 725341486 = ~7.3ns for one iteration. 536967581 = ~5.4ns for one iteration. This is without tracing+lockdep. So I don't need to sell this to peterz and focus one the previously suggested version. Sebastian