Re: [PATCH 1/2] Undo the split of setup_cpu_entry_area

From: Andy Lutomirski
Date: Sat Dec 02 2017 - 08:34:50 EST




> On Dec 2, 2017, at 2:47 AM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
>> On Sat, 2 Dec 2017, Thomas Gleixner wrote:
>>
>>> On Fri, 1 Dec 2017, Andy Lutomirski wrote:
>>>
>>> This is obviously a hack. Either the patch should be adjusted back to
>>> the version I sent or trap_init should forcibly initialize all PMDs
>>> by something like __set_fixmap(..., __mkpte(0)); or however it's spelled.
>>
>> I split it because the whole thing crashed when I kept the loop you had
>> because it tried to allocate stuff. Had no time to figure out why, so I
>> went the lazy way of making it "work".
>
> [ 0.000000] dump_stack+0x85/0xc5
> [ 0.000000] warn_alloc+0x114/0x1c0
> [ 0.000000] __alloc_pages_slowpath+0x1089/0x10d0
> [ 0.000000] __alloc_pages_nodemask+0x2e8/0x370
> [ 0.000000] __get_free_pages+0x10/0x40
> [ 0.000000] kpti_shadow_pagetable_walk+0x2b2/0x3e0
> [ 0.000000] kpti_add_user_map+0xfe/0x330
> [ 0.000000] kpti_add_mapping_cpu_entry+0x5a/0x100
> [ 0.000000] trap_init+0x2c/0x7b
> [ 0.000000] start_kernel+0x24c/0x497
> [ 0.000000] secondary_startup_64+0xa5/0xb0
>
> Cute, isn't it? And then further down the line it triplefaults of course.

Hmm. My second patch should make this go away, though.