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%.