Re: 5.7.0 page allocation failure: order:0, mode:0x400d0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 8, 2020 at 3:33 PM Hugh Dickins <hughd@xxxxxxxxxx> wrote:
>
> ChrisM, could you try with the patch below, and see if it works
> for you - I hope it doesn't just give you a blank screen.

I can - however...

> --- 5.7.0/mm/swap_state.c       2020-05-31 16:49:15.000000000 -0700
> +++ linux/mm/swap_state.c       2020-06-08 14:27:38.211813658 -0700
> @@ -23,6 +23,7 @@
>  #include <linux/huge_mm.h>
>
>  #include <asm/pgtable.h>
> +#include "internal.h"

$ git status
On branch test57rc7gcc10001
nothing to commit, working tree clean
$ grep pgtable mm/swap_state.c
$

I'm missing something. And there's more...


>
>  /*
>   * swapper_space is a fiction, retained to simplify the path through
> @@ -418,7 +419,8 @@ struct page *__read_swap_cache_async(swp
>                 /* May fail (-ENOMEM) if XArray node allocation failed. */
>                 __SetPageLocked(new_page);
>                 __SetPageSwapBacked(new_page);
> -               err = add_to_swap_cache(new_page, entry, gfp_mask & GFP_KERNEL);
> +               err = add_to_swap_cache(new_page, entry,
> +                                       gfp_mask & GFP_RECLAIM_MASK);
>                 if (likely(!err)) {
>                         /* Initiate read into locked page */
>                         SetPageWorkingset(new_page);

Neither the line above or below this insertion match what I have.

   424        /*
   425         * The swap entry is ours to swap in. Prepare the new page.
   426         */
   427
   428        __SetPageLocked(page);
   429        __SetPageSwapBacked(page);
   430
   431        /* May fail (-ENOMEM) if XArray node allocation failed. */
   432        if (add_to_swap_cache(page, entry, gfp_mask & GFP_KERNEL)) {
   433            put_swap_page(page, entry);
   434            goto fail_unlock;
   435        }




-- 
Chris Murphy




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux