On 29/01/2021 02:00, Ming Lei wrote: > On Thu, Jan 28, 2021 at 12:27:39PM +0000, Pavel Begunkov wrote: >> On 28/01/2021 12:10, Ming Lei wrote: >>> On Tue, Jan 05, 2021 at 07:43:38PM +0000, Pavel Begunkov wrote: >>> .bi_vcnt is 0 for fast cloned bio, so the above check may become true >>> when real nr_segment is > queue_max_segments(), especially in case that >>> max segments limit is small and segment size is big. >> >> I guess we can skip the fast path for them (i.e. bi_vcnt == 0) > > But bi_vcnt can't represent real segment number, which can be bigger or > less than .bi_vcnt. Sounds like "go slow path on bi_vcnt==0" won't work. Ok, I need to go look what is the real purpose of .bi_vcnt > >> I'm curious, why it's 0 but not the real number? > > fast-cloned bio shares bvec table of original bio, so it doesn't have > .bi_vcnt. Got it, thanks -- Pavel Begunkov