Re: [PATCH v2 1/3] mm: convert memory block states (MEM_*) macros to enum
Lorenzo Stoakes <[email protected]> Thu, 30 Oct 2025 10:52:46 +0000
| Newsgroups | org.kernel.vger.linux-debuggers,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Oct 29, 2025 at 07:56:28PM +0000, Israel Batista wrote: > Converting the MEM_* constants from macros to an enum ensures that their > values will be correctly emitted in the debug symbols, making it easier > to trace the meaning of each value when debugging with tools such as > drgn, without the need to hard-code the values. > > Since the values are mutually exclusive and they are not exposed directly to > userspace, I also dropped the misleading pattern (1<<X) that made it look like > they were combinable flags. > > Signed-off-by: Israel Batista <[email protected]> LGTM, so: Reviewed-by: Lorenzo Stoakes <[email protected]> > --- > include/linux/memory.h | 22 ++++++++++++---------- > 1 file changed, 12 insertions(+), 10 deletions(-) > > diff --git a/include/linux/memory.h b/include/linux/memory.h > index 0c214256216f..f4e358477c6a 100644 > --- a/include/linux/memory.h > +++ b/include/linux/memory.h > @@ -64,6 +64,18 @@ struct memory_group { > }; > }; > > +enum memory_block_state { > + /* These states are exposed to userspace as text strings in sysfs */ > + MEM_ONLINE, /* exposed to userspace */ > + MEM_GOING_OFFLINE, /* exposed to userspace */ > + MEM_OFFLINE, /* exposed to userspace */ > + MEM_GOING_ONLINE, > + MEM_CANCEL_ONLINE, > + MEM_CANCEL_OFFLINE, > + MEM_PREPARE_ONLINE, > + MEM_FINISH_OFFLINE, > +}; > + > struct memory_block { > unsigned long start_section_nr; > unsigned long state; /* serialized by the dev->lock */ > @@ -89,16 +101,6 @@ int arch_get_memory_phys_device(unsigned long start_pfn); > unsigned long memory_block_size_bytes(void); > int set_memory_block_size_order(unsigned int order); > > -/* These states are exposed to userspace as text strings in sysfs */ > -#define MEM_ONLINE (1<<0) /* exposed to userspace */ > -#define MEM_GOING_OFFLINE (1<<1) /* exposed to userspace */ > -#define MEM_OFFLINE (1<<2) /* exposed to userspace */ > -#define MEM_GOING_ONLINE (1<<3) > -#define MEM_CANCEL_ONLINE (1<<4) > -#define MEM_CANCEL_OFFLINE (1<<5) > -#define MEM_PREPARE_ONLINE (1<<6) > -#define MEM_FINISH_OFFLINE (1<<7) > - > struct memory_notify { > /* > * The altmap_start_pfn and altmap_nr_pages fields are designated for > -- > 2.51.0 >