Re: [PATCHv3 1/1] block: introduce content activity based ioprio

From: Zhaoyang Huang
Date: Thu Jan 25 2024 - 02:52:42 EST


On Thu, Jan 25, 2024 at 3:40 PM Damien Le Moal <dlemoal@xxxxxxxxxx> wrote:
>
> On 1/25/24 16:19, zhaoyang.huang wrote:
> > From: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx>
> >
> > Currently, request's ioprio are set via task's schedule priority(when no
> > blkcg configured), which has high priority tasks possess the privilege on
> > both of CPU and IO scheduling.
> > This commit works as a hint of original policy by promoting the request ioprio
> > based on the page/folio's activity. The original idea comes from LRU_GEN
> > which provides more precised folio activity than before. This commit try
> > to adjust the request's ioprio when certain part of its folios are hot,
> > which indicate that this request carry important contents and need be
> > scheduled ealier.
> >
> > This commit is verified on a v6.6 6GB RAM android14 system via 4 test cases
> > by changing the bio_add_page/folio API in ext4 and f2fs.
>
> And as mentioned already by Chrisoph and Jens, why don't you just simply set
> bio->bi_ioprio to the value you want before calling submit_bio() in these file
> systems ? Why all the hacking of the priority code for that ? That is not
> justified at all.
>
> Furthermore, the activity things reduces the ioprio hint bits to the bare
> minimum 3 bits necessary for command duration limits. Not great. But if you
> simply set the prio class based on your activity algorithm, you do not need to
> change all that.
That is because bio->io_prio changes during bio grows with adding
different activity pages in. I have to wrap these into an API which
has both of fs and block be transparent to the process.
>
> Note: Your patch is full of whitespace changes.
Sorry, I double checked the source code and the patch with
checkpatch.pl again, no whitespace found, don't know why
>
> --
> Damien Le Moal
> Western Digital Research
>