Re: [RFC 1/3] headers: add more types to linux/types.h

From: Arnd Bergmann
Date: Tue Dec 07 2021 - 10:45:12 EST


On Tue, Dec 7, 2021 at 4:21 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Tue, Dec 07, 2021 at 04:09:25PM +0100, Arnd Bergmann wrote:
> > +struct list_lru {
> > + struct list_lru_node *node;
> > +#ifdef CONFIG_MEMCG_KMEM
> > + struct list_head list;
> > + int shrinker_id;
> > + bool memcg_aware;
> > +#endif
> > +};
>
> This is the only one that gives me qualms. While there are other
> CONFIG options mentioned in types.h they're properties of the platform,
> eg CONFIG_HAVE_UID16, CONFIG_64BIT, CONFIG_ARCH_DMA_ADDR_T_64BIT, etc.
> I dislike it that changing this CONFIG option is going to result in
> rebuilding the _entire_ kernel. CONFIG_MEMCG_KMEM just isn't that
> central to how everything works.

I included this one because 'struct list_lru' is used in 'struct
super_block', which I move
into 'linux/fs_types.h' in the third patch. It is otherwise not used a
lot though, and
'struct super_block' is rarely much outside of file system code. If we
leave super_block
in fs.h or in a separate header, it should be fine.

Arnd