On 1/19/24 9:41 AM, Jens Axboe wrote: > On 1/19/24 9:34 AM, Matthew Wilcox (Oracle) wrote: >> Jens added unlikely() thinking that this was an error path. It's >> actually just the end of the iteration, so does not warrant an >> unlikely(). > > This is because the previous fix (or my attempt at least) didn't do the > i >= vcnt, it checked for an empty bio instead. Which then definitely > did make it an error/unlikely path, but obviously this one is not. Just out of curiosity, I did some branch profiling on just normal operations of on my box. Of the ~900K times we hit this path, 10% of them ended up in that branch, and 90% of them did not. While it's not an error path, that does seem rather unlikely. Sure, for single entries, it'll be hit 50% of the time, but for most normal IO it'd definitely be less than 50%, and as per above non-scientif profiling, it's around 10%. -- Jens Axboe