Re: [PATCH resend] mm/page_alloc: fix comment is __get_free_pages

From: Andrew Morton
Date: Wed Nov 29 2017 - 16:42:06 EST


On Wed, 29 Nov 2017 17:04:46 +0100 Michal Hocko <mhocko@xxxxxxxxxx> wrote:

> On Mon 27-11-17 12:33:41, Michal Hocko wrote:
> > On Mon 27-11-17 19:09:24, JianKang Chen wrote:
> > > From: Jiankang Chen <chenjiankang1@xxxxxxxxxx>
> > >
> > > __get_free_pages will return an virtual address,
> > > but it is not just 32-bit address, for example a 64-bit system.
> > > And this comment really confuse new bigenner of mm.
> >
> > s@bigenner@beginner@
> >
> > Anyway, do we really need a bug on for this? Has this actually caught
> > any wrong usage? VM_BUG_ON tends to be enabled these days AFAIK and
> > panicking the kernel seems like an over-reaction. If there is a real
> > risk then why don't we simply mask __GFP_HIGHMEM off when calling
> > alloc_pages?
>
> I meant this
> ---
> >From 000bb422fe07adbfa8cd8ed953b18f48647a45d6 Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@xxxxxxxx>
> Date: Wed, 29 Nov 2017 17:02:33 +0100
> Subject: [PATCH] mm: drop VM_BUG_ON from __get_free_pages
>
> There is no real reason to blow up just because the caller doesn't know
> that __get_free_pages cannot return highmem pages. Simply fix that up
> silently. Even if we have some confused users such a fixup will not be
> harmful.

mm... So we have a caller which hopes to be getting highmem pages but
isn't. Caller then proceeds to pointlessly kmap the page and wonders
why it isn't getting as much memory as it would like on 32-bit systems,
etc.

I do think we should help ferret out such bogosity. A WARN_ON_ONCE
would suffice.