2019-09-10 11:18:53

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH] mm: add dummy can_do_mlock() helper

On Mon 09-09-19 22:41:40, Arnd Bergmann wrote:
> On kernels without CONFIG_MMU, we get a link error for the siw
> driver:
>
> drivers/infiniband/sw/siw/siw_mem.o: In function `siw_umem_get':
> siw_mem.c:(.text+0x4c8): undefined reference to `can_do_mlock'
>
> This is probably not the only driver that needs the function
> and could otherwise build correctly without CONFIG_MMU, so
> add a dummy variant that always returns false.
>
> Fixes: 2251334dcac9 ("rdma/siw: application buffer management")
> Suggested-by: Jason Gunthorpe <[email protected]>
> Signed-off-by: Arnd Bergmann <[email protected]>

Makes sense
Acked-by: Michal Hocko <[email protected]>

but IB on nonMMU? Whut? Is there any HW that actually supports this?
Just wondering...

> ---
> include/linux/mm.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 66f296181bcc..cc292273e6ba 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -1424,7 +1424,11 @@ extern void pagefault_out_of_memory(void);
>
> extern void show_free_areas(unsigned int flags, nodemask_t *nodemask);
>
> +#ifdef CONFIG_MMU
> extern bool can_do_mlock(void);
> +#else
> +static inline bool can_do_mlock(void) { return false; }
> +#endif
> extern int user_shm_lock(size_t, struct user_struct *);
> extern void user_shm_unlock(size_t, struct user_struct *);
>
> --
> 2.20.0
>

--
Michal Hocko
SUSE Labs


2019-09-10 18:49:59

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] mm: add dummy can_do_mlock() helper

On Tue, Sep 10, 2019 at 9:10 AM Michal Hocko <[email protected]> wrote:

> but IB on nonMMU? Whut? Is there any HW that actually supports this?
> Just wondering...

Probably not, but I can't think of a good reason to completely disable
it in Kconfig.
Almost everything can be built without MMU at the moment, but the subset
of things that are actually useful is hard to know.

Arnd

2019-09-10 18:52:27

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] mm: add dummy can_do_mlock() helper

On Tue, Sep 10, 2019 at 09:10:30AM +0200, Michal Hocko wrote:
> On Mon 09-09-19 22:41:40, Arnd Bergmann wrote:
> > On kernels without CONFIG_MMU, we get a link error for the siw
> > driver:
> >
> > drivers/infiniband/sw/siw/siw_mem.o: In function `siw_umem_get':
> > siw_mem.c:(.text+0x4c8): undefined reference to `can_do_mlock'
> >
> > This is probably not the only driver that needs the function
> > and could otherwise build correctly without CONFIG_MMU, so
> > add a dummy variant that always returns false.
> >
> > Fixes: 2251334dcac9 ("rdma/siw: application buffer management")
> > Suggested-by: Jason Gunthorpe <[email protected]>
> > Signed-off-by: Arnd Bergmann <[email protected]>
>
> Makes sense
> Acked-by: Michal Hocko <[email protected]>
>
> but IB on nonMMU? Whut? Is there any HW that actually supports this?
> Just wondering...

I've never heard of anyone doing this configuration, and I don't
really know much about nommu to comment if it could even potentially
work or not..

Jason