Re: Instability in current -git tree

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

 



On Fri, Jul 13, 2018 at 4:51 PM Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> I'm building a "replace VM_BUG_ON() with proper printk's instead" right now.

Ok, the machine now stays up, and I get messages like

  Removed VM_BUG_ON()!
     pfn c2400 - c25ff
     zone DMA32 DMA
     zone pfn 1000 1

  Removed VM_BUG_ON()!
     pfn c0a00 - c0bff
     zone DMA32 DMA
     zone pfn 1000 1

  Removed VM_BUG_ON()!
     pfn c2200 - c23ff
     zone DMA DMA32
     zone pfn 1 1000

instead.

That's from

+               printk("Removed VM_BUG_ON()!\n");
+               printk("   pfn %lx - %lx\n", page_to_pfn(start_page),
page_to_pfn(end_page));
+               printk("   zone %s %s\n", page_zone(start_page)->name,
page_zone(end_page)->name);
+               printk("   zone pfn %lx %lx\n",
page_zone(start_page)->zone_start_pfn,
page_zone(end_page)->zone_start_pfn);

inside an if() statement that replaced that VM_BUG_ON().

WTF? That's just odd.

But everything seems to work fine, and now it doesn't crash.

But there's something really odd going on wrt page_zone() and/or page_to_pfn().

page_to_pfn() implies this is just regular memory in the 3GB area. It
is likely related to this:

 BIOS-e820: [mem 0x00000000c0b33000-0x00000000c226cfff] reserved
 BIOS-e820: [mem 0x00000000c226d000-0x00000000c227efff] ACPI data
 BIOS-e820: [mem 0x00000000c227f000-0x00000000c2439fff] usable
 BIOS-e820: [mem 0x00000000c243a000-0x00000000c2a61fff] ACPI NVS
 BIOS-e820: [mem 0x00000000c2a62000-0x00000000c32fefff] reserved
 BIOS-e820: [mem 0x00000000c32ff000-0x00000000c32fffff] usable
 BIOS-e820: [mem 0x00000000c3300000-0x00000000c7ffffff] reserved

I dunno. It's a bit odd. I'm not sure I understand that VM_BUG_ON().
Adding Ard (who worked on the memblock_next_valid_pfn() thing not that
long ago) and must have hit this same BUG_ON() because he modified it
not that long ago.

Ard, I triggered the VM_BUG_ON() in mm/page_alloc.c:2016, with a call trace opf

  RIP: move_pfreepages_block()
  Call Trace:
    steal_suitable_fallback
    get_page_from_freelist
    ...

just for some context.

               Linus




[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