From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hugh Dickins Subject: Re: [Bug #11313] Plugging HDMI causes "unable to handle kernel paging request" Date: Thu, 21 Aug 2008 19:56:24 +0100 (BST) Message-ID: References: <48AB5D17.5030600@goop.org> <48AC3FA4.9080603@goop.org> <48ADB041.9040806@goop.org> Mime-Version: 1.0 Return-path: In-Reply-To: <48ADB041.9040806-TSDbQ3PG+2Y@public.gmane.org> Sender: kernel-testers-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: TEXT/PLAIN; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Jeremy Fitzhardinge Cc: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , "Rafael J. Wysocki" , Linux Kernel Mailing List , Kernel Testers List , Ingo Molnar , "H. Peter Anvin" , Yinghai Lu , Jack Steiner , Alan Jenkins On Thu, 21 Aug 2008, Jeremy Fitzhardinge wrote: > > >>>> > Some notes as I pick through all the evidence so far: > > - the crash is specifically because there are reserved bits set in the pmd > - the pmd is b02a00043a6001a3 in both cases Yes, it's corrupt, it should be 800000013a6001a3 > - the vaddr is ffff88013a600000 in the first crash, and > ffff81013a6d1c00 in the second > corresponding to the same large-page pmd mapping of phys page 0x13a600000 > - this maps to e820 entry > BIOS-e820: 0000000100000000 - 0000000140000000 (usable) > - the corresponding boot-time mapping is > > init_memory_mapping > 0100000000 - 0140000000 page 2M > kernel direct mapping tables up to 140000000 @ b000-11000 > ^^^^^^^^^^ > addr 100000000 reusing pgd 201880 0000000000202063 > last_map_addr: 140000000 end: 140000000 > > !!! and the memory allocated for this pagetable is: > #5 [0000008000 - 000000b000] PGTABLE ==> [0000008000 - 000000b000] > #6 [000000b000 - 000000c000] PGTABLE ==> [000000b000 - 000000c000] > ^^^^^^^^^^^^^^^^^^^^^^^ > > IOW, it's mapping using b000-11000, but it has only reserved b000 - c000 > > Also, this is right in the middle of the ISA area, which seems risky. > <<<< > > Bug #11237 shows the same symptom, so I'm pretty confident they're dups now. [ Sorry, I'm replying to #11313 even though we think it's dup of #11237. ] Haven't you got that backwards? My reading is that find_early_table_space set aside b000-11000 for the worst case possible, but actually only b000-c000 was needed (because most of the tables were already there): no problem.