Re: [PATCH 1/7] mm/hugetlb: add folio support to hugetlb specific flag macros

From: Sidhartha Kumar
Date: Tue Aug 30 2022 - 14:10:03 EST




On 8/29/22 8:33 PM, Matthew Wilcox wrote:
On Mon, Aug 29, 2022 at 04:00:08PM -0700, Sidhartha Kumar wrote:
#define TESTHPAGEFLAG(uname, flname) \
+static __always_inline \
+int folio_test_hugetlb_##flname(struct folio *folio) \
One change I made was to have folio_test_foo() return bool instead of
int. It helps the compiler really understand what's going on. Maybe
some humans too ;-)


I went with returning an int to stay consistent with the page version
of the macros which return an int. I'm fine with changing it to return
a bool.

+ { void **private = &folio->private; \
+ return test_bit(HPG_##flname, (void *)((unsigned long)private)); \
I've made this tricky for you by making folio->private a void * instead
of the unsigned long in page. Would this look better as ...

{ \
void *private = &folio->private; \
return test_bit(HPG_##flname, private); \

perhaps?

Ya this looks much better and passes the tests, will add to v2.