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

From: Zhaoyang Huang
Date: Mon Feb 05 2024 - 19:44:34 EST


On Tue, Feb 6, 2024 at 6:05 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Mon, Feb 05, 2024 at 05:05:52PM +0800, zhaoyang.huang wrote:
> > +void bio_set_active_ioprio(struct bio *bio)
>
> why does this still exist? i said no.
I supplied two sets of APIs in v8, this one is for iterating the bio.
The reason is bio_add_page/folio could return success without adding a
page which can not be dealt with bio_set_active_ioprio_folio
>
> > +void bio_set_active_ioprio_page(struct bio *bio, struct page *page)
>
> this function should not exist.
>
> > +void bio_set_active_ioprio_folio(struct bio *bio, struct folio *folio)
>
> this is the only one which should. did you even look at the
> implementation of PageWorkingset?
>
> > +extern void bio_set_active_ioprio(struct bio *bio);
> > +extern void bio_set_active_ioprio_folio(struct bio *bio, struct folio *folio);
> > +extern void bio_set_active_ioprio_page(struct bio *bio, struct page *page);
>
> do not mark function prototypes with extern.
>
> > +#ifdef CONFIG_BLK_CONT_ACT_BASED_IOPRIO
> > + /*
> > + * bi_cont_act record total activities of bi_io_vec->pages
> > + */
> > + u64 bi_cont_act;
> > +#endif
>
> what?
>
> look, you just don't understand. i've spent too much time replying to
> you trying to help you. i give up. everything to do with this idea is
> NAKed. go away.
Sorry for the confusion, but I have to find a place to record the
historic bio's activities for bio_set_active_ioprio_folio. There could
be many bio_add_folios before submit_bio