Message ID | 20250212025843.80283-2-liuye@kylinos.cn (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: Optimize folio_order. | expand |
On 2/12/2025 8:28 AM, Liu Ye wrote: > __folio_order is the same as folio_order, remove __folio_order and then > just include mm.h and use folio_order directly. > > Signed-off-by: Liu Ye <liuye@kylinos.cn> > --- > include/linux/folio_queue.h | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/include/linux/folio_queue.h b/include/linux/folio_queue.h > index 4d3f8074c137..45ad2408a80c 100644 > --- a/include/linux/folio_queue.h > +++ b/include/linux/folio_queue.h > @@ -15,6 +15,7 @@ > #define _LINUX_FOLIO_QUEUE_H > > #include <linux/pagevec.h> > +#include <linux/mm.h> > > /* > * Segment in a queue of running buffers. Each segment can hold a number of > @@ -216,13 +217,6 @@ static inline void folioq_unmark3(struct folio_queue *folioq, unsigned int slot) > clear_bit(slot, &folioq->marks3); > } > > -static inline unsigned int __folio_order(struct folio *folio) > -{ > - if (!folio_test_large(folio)) > - return 0; > - return folio->_flags_1 & 0xff; > -} > - > /** > * folioq_append: Add a folio to a folio queue segment > * @folioq: The segment to add to > @@ -241,7 +235,7 @@ static inline unsigned int folioq_append(struct folio_queue *folioq, struct foli > unsigned int slot = folioq->vec.nr++; > > folioq->vec.folios[slot] = folio; > - folioq->orders[slot] = __folio_order(folio); > + folioq->orders[slot] = folio_order(folio); > return slot; > } > > @@ -263,7 +257,7 @@ static inline unsigned int folioq_append_mark(struct folio_queue *folioq, struct > unsigned int slot = folioq->vec.nr++; > > folioq->vec.folios[slot] = folio; > - folioq->orders[slot] = __folio_order(folio); > + folioq->orders[slot] = folio_order(folio); > folioq_mark(folioq, slot); > return slot; > } Reviewed-by: Shivank Garg <shivankg@amd.com> Thanks, Shivank
On 12/02/25 8:28 am, Liu Ye wrote: > __folio_order is the same as folio_order, remove __folio_order and then > just include mm.h and use folio_order directly. > > Signed-off-by: Liu Ye <liuye@kylinos.cn> > --- > include/linux/folio_queue.h | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/include/linux/folio_queue.h b/include/linux/folio_queue.h > index 4d3f8074c137..45ad2408a80c 100644 > --- a/include/linux/folio_queue.h > +++ b/include/linux/folio_queue.h > @@ -15,6 +15,7 @@ > #define _LINUX_FOLIO_QUEUE_H > > #include <linux/pagevec.h> > +#include <linux/mm.h> > > /* > * Segment in a queue of running buffers. Each segment can hold a number of > @@ -216,13 +217,6 @@ static inline void folioq_unmark3(struct folio_queue *folioq, unsigned int slot) > clear_bit(slot, &folioq->marks3); > } > > -static inline unsigned int __folio_order(struct folio *folio) > -{ > - if (!folio_test_large(folio)) > - return 0; > - return folio->_flags_1 & 0xff; > -} > - > /** > * folioq_append: Add a folio to a folio queue segment > * @folioq: The segment to add to > @@ -241,7 +235,7 @@ static inline unsigned int folioq_append(struct folio_queue *folioq, struct foli > unsigned int slot = folioq->vec.nr++; > > folioq->vec.folios[slot] = folio; > - folioq->orders[slot] = __folio_order(folio); > + folioq->orders[slot] = folio_order(folio); > return slot; > } > > @@ -263,7 +257,7 @@ static inline unsigned int folioq_append_mark(struct folio_queue *folioq, struct > unsigned int slot = folioq->vec.nr++; > > folioq->vec.folios[slot] = folio; > - folioq->orders[slot] = __folio_order(folio); > + folioq->orders[slot] = folio_order(folio); > folioq_mark(folioq, slot); > return slot; > } This looks like a reasonable change to make, since it avoids code duplication. Please consider: Reviewed-by: Dev Jain <dev.jain@arm.com>
Liu Ye <liuye@kylinos.cn> wrote: > __folio_order is the same as folio_order, remove __folio_order and then > just include mm.h and use folio_order directly. > > Signed-off-by: Liu Ye <liuye@kylinos.cn> Acked-by: David Howells <dhowells@redhat.com>
diff --git a/include/linux/folio_queue.h b/include/linux/folio_queue.h index 4d3f8074c137..45ad2408a80c 100644 --- a/include/linux/folio_queue.h +++ b/include/linux/folio_queue.h @@ -15,6 +15,7 @@ #define _LINUX_FOLIO_QUEUE_H #include <linux/pagevec.h> +#include <linux/mm.h> /* * Segment in a queue of running buffers. Each segment can hold a number of @@ -216,13 +217,6 @@ static inline void folioq_unmark3(struct folio_queue *folioq, unsigned int slot) clear_bit(slot, &folioq->marks3); } -static inline unsigned int __folio_order(struct folio *folio) -{ - if (!folio_test_large(folio)) - return 0; - return folio->_flags_1 & 0xff; -} - /** * folioq_append: Add a folio to a folio queue segment * @folioq: The segment to add to @@ -241,7 +235,7 @@ static inline unsigned int folioq_append(struct folio_queue *folioq, struct foli unsigned int slot = folioq->vec.nr++; folioq->vec.folios[slot] = folio; - folioq->orders[slot] = __folio_order(folio); + folioq->orders[slot] = folio_order(folio); return slot; } @@ -263,7 +257,7 @@ static inline unsigned int folioq_append_mark(struct folio_queue *folioq, struct unsigned int slot = folioq->vec.nr++; folioq->vec.folios[slot] = folio; - folioq->orders[slot] = __folio_order(folio); + folioq->orders[slot] = folio_order(folio); folioq_mark(folioq, slot); return slot; }
__folio_order is the same as folio_order, remove __folio_order and then just include mm.h and use folio_order directly. Signed-off-by: Liu Ye <liuye@kylinos.cn> --- include/linux/folio_queue.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)