Skip to contentSkip to conversation

bcache: remove the redundant judgment on bi_size

PATCH Xifengfei 1 participant 1 message Aug 30, 2021 bcache (block layer cache)

lore
Share & tools
lore

Xifengfei

author
#0 lore raw

Thanks a lot. I understand the purpose.
So is the original judgment process too complicated? Can we judge bi_size directly? This will be more concise

@@ -423,7 +423,7 @@ static bool check_should_bypass(struct cached_dev *dc, struct bio *bio)

        add_sequential(task);
        i->sequential = 0;
 found:
-       if (i->sequential + bio->bi_iter.bi_size > i->sequential)
+       if (!bio->bi_iter.bi_size)
                i->sequential   += bio->bi_iter.bi_size;

        i->last                  = bio_end_sector(bio);

Thanks
Fengfei

-----邮件原件-----
发件人: Coly Li [mailto:[email protected]]
发送时间: 2021年8月29日 15:50
收件人: xifengfei (RD) <[email protected]>
抄送: [email protected]; [email protected]; [email protected] 主题: Re: [PATCH] bcache: remove the redundant judgment on bi_size

Quoted 4 lines · Fengfei Xi

The bi_size is unsigned int type data not less than 0, so we can directly add bi_size without extra judgment

NACK. The check is necessary to avoid redundant and unnecessary memory write.

Coly Li

Quoted 19 lines
---
  drivers/md/bcache/request.c | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)
drivers/md/bcache/request.c +1 -3
index 6d1de889b..2788eec3a 100644
@@ -423,9 +423,7 @@ static bool check_should_bypass(struct cached_dev *dc, struct bio *bio)
  	add_sequential(task);
  	i->sequential = 0;
  found:
-	if (i->sequential + bio->bi_iter.bi_size > i->sequential)
-		i->sequential	+= bio->bi_iter.bi_size;
-
+	i->sequential		+= bio->bi_iter.bi_size;
  	i->last			 = bio_end_sector(bio);
  	i->jiffies		 = jiffies + msecs_to_jiffies(5000);
  	task->sequential_io	 = i->sequential;