On Mon, Aug 21, 2023 at 12:46:20PM +0900, Byungchul Park wrote: > @@ -1219,6 +1220,9 @@ static inline bool folio_trylock_flag(struct folio *folio, int bit_nr, > /* How many times do we accept lock stealing from under a waiter? */ > int sysctl_page_lock_unfairness = 5; > > +static struct dept_map __maybe_unused PG_locked_map = DEPT_MAP_INITIALIZER(PG_locked_map, NULL); > +static struct dept_map __maybe_unused PG_writeback_map = DEPT_MAP_INITIALIZER(PG_writeback_map, NULL); Hmm, why are these "maybe unused"? *digs*. Ah. Because sdt_might_sleep_start() becomes a no-op macro if DEPT is disabled. OK, the right way to handle this is #ifdef CONFIG_DEPT #define DEPT_MAP(name) static struct dept_map name = \ DEPT_MAP_INITIALIZER(name, NULL) #else #define DEPT_MAP(name) /* */ #endif And now DEPT takes up no space if disabled. /* */; is a somewhat unusual thing to see, but since this must work at top level, we can't use "do { } while (0)" like we usually do. Given where else this is likely to be used, i don't think it's going to be a problem ...