Re: [GIT PULL] x86/uapi for 3.8

2012-12-18 Thread Jan Beulich
>>> On 17.12.12 at 18:15, "H. Peter Anvin"  wrote:
> On 12/17/2012 09:03 AM, Jan Beulich wrote:
> On 17.12.12 at 17:39, "H. Peter Anvin"  wrote:
>>> Right, I think you nailed this one.  This patch copies PTEs from the
>>> kernel PTEs and thus they will have the global bit set.  It obviously
>>> makes no sense to *copy* PTEs from the kernel and yet leaving the global
>>> bit set, which means there are two ways of fixing it: either sharing
>>> page tables and use the cr4.pge off/on trick that Jan mentioned -- this
>>> would also be my preference -- and the other is to copy the PTEs but
>>> strip the global bit, which has the advantage that the actual kernel
>>> mappings will survive.
>> 
>> PTE copying is only one half of it. I think additionally L4 entries
>> get copied for the 1:1 mapping, and you can't strip the global
>> bits there without allocating separate page tables.
>> 
> 
> The point right now is that it *does* allocate separate page tables, but

My point was that this isn't really the case: You only considered
the ioremap() adjustment of the respective patch, but the first
of the two loops the same patch adds to setup_real_mode() does
in fact share page tables for the identity mapping of RAM.

Matthew - that loop is, btw, off by one, i.e. should be

   for (i = 0; i <= pgd_index((max_pfn - 1) << PAGE_SHIFT); i++) {

But of course this, at least for the moment, is only a theoretical
issue.

> doesn't take advantage of it.  What I say is I think we should take the
> flush for the advantage of sharing page tables.  If we are allocating
> new page tables then we should of course make them non-global.
> 
> Do we know how often this gets called?  I presume the most common case
> is when we have an EFI RTC?  Unless there is a use case where this
> happens a lot sharing seems much easier...

When running on EFI any access to the real time clock will go
that route (i.e. there is no such thing as EFI without EFI RTC).

But then again there of course shouldn't be frequent accesses
to the RTC in the first place (which otherwise would quickly
become a bottleneck with the CMOS RTC as well).

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-18 Thread Jan Beulich
 On 17.12.12 at 18:15, H. Peter Anvin h...@linux.intel.com wrote:
 On 12/17/2012 09:03 AM, Jan Beulich wrote:
 On 17.12.12 at 17:39, H. Peter Anvin h...@linux.intel.com wrote:
 Right, I think you nailed this one.  This patch copies PTEs from the
 kernel PTEs and thus they will have the global bit set.  It obviously
 makes no sense to *copy* PTEs from the kernel and yet leaving the global
 bit set, which means there are two ways of fixing it: either sharing
 page tables and use the cr4.pge off/on trick that Jan mentioned -- this
 would also be my preference -- and the other is to copy the PTEs but
 strip the global bit, which has the advantage that the actual kernel
 mappings will survive.
 
 PTE copying is only one half of it. I think additionally L4 entries
 get copied for the 1:1 mapping, and you can't strip the global
 bits there without allocating separate page tables.
 
 
 The point right now is that it *does* allocate separate page tables, but

My point was that this isn't really the case: You only considered
the ioremap() adjustment of the respective patch, but the first
of the two loops the same patch adds to setup_real_mode() does
in fact share page tables for the identity mapping of RAM.

Matthew - that loop is, btw, off by one, i.e. should be

   for (i = 0; i = pgd_index((max_pfn - 1)  PAGE_SHIFT); i++) {

But of course this, at least for the moment, is only a theoretical
issue.

 doesn't take advantage of it.  What I say is I think we should take the
 flush for the advantage of sharing page tables.  If we are allocating
 new page tables then we should of course make them non-global.
 
 Do we know how often this gets called?  I presume the most common case
 is when we have an EFI RTC?  Unless there is a use case where this
 happens a lot sharing seems much easier...

When running on EFI any access to the real time clock will go
that route (i.e. there is no such thing as EFI without EFI RTC).

But then again there of course shouldn't be frequent accesses
to the RTC in the first place (which otherwise would quickly
become a bottleneck with the CMOS RTC as well).

Jan

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread H. Peter Anvin
On 12/17/2012 09:03 AM, Jan Beulich wrote:
 On 17.12.12 at 17:39, "H. Peter Anvin"  wrote:
>> Right, I think you nailed this one.  This patch copies PTEs from the
>> kernel PTEs and thus they will have the global bit set.  It obviously
>> makes no sense to *copy* PTEs from the kernel and yet leaving the global
>> bit set, which means there are two ways of fixing it: either sharing
>> page tables and use the cr4.pge off/on trick that Jan mentioned -- this
>> would also be my preference -- and the other is to copy the PTEs but
>> strip the global bit, which has the advantage that the actual kernel
>> mappings will survive.
> 
> PTE copying is only one half of it. I think additionally L4 entries
> get copied for the 1:1 mapping, and you can't strip the global
> bits there without allocating separate page tables.
> 

The point right now is that it *does* allocate separate page tables, but
doesn't take advantage of it.  What I say is I think we should take the
flush for the advantage of sharing page tables.  If we are allocating
new page tables then we should of course make them non-global.

Do we know how often this gets called?  I presume the most common case
is when we have an EFI RTC?  Unless there is a use case where this
happens a lot sharing seems much easier...

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Jan Beulich
>>> On 17.12.12 at 17:39, "H. Peter Anvin"  wrote:
> Right, I think you nailed this one.  This patch copies PTEs from the
> kernel PTEs and thus they will have the global bit set.  It obviously
> makes no sense to *copy* PTEs from the kernel and yet leaving the global
> bit set, which means there are two ways of fixing it: either sharing
> page tables and use the cr4.pge off/on trick that Jan mentioned -- this
> would also be my preference -- and the other is to copy the PTEs but
> strip the global bit, which has the advantage that the actual kernel
> mappings will survive.

PTE copying is only one half of it. I think additionally L4 entries
get copied for the 1:1 mapping, and you can't strip the global
bits there without allocating separate page tables.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread H. Peter Anvin
On 12/17/2012 08:00 AM, Jan Beulich wrote:
 On 17.12.12 at 16:44, Linus Torvalds  wrote:
>> On Mon, Dec 17, 2012 at 1:04 AM, Jan Beulich  wrote:
>>>
>>> How about this being caused by using the same lower level
>>> page table entries that swapper_pg_dir uses, namely including
>>> the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
>>> CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
>>> would need to also flip CR4.PGE afaict.
>>
>> Now *this* is the kind of issue that I could easily see causing major
>> corruption, but be subtle enough to not happen reliably. Coming back
>> from the EFI calls (or going into them) with stale TLB contents due to
>> global pages could explain things.
>>
>> Good thinking. That efi call code should use flush_tlb_kernel() (or
>> __flush_tlb_global() if it wants to avoid any paravirtualization
>> stuff) if it has global pages in different places from the normal
>> kernel map. Does it really have that?
> 
> I don't see it having such. But I also don't think flush_tlb_kernel()
> is the right mechanism here. I'd rather suggest clearing CR4.PGE in
> the "prelog", an restore it in the epilog. Para-virtual environments
> shouldn't be directly interfacing with EFI runtime code anyway.
> 

Right, I think you nailed this one.  This patch copies PTEs from the
kernel PTEs and thus they will have the global bit set.  It obviously
makes no sense to *copy* PTEs from the kernel and yet leaving the global
bit set, which means there are two ways of fixing it: either sharing
page tables and use the cr4.pge off/on trick that Jan mentioned -- this
would also be my preference -- and the other is to copy the PTEs but
strip the global bit, which has the advantage that the actual kernel
mappings will survive.

One idea in this is to change ioremap() on x86-64 to instead of
allocating address space dynamically to always use the PAGE_OFFSET
mapping address, even for I/O devices.  Then the trampoline page table
can simply include two sets of pointers into the kernel page tables --
with, again, the caveat that a global page flush is absolutely mandatory.

Linus, Ingo, do you have any preferences here?

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Jan Beulich
>>> On 17.12.12 at 16:44, Linus Torvalds  wrote:
> On Mon, Dec 17, 2012 at 1:04 AM, Jan Beulich  wrote:
>>
>> How about this being caused by using the same lower level
>> page table entries that swapper_pg_dir uses, namely including
>> the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
>> CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
>> would need to also flip CR4.PGE afaict.
> 
> Now *this* is the kind of issue that I could easily see causing major
> corruption, but be subtle enough to not happen reliably. Coming back
> from the EFI calls (or going into them) with stale TLB contents due to
> global pages could explain things.
> 
> Good thinking. That efi call code should use flush_tlb_kernel() (or
> __flush_tlb_global() if it wants to avoid any paravirtualization
> stuff) if it has global pages in different places from the normal
> kernel map. Does it really have that?

I don't see it having such. But I also don't think flush_tlb_kernel()
is the right mechanism here. I'd rather suggest clearing CR4.PGE in
the "prelog", an restore it in the epilog. Para-virtual environments
shouldn't be directly interfacing with EFI runtime code anyway.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Linus Torvalds
On Mon, Dec 17, 2012 at 1:04 AM, Jan Beulich  wrote:
>
> How about this being caused by using the same lower level
> page table entries that swapper_pg_dir uses, namely including
> the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
> CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
> would need to also flip CR4.PGE afaict.

Now *this* is the kind of issue that I could easily see causing major
corruption, but be subtle enough to not happen reliably. Coming back
from the EFI calls (or going into them) with stale TLB contents due to
global pages could explain things.

Good thinking. That efi call code should use flush_tlb_kernel() (or
__flush_tlb_global() if it wants to avoid any paravirtualization
stuff) if it has global pages in different places from the normal
kernel map. Does it really have that?

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Jan Beulich
>>> On 15.12.12 at 19:35, Linus Torvalds  wrote:
> On Sat, Dec 15, 2012 at 8:33 AM, Markus Trippelsdorf
>  wrote:
>> On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
>>>
>>> Ho humm. Anybody else see anything strange?
>>
>> Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
>>
>>  BUG: unable to handle kernel NULL pointer dereference at   (null)
>>
>> This is caused by commit 53b87cf088e2 ("x86, mm: Include the
>> entire kernel memory map in trampoline_pgd")
> 
> Hmm. That reverts cleanly, and the result boots fine for me. And the
> commit looks like exactly the kind of thing that could result in
> problems with exactly the right memory layout, so it could explain why
> the bisect failed and some kernels randomly worked for me and others
> didn't.
> 
> So this at least looks like a very possible candidate.
> 
> Does anybody have an explanation for the problem?

How about this being caused by using the same lower level
page table entries that swapper_pg_dir uses, namely including
the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
would need to also flip CR4.PGE afaict.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread H. Peter Anvin
On 12/17/2012 08:00 AM, Jan Beulich wrote:
 On 17.12.12 at 16:44, Linus Torvalds torva...@linux-foundation.org wrote:
 On Mon, Dec 17, 2012 at 1:04 AM, Jan Beulich jbeul...@suse.com wrote:

 How about this being caused by using the same lower level
 page table entries that swapper_pg_dir uses, namely including
 the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
 CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
 would need to also flip CR4.PGE afaict.

 Now *this* is the kind of issue that I could easily see causing major
 corruption, but be subtle enough to not happen reliably. Coming back
 from the EFI calls (or going into them) with stale TLB contents due to
 global pages could explain things.

 Good thinking. That efi call code should use flush_tlb_kernel() (or
 __flush_tlb_global() if it wants to avoid any paravirtualization
 stuff) if it has global pages in different places from the normal
 kernel map. Does it really have that?
 
 I don't see it having such. But I also don't think flush_tlb_kernel()
 is the right mechanism here. I'd rather suggest clearing CR4.PGE in
 the prelog, an restore it in the epilog. Para-virtual environments
 shouldn't be directly interfacing with EFI runtime code anyway.
 

Right, I think you nailed this one.  This patch copies PTEs from the
kernel PTEs and thus they will have the global bit set.  It obviously
makes no sense to *copy* PTEs from the kernel and yet leaving the global
bit set, which means there are two ways of fixing it: either sharing
page tables and use the cr4.pge off/on trick that Jan mentioned -- this
would also be my preference -- and the other is to copy the PTEs but
strip the global bit, which has the advantage that the actual kernel
mappings will survive.

One idea in this is to change ioremap() on x86-64 to instead of
allocating address space dynamically to always use the PAGE_OFFSET
mapping address, even for I/O devices.  Then the trampoline page table
can simply include two sets of pointers into the kernel page tables --
with, again, the caveat that a global page flush is absolutely mandatory.

Linus, Ingo, do you have any preferences here?

-hpa


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Jan Beulich
 On 17.12.12 at 17:39, H. Peter Anvin h...@linux.intel.com wrote:
 Right, I think you nailed this one.  This patch copies PTEs from the
 kernel PTEs and thus they will have the global bit set.  It obviously
 makes no sense to *copy* PTEs from the kernel and yet leaving the global
 bit set, which means there are two ways of fixing it: either sharing
 page tables and use the cr4.pge off/on trick that Jan mentioned -- this
 would also be my preference -- and the other is to copy the PTEs but
 strip the global bit, which has the advantage that the actual kernel
 mappings will survive.

PTE copying is only one half of it. I think additionally L4 entries
get copied for the 1:1 mapping, and you can't strip the global
bits there without allocating separate page tables.

Jan

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread H. Peter Anvin
On 12/17/2012 09:03 AM, Jan Beulich wrote:
 On 17.12.12 at 17:39, H. Peter Anvin h...@linux.intel.com wrote:
 Right, I think you nailed this one.  This patch copies PTEs from the
 kernel PTEs and thus they will have the global bit set.  It obviously
 makes no sense to *copy* PTEs from the kernel and yet leaving the global
 bit set, which means there are two ways of fixing it: either sharing
 page tables and use the cr4.pge off/on trick that Jan mentioned -- this
 would also be my preference -- and the other is to copy the PTEs but
 strip the global bit, which has the advantage that the actual kernel
 mappings will survive.
 
 PTE copying is only one half of it. I think additionally L4 entries
 get copied for the 1:1 mapping, and you can't strip the global
 bits there without allocating separate page tables.
 

The point right now is that it *does* allocate separate page tables, but
doesn't take advantage of it.  What I say is I think we should take the
flush for the advantage of sharing page tables.  If we are allocating
new page tables then we should of course make them non-global.

Do we know how often this gets called?  I presume the most common case
is when we have an EFI RTC?  Unless there is a use case where this
happens a lot sharing seems much easier...

-hpa


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Jan Beulich
 On 15.12.12 at 19:35, Linus Torvalds torva...@linux-foundation.org wrote:
 On Sat, Dec 15, 2012 at 8:33 AM, Markus Trippelsdorf
 mar...@trippelsdorf.de wrote:
 On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:

 Ho humm. Anybody else see anything strange?

 Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):

  BUG: unable to handle kernel NULL pointer dereference at   (null)

 This is caused by commit 53b87cf088e2 (x86, mm: Include the
 entire kernel memory map in trampoline_pgd)
 
 Hmm. That reverts cleanly, and the result boots fine for me. And the
 commit looks like exactly the kind of thing that could result in
 problems with exactly the right memory layout, so it could explain why
 the bisect failed and some kernels randomly worked for me and others
 didn't.
 
 So this at least looks like a very possible candidate.
 
 Does anybody have an explanation for the problem?

How about this being caused by using the same lower level
page table entries that swapper_pg_dir uses, namely including
the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
would need to also flip CR4.PGE afaict.

Jan

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Linus Torvalds
On Mon, Dec 17, 2012 at 1:04 AM, Jan Beulich jbeul...@suse.com wrote:

 How about this being caused by using the same lower level
 page table entries that swapper_pg_dir uses, namely including
 the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
 CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
 would need to also flip CR4.PGE afaict.

Now *this* is the kind of issue that I could easily see causing major
corruption, but be subtle enough to not happen reliably. Coming back
from the EFI calls (or going into them) with stale TLB contents due to
global pages could explain things.

Good thinking. That efi call code should use flush_tlb_kernel() (or
__flush_tlb_global() if it wants to avoid any paravirtualization
stuff) if it has global pages in different places from the normal
kernel map. Does it really have that?

Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-17 Thread Jan Beulich
 On 17.12.12 at 16:44, Linus Torvalds torva...@linux-foundation.org wrote:
 On Mon, Dec 17, 2012 at 1:04 AM, Jan Beulich jbeul...@suse.com wrote:

 How about this being caused by using the same lower level
 page table entries that swapper_pg_dir uses, namely including
 the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write
 CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but
 would need to also flip CR4.PGE afaict.
 
 Now *this* is the kind of issue that I could easily see causing major
 corruption, but be subtle enough to not happen reliably. Coming back
 from the EFI calls (or going into them) with stale TLB contents due to
 global pages could explain things.
 
 Good thinking. That efi call code should use flush_tlb_kernel() (or
 __flush_tlb_global() if it wants to avoid any paravirtualization
 stuff) if it has global pages in different places from the normal
 kernel map. Does it really have that?

I don't see it having such. But I also don't think flush_tlb_kernel()
is the right mechanism here. I'd rather suggest clearing CR4.PGE in
the prelog, an restore it in the epilog. Para-virtual environments
shouldn't be directly interfacing with EFI runtime code anyway.

Jan

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Markus Trippelsdorf
On 2012.12.16 at 14:07 -0800, Linus Torvalds wrote:
> On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
>  wrote:
> >
> > So I'll test it and see, and hope for the best,
> 
> No such luck. Applying your patch and the reverting the revert of the
> EFI date thing results in the same oops in find_vma() from udev that I
> had before.
> 
> So the patch is still scrogged, and it is *not* ready to even be put
> in some "next merge window" pile.

Hm, I just double checked my logs and it looks like I've booted the
wrong kernel. The new patch fails for me, too. 
Sorry for the confusion.

-- 
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Linus Torvalds
On Sun, Dec 16, 2012 at 2:40 PM, Matt Fleming  wrote:
>
> Linus have you got a stacktrace for the oops (and maybe even a dmesg)? I
> suspect it won't tell us much, but any/all info we can gather will help.

Sadly, it starts scrolling away pretty quickly, and it really wasn't
very useful. None of the traces contained any of the new code.

The backtrace was something like "find_vma()" called by "do_munmap()".

I do have a phone picture of an earlier oops, which was similar. In
that case, the oops happened in "unmap_single_vma()", with the call
trace being

  unmap_vmas
  exit_mmap
  mmput
  do_exit
  do_group_exit
  get_signal_to_deliver
  do_signal
  do_notify_resume
  retint_signal

which looks rather similar: it's some kind of nasty vma list
corruption. The main difference being that the exit of the process
happened as a result of a signal rather than just a plain exit()
system call. Which is probably in turn the result of some corruption
of user-space data structures.

In some other cases, I've got quickly scrolling stuff that I couldn't
even guess at, or just a hung system at early boot.

> At this point, I'm wondering if insert_identity_mapping() is trashing
> valid mappings.

It does feel like *major* data corruption. As in "not just a bitflip
or two", but "megabytes of data is wrong".

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sun, 2012-12-16 at 14:07 -0800, Linus Torvalds wrote:
> On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
>  wrote:
> >
> > So I'll test it and see, and hope for the best,
> 
> No such luck. Applying your patch and the reverting the revert of the
> EFI date thing results in the same oops in find_vma() from udev that I
> had before.
> 
> So the patch is still scrogged, and it is *not* ready to even be put
> in some "next merge window" pile.

Linus have you got a stacktrace for the oops (and maybe even a dmesg)? I
suspect it won't tell us much, but any/all info we can gather will help.

At this point, I'm wondering if insert_identity_mapping() is trashing
valid mappings.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread H. Peter Anvin
On 12/16/2012 02:07 PM, Linus Torvalds wrote:
> On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
>  wrote:
>>
>> So I'll test it and see, and hope for the best,
> 
> No such luck. Applying your patch and the reverting the revert of the
> EFI date thing results in the same oops in find_vma() from udev that I
> had before.
> 
> So the patch is still scrogged, and it is *not* ready to even be put
> in some "next merge window" pile.
> 

No, we need to get to the bottom with the problem.

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Linus Torvalds
On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
 wrote:
>
> So I'll test it and see, and hope for the best,

No such luck. Applying your patch and the reverting the revert of the
EFI date thing results in the same oops in find_vma() from udev that I
had before.

So the patch is still scrogged, and it is *not* ready to even be put
in some "next merge window" pile.

   Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Linus Torvalds
On Sun, Dec 16, 2012 at 6:54 AM, Matt Fleming  wrote:
>
> At least we now know the problem wasn't caused by a memory map issue,
> just my buggy patch.
>
> Linus, Peter, how should we proceed from here? Since the commit and its
> dependants have been reverted should we punt for now and try again next
> merge window?

Hmm. Since we're several days away from the merge window closing, I
think I can apply your fixed patch and then undo the revert. But I'll
need to feel confident that it works for me too, because I absolutely
detest having kernels that I can't use for development myself (which
is why I _very_ aggressively revert stuff that I notice myself: if
it's a problem reported by some random user, I try to give developers
time to fix it if they are responding to the problem report, but if
it's a problem that means that I can't use the current -git tree
myself, I tend to revert much more aggressively).

So I'll test it and see, and hope for the best,

   Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sun, 2012-12-16 at 14:25 +0100, Markus Trippelsdorf wrote:
> Matt, your patch fixes the problem for me. Thanks.

That's great! Thanks for testing so quickly.

At least we now know the problem wasn't caused by a memory map issue,
just my buggy patch.

Linus, Peter, how should we proceed from here? Since the commit and its
dependants have been reverted should we punt for now and try again next
merge window?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Markus Trippelsdorf
On 2012.12.16 at 12:43 +, Matt Fleming wrote:
> On Sat, 2012-12-15 at 17:35 +0100, Markus Trippelsdorf wrote:
> > On 2012.12.15 at 17:33 +0100, Markus Trippelsdorf wrote:
> > > On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
> > > > On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
> > > >  wrote:
> > > > > I was wrong. It's not the x86 UAPI split, it's the DT pull. More 
> > > > > people added.
> > > > 
> > > > Looking at the merge (just in case it could have done something odd),
> > > > I'm starting to worry that this is some nasty heisenbug, and my
> > > > bisection is not trustworthy at all. Because the DT pull sure as heck
> > > > doesn't look like a likely candidate for anything either.
> > > > 
> > > > Ho humm. Anybody else see anything strange?
> > > 
> > > Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
> > >  
> > >  BUG: unable to handle kernel NULL pointer dereference at   (null)
> > > 
> > > This is caused by:
> > > 
> > > commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
> > > Author: Matt Fleming 
> > > Date:   Fri Sep 7 18:23:51 2012 +0100
> > > 
> > > x86, mm: Include the entire kernel memory map in trampoline_pgd
> > > 
> > > There are various pieces of code in arch/x86 that require a page table
> > > with an identity mapping. Make trampoline_pgd a proper kernel page
> > > table, it currently only includes the kernel text and module space
> > > mapping.
> > > 
> > > One new feature of trampoline_pgd is that it now has mappings for the
> > > physical I/O device addresses, which are inserted at ioremap()
> > > time. Some broken implementations of EFI firmware require these
> > > mappings to always be around.
> > > 
> > > Acked-by: Jan Beulich 
> > > Signed-off-by: Matt Fleming 
> > > 
> > 
> > Adding Matt to CC.
> 
> Markus, could you please send me your full dmesg, or if possible the
> dmesgs from both a working and non-working kernel.
> 
> After looking at your memory map layout, nothing immediately jumps out.
> 
> Could you try this revised patch and see if things work better? It's the
> only thing I noticed that looked wrong with the original patch (apart
> from the >512G ram bug that Yinghai pointed out).

Matt, your patch fixes the problem for me. Thanks.

-- 
Markus
Linux version 3.7.0-08451-g2b83188-dirty (markus@x4) (gcc version 4.8.0 
20121214 (experimental) (GCC) ) #143 SMP Sat Dec 15 22:34:34 CET 2012
Command line: root=PARTUUID=1E3384D0-CAE6-41BB-8CD6-4F640164EFD7 
init=/sbin/minit fbcon=rotate:3 drm_kms_helper.poll=0 quiet
KERNEL supported cpus:
  AMD AuthenticAMD
e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0100-0x0009fbff] usable
BIOS-e820: [mem 0x0009fc00-0x0009] reserved
BIOS-e820: [mem 0x000e6000-0x000f] reserved
BIOS-e820: [mem 0x0010-0xdfe8] usable
BIOS-e820: [mem 0xdfe9-0xdfea7fff] ACPI data
BIOS-e820: [mem 0xdfea8000-0xdfec] ACPI NVS
BIOS-e820: [mem 0xdfed-0xdfef] reserved
BIOS-e820: [mem 0xfff0-0x] reserved
BIOS-e820: [mem 0x0001-0x00021fff] usable
NX (Execute Disable) protection: active
DMI present.
DMI: System manufacturer System Product Name/M4A78T-E, BIOS 350304/13/2011
e820: update [mem 0x-0x] usable ==> reserved
e820: remove [mem 0x000a-0x000f] usable
e820: last_pfn = 0x22 max_arch_pfn = 0x4
MTRR default type: uncachable
MTRR fixed ranges enabled:
  0-9 write-back
  A-E uncachable
  F-F write-protect
MTRR variable ranges enabled:
  0 base  mask 8000 write-back
  1 base 8000 mask C000 write-back
  2 base C000 mask E000 write-back
  3 base F000 mask F800 write-combining
  4 disabled
  5 disabled
  6 disabled
  7 disabled
TOM2: 00022000 aka 8704M
x86 PAT enabled: cpu 0, old 0x7010600070106, new 0x7010600070106
e820: last_pfn = 0xdfe90 max_arch_pfn = 0x4
initial memory mapped: [mem 0x-0x1fff]
Base memory trampoline at [88099000] 99000 size 24576
Using GB pages for direct mapping
init_memory_mapping: [mem 0x-0xdfe8]
 [mem 0x-0xbfff] page 1G
 [mem 0xc000-0xdfdf] page 2M
 [mem 0xdfe0-0xdfe8] page 4k
kernel direct mapping tables up to 0xdfe8 @ [mem 0x1fffd000-0x1fff]
init_memory_mapping: [mem 0x1-0x21fff]
 [mem 0x1-0x1] page 1G
 [mem 0x2-0x21fff] page 2M
kernel direct mapping tables up to 0x21fff @ [mem 0xdfe8e000-0xdfe8]
ACPI: RSDP 000fb880 00024 (v02 ACPIAM)
ACPI: XSDT dfe90100 0005C (v01 041311 XSDT1656 20110413 MSFT 0097)
ACPI: FACP dfe90290 000F4 (v03 041311 FACP1656 20110413 MSFT 0097)
ACPI BIOS Bug: Warning: Optional FADT field Pm2ControlBlock has zero address or 
length: 

Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sat, 2012-12-15 at 15:37 -0800, Linus Torvalds wrote:
> And why do we have to call the get-time calls so early? Couldn't we
> move them later and avoid all the crazy "let's create silly magical
> page tables just for the idiotic EFI problems".

Unfortunately not, because this patch series fixes the case where some
ASUS EFI machines ignore parts of the memory map that we invalidate with
SetVirtualAddressMap() - so the firmware is accessing mappings for
devices after we explicitly tell it they're no longer valid.

It's possible to trigger this broken behaviour at whatever point we
interact with the firmware.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sat, 2012-12-15 at 17:35 +0100, Markus Trippelsdorf wrote:
> On 2012.12.15 at 17:33 +0100, Markus Trippelsdorf wrote:
> > On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
> > > On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
> > >  wrote:
> > > > I was wrong. It's not the x86 UAPI split, it's the DT pull. More people 
> > > > added.
> > > 
> > > Looking at the merge (just in case it could have done something odd),
> > > I'm starting to worry that this is some nasty heisenbug, and my
> > > bisection is not trustworthy at all. Because the DT pull sure as heck
> > > doesn't look like a likely candidate for anything either.
> > > 
> > > Ho humm. Anybody else see anything strange?
> > 
> > Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
> >  
> >  BUG: unable to handle kernel NULL pointer dereference at   (null)
> > 
> > This is caused by:
> > 
> > commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
> > Author: Matt Fleming 
> > Date:   Fri Sep 7 18:23:51 2012 +0100
> > 
> > x86, mm: Include the entire kernel memory map in trampoline_pgd
> > 
> > There are various pieces of code in arch/x86 that require a page table
> > with an identity mapping. Make trampoline_pgd a proper kernel page
> > table, it currently only includes the kernel text and module space
> > mapping.
> > 
> > One new feature of trampoline_pgd is that it now has mappings for the
> > physical I/O device addresses, which are inserted at ioremap()
> > time. Some broken implementations of EFI firmware require these
> > mappings to always be around.
> > 
> > Acked-by: Jan Beulich 
> > Signed-off-by: Matt Fleming 
> > 
> 
> Adding Matt to CC.

Markus, could you please send me your full dmesg, or if possible the
dmesgs from both a working and non-working kernel.

After looking at your memory map layout, nothing immediately jumps out.

Could you try this revised patch and see if things work better? It's the
only thing I noticed that looked wrong with the original patch (apart
from the >512G ram bug that Yinghai pointed out).

---

>From dbc2a0bc1f3ea6c4df591e691916801e5aac85e3 Mon Sep 17 00:00:00 2001
From: Matt Fleming 
Date: Fri, 7 Sep 2012 18:23:51 +0100
Subject: [PATCH] x86, mm: Include the entire kernel memory map in
 trampoline_pgd

There are various pieces of code in arch/x86 that require a page table
with an identity mapping. Make trampoline_pgd a proper kernel page
table, it currently only includes the kernel text and module space
mapping.

One new feature of trampoline_pgd is that it now has mappings for the
physical I/O device addresses, which are inserted at ioremap()
time. Some broken implementations of EFI firmware require these
mappings to always be around.

Acked-by: Jan Beulich 
Signed-off-by: Matt Fleming 
---

v2: Ensure we update 'paddr' as we work our way through the pgtables.

 arch/x86/mm/init_64.c|   9 +++-
 arch/x86/mm/ioremap.c| 111 +++
 arch/x86/realmode/init.c |  17 +++-
 3 files changed, 134 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 2b6b4a3..fd4404f 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -108,13 +108,13 @@ void sync_global_pgds(unsigned long start, unsigned long 
end)
for (address = start; address <= end; address += PGDIR_SIZE) {
const pgd_t *pgd_ref = pgd_offset_k(address);
struct page *page;
+   pgd_t *pgd;
 
if (pgd_none(*pgd_ref))
continue;
 
spin_lock(_lock);
list_for_each_entry(page, _list, lru) {
-   pgd_t *pgd;
spinlock_t *pgt_lock;
 
pgd = (pgd_t *)page_address(page) + pgd_index(address);
@@ -130,6 +130,13 @@ void sync_global_pgds(unsigned long start, unsigned long 
end)
 
spin_unlock(pgt_lock);
}
+
+   pgd = __va(real_mode_header->trampoline_pgd);
+   pgd += pgd_index(address);
+
+   if (pgd_none(*pgd))
+   set_pgd(pgd, *pgd_ref);
+
spin_unlock(_lock);
}
 }
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 78fe3f1..353b64b 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -50,6 +50,113 @@ int ioremap_change_attr(unsigned long vaddr, unsigned long 
size,
return err;
 }
 
+#ifdef CONFIG_X86_64
+static void ident_pte_range(unsigned long paddr, unsigned long vaddr,
+   pmd_t *ppmd, pmd_t *vpmd, unsigned long end)
+{
+   pte_t *ppte = pte_offset_kernel(ppmd, paddr);
+   pte_t *vpte = pte_offset_kernel(vpmd, vaddr);
+
+   do {
+   set_pte(ppte, *vpte);
+   } while (ppte++, vpte++, vaddr += PAGE_SIZE, vaddr != end);
+}
+
+static int ident_pmd_range(unsigned long paddr, unsigned long vaddr,
+  

Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sat, 2012-12-15 at 17:35 +0100, Markus Trippelsdorf wrote:
 On 2012.12.15 at 17:33 +0100, Markus Trippelsdorf wrote:
  On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
   On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
   torva...@linux-foundation.org wrote:
I was wrong. It's not the x86 UAPI split, it's the DT pull. More people 
added.
   
   Looking at the merge (just in case it could have done something odd),
   I'm starting to worry that this is some nasty heisenbug, and my
   bisection is not trustworthy at all. Because the DT pull sure as heck
   doesn't look like a likely candidate for anything either.
   
   Ho humm. Anybody else see anything strange?
  
  Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
   
   BUG: unable to handle kernel NULL pointer dereference at   (null)
  
  This is caused by:
  
  commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
  Author: Matt Fleming matt.flem...@intel.com
  Date:   Fri Sep 7 18:23:51 2012 +0100
  
  x86, mm: Include the entire kernel memory map in trampoline_pgd
  
  There are various pieces of code in arch/x86 that require a page table
  with an identity mapping. Make trampoline_pgd a proper kernel page
  table, it currently only includes the kernel text and module space
  mapping.
  
  One new feature of trampoline_pgd is that it now has mappings for the
  physical I/O device addresses, which are inserted at ioremap()
  time. Some broken implementations of EFI firmware require these
  mappings to always be around.
  
  Acked-by: Jan Beulich jbeul...@suse.com
  Signed-off-by: Matt Fleming matt.flem...@intel.com
  
 
 Adding Matt to CC.

Markus, could you please send me your full dmesg, or if possible the
dmesgs from both a working and non-working kernel.

After looking at your memory map layout, nothing immediately jumps out.

Could you try this revised patch and see if things work better? It's the
only thing I noticed that looked wrong with the original patch (apart
from the 512G ram bug that Yinghai pointed out).

---

From dbc2a0bc1f3ea6c4df591e691916801e5aac85e3 Mon Sep 17 00:00:00 2001
From: Matt Fleming matt.flem...@intel.com
Date: Fri, 7 Sep 2012 18:23:51 +0100
Subject: [PATCH] x86, mm: Include the entire kernel memory map in
 trampoline_pgd

There are various pieces of code in arch/x86 that require a page table
with an identity mapping. Make trampoline_pgd a proper kernel page
table, it currently only includes the kernel text and module space
mapping.

One new feature of trampoline_pgd is that it now has mappings for the
physical I/O device addresses, which are inserted at ioremap()
time. Some broken implementations of EFI firmware require these
mappings to always be around.

Acked-by: Jan Beulich jbeul...@suse.com
Signed-off-by: Matt Fleming matt.flem...@intel.com
---

v2: Ensure we update 'paddr' as we work our way through the pgtables.

 arch/x86/mm/init_64.c|   9 +++-
 arch/x86/mm/ioremap.c| 111 +++
 arch/x86/realmode/init.c |  17 +++-
 3 files changed, 134 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 2b6b4a3..fd4404f 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -108,13 +108,13 @@ void sync_global_pgds(unsigned long start, unsigned long 
end)
for (address = start; address = end; address += PGDIR_SIZE) {
const pgd_t *pgd_ref = pgd_offset_k(address);
struct page *page;
+   pgd_t *pgd;
 
if (pgd_none(*pgd_ref))
continue;
 
spin_lock(pgd_lock);
list_for_each_entry(page, pgd_list, lru) {
-   pgd_t *pgd;
spinlock_t *pgt_lock;
 
pgd = (pgd_t *)page_address(page) + pgd_index(address);
@@ -130,6 +130,13 @@ void sync_global_pgds(unsigned long start, unsigned long 
end)
 
spin_unlock(pgt_lock);
}
+
+   pgd = __va(real_mode_header-trampoline_pgd);
+   pgd += pgd_index(address);
+
+   if (pgd_none(*pgd))
+   set_pgd(pgd, *pgd_ref);
+
spin_unlock(pgd_lock);
}
 }
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 78fe3f1..353b64b 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -50,6 +50,113 @@ int ioremap_change_attr(unsigned long vaddr, unsigned long 
size,
return err;
 }
 
+#ifdef CONFIG_X86_64
+static void ident_pte_range(unsigned long paddr, unsigned long vaddr,
+   pmd_t *ppmd, pmd_t *vpmd, unsigned long end)
+{
+   pte_t *ppte = pte_offset_kernel(ppmd, paddr);
+   pte_t *vpte = pte_offset_kernel(vpmd, vaddr);
+
+   do {
+   set_pte(ppte, *vpte);
+   } while (ppte++, vpte++, vaddr += PAGE_SIZE, vaddr != end);
+}
+
+static int 

Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sat, 2012-12-15 at 15:37 -0800, Linus Torvalds wrote:
 And why do we have to call the get-time calls so early? Couldn't we
 move them later and avoid all the crazy let's create silly magical
 page tables just for the idiotic EFI problems.

Unfortunately not, because this patch series fixes the case where some
ASUS EFI machines ignore parts of the memory map that we invalidate with
SetVirtualAddressMap() - so the firmware is accessing mappings for
devices after we explicitly tell it they're no longer valid.

It's possible to trigger this broken behaviour at whatever point we
interact with the firmware.

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Markus Trippelsdorf
On 2012.12.16 at 12:43 +, Matt Fleming wrote:
 On Sat, 2012-12-15 at 17:35 +0100, Markus Trippelsdorf wrote:
  On 2012.12.15 at 17:33 +0100, Markus Trippelsdorf wrote:
   On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
torva...@linux-foundation.org wrote:
 I was wrong. It's not the x86 UAPI split, it's the DT pull. More 
 people added.

Looking at the merge (just in case it could have done something odd),
I'm starting to worry that this is some nasty heisenbug, and my
bisection is not trustworthy at all. Because the DT pull sure as heck
doesn't look like a likely candidate for anything either.

Ho humm. Anybody else see anything strange?
   
   Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):

BUG: unable to handle kernel NULL pointer dereference at   (null)
   
   This is caused by:
   
   commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
   Author: Matt Fleming matt.flem...@intel.com
   Date:   Fri Sep 7 18:23:51 2012 +0100
   
   x86, mm: Include the entire kernel memory map in trampoline_pgd
   
   There are various pieces of code in arch/x86 that require a page table
   with an identity mapping. Make trampoline_pgd a proper kernel page
   table, it currently only includes the kernel text and module space
   mapping.
   
   One new feature of trampoline_pgd is that it now has mappings for the
   physical I/O device addresses, which are inserted at ioremap()
   time. Some broken implementations of EFI firmware require these
   mappings to always be around.
   
   Acked-by: Jan Beulich jbeul...@suse.com
   Signed-off-by: Matt Fleming matt.flem...@intel.com
   
  
  Adding Matt to CC.
 
 Markus, could you please send me your full dmesg, or if possible the
 dmesgs from both a working and non-working kernel.
 
 After looking at your memory map layout, nothing immediately jumps out.
 
 Could you try this revised patch and see if things work better? It's the
 only thing I noticed that looked wrong with the original patch (apart
 from the 512G ram bug that Yinghai pointed out).

Matt, your patch fixes the problem for me. Thanks.

-- 
Markus
Linux version 3.7.0-08451-g2b83188-dirty (markus@x4) (gcc version 4.8.0 
20121214 (experimental) (GCC) ) #143 SMP Sat Dec 15 22:34:34 CET 2012
Command line: root=PARTUUID=1E3384D0-CAE6-41BB-8CD6-4F640164EFD7 
init=/sbin/minit fbcon=rotate:3 drm_kms_helper.poll=0 quiet
KERNEL supported cpus:
  AMD AuthenticAMD
e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0100-0x0009fbff] usable
BIOS-e820: [mem 0x0009fc00-0x0009] reserved
BIOS-e820: [mem 0x000e6000-0x000f] reserved
BIOS-e820: [mem 0x0010-0xdfe8] usable
BIOS-e820: [mem 0xdfe9-0xdfea7fff] ACPI data
BIOS-e820: [mem 0xdfea8000-0xdfec] ACPI NVS
BIOS-e820: [mem 0xdfed-0xdfef] reserved
BIOS-e820: [mem 0xfff0-0x] reserved
BIOS-e820: [mem 0x0001-0x00021fff] usable
NX (Execute Disable) protection: active
DMI present.
DMI: System manufacturer System Product Name/M4A78T-E, BIOS 350304/13/2011
e820: update [mem 0x-0x] usable == reserved
e820: remove [mem 0x000a-0x000f] usable
e820: last_pfn = 0x22 max_arch_pfn = 0x4
MTRR default type: uncachable
MTRR fixed ranges enabled:
  0-9 write-back
  A-E uncachable
  F-F write-protect
MTRR variable ranges enabled:
  0 base  mask 8000 write-back
  1 base 8000 mask C000 write-back
  2 base C000 mask E000 write-back
  3 base F000 mask F800 write-combining
  4 disabled
  5 disabled
  6 disabled
  7 disabled
TOM2: 00022000 aka 8704M
x86 PAT enabled: cpu 0, old 0x7010600070106, new 0x7010600070106
e820: last_pfn = 0xdfe90 max_arch_pfn = 0x4
initial memory mapped: [mem 0x-0x1fff]
Base memory trampoline at [88099000] 99000 size 24576
Using GB pages for direct mapping
init_memory_mapping: [mem 0x-0xdfe8]
 [mem 0x-0xbfff] page 1G
 [mem 0xc000-0xdfdf] page 2M
 [mem 0xdfe0-0xdfe8] page 4k
kernel direct mapping tables up to 0xdfe8 @ [mem 0x1fffd000-0x1fff]
init_memory_mapping: [mem 0x1-0x21fff]
 [mem 0x1-0x1] page 1G
 [mem 0x2-0x21fff] page 2M
kernel direct mapping tables up to 0x21fff @ [mem 0xdfe8e000-0xdfe8]
ACPI: RSDP 000fb880 00024 (v02 ACPIAM)
ACPI: XSDT dfe90100 0005C (v01 041311 XSDT1656 20110413 MSFT 0097)
ACPI: FACP dfe90290 000F4 (v03 041311 FACP1656 20110413 MSFT 0097)
ACPI BIOS Bug: Warning: Optional FADT field Pm2ControlBlock has zero address or 
length: 0x/0x1 (20121018/tbfadt-598)
ACPI: DSDT 

Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sun, 2012-12-16 at 14:25 +0100, Markus Trippelsdorf wrote:
 Matt, your patch fixes the problem for me. Thanks.

That's great! Thanks for testing so quickly.

At least we now know the problem wasn't caused by a memory map issue,
just my buggy patch.

Linus, Peter, how should we proceed from here? Since the commit and its
dependants have been reverted should we punt for now and try again next
merge window?

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Linus Torvalds
On Sun, Dec 16, 2012 at 6:54 AM, Matt Fleming matt.flem...@intel.com wrote:

 At least we now know the problem wasn't caused by a memory map issue,
 just my buggy patch.

 Linus, Peter, how should we proceed from here? Since the commit and its
 dependants have been reverted should we punt for now and try again next
 merge window?

Hmm. Since we're several days away from the merge window closing, I
think I can apply your fixed patch and then undo the revert. But I'll
need to feel confident that it works for me too, because I absolutely
detest having kernels that I can't use for development myself (which
is why I _very_ aggressively revert stuff that I notice myself: if
it's a problem reported by some random user, I try to give developers
time to fix it if they are responding to the problem report, but if
it's a problem that means that I can't use the current -git tree
myself, I tend to revert much more aggressively).

So I'll test it and see, and hope for the best,

   Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Linus Torvalds
On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
torva...@linux-foundation.org wrote:

 So I'll test it and see, and hope for the best,

No such luck. Applying your patch and the reverting the revert of the
EFI date thing results in the same oops in find_vma() from udev that I
had before.

So the patch is still scrogged, and it is *not* ready to even be put
in some next merge window pile.

   Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread H. Peter Anvin
On 12/16/2012 02:07 PM, Linus Torvalds wrote:
 On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
 torva...@linux-foundation.org wrote:

 So I'll test it and see, and hope for the best,
 
 No such luck. Applying your patch and the reverting the revert of the
 EFI date thing results in the same oops in find_vma() from udev that I
 had before.
 
 So the patch is still scrogged, and it is *not* ready to even be put
 in some next merge window pile.
 

No, we need to get to the bottom with the problem.

-hpa


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Matt Fleming
On Sun, 2012-12-16 at 14:07 -0800, Linus Torvalds wrote:
 On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
 torva...@linux-foundation.org wrote:
 
  So I'll test it and see, and hope for the best,
 
 No such luck. Applying your patch and the reverting the revert of the
 EFI date thing results in the same oops in find_vma() from udev that I
 had before.
 
 So the patch is still scrogged, and it is *not* ready to even be put
 in some next merge window pile.

Linus have you got a stacktrace for the oops (and maybe even a dmesg)? I
suspect it won't tell us much, but any/all info we can gather will help.

At this point, I'm wondering if insert_identity_mapping() is trashing
valid mappings.

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Linus Torvalds
On Sun, Dec 16, 2012 at 2:40 PM, Matt Fleming matt.flem...@intel.com wrote:

 Linus have you got a stacktrace for the oops (and maybe even a dmesg)? I
 suspect it won't tell us much, but any/all info we can gather will help.

Sadly, it starts scrolling away pretty quickly, and it really wasn't
very useful. None of the traces contained any of the new code.

The backtrace was something like find_vma() called by do_munmap().

I do have a phone picture of an earlier oops, which was similar. In
that case, the oops happened in unmap_single_vma(), with the call
trace being

  unmap_vmas
  exit_mmap
  mmput
  do_exit
  do_group_exit
  get_signal_to_deliver
  do_signal
  do_notify_resume
  retint_signal

which looks rather similar: it's some kind of nasty vma list
corruption. The main difference being that the exit of the process
happened as a result of a signal rather than just a plain exit()
system call. Which is probably in turn the result of some corruption
of user-space data structures.

In some other cases, I've got quickly scrolling stuff that I couldn't
even guess at, or just a hung system at early boot.

 At this point, I'm wondering if insert_identity_mapping() is trashing
 valid mappings.

It does feel like *major* data corruption. As in not just a bitflip
or two, but megabytes of data is wrong.

Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-16 Thread Markus Trippelsdorf
On 2012.12.16 at 14:07 -0800, Linus Torvalds wrote:
 On Sun, Dec 16, 2012 at 12:12 PM, Linus Torvalds
 torva...@linux-foundation.org wrote:
 
  So I'll test it and see, and hope for the best,
 
 No such luck. Applying your patch and the reverting the revert of the
 EFI date thing results in the same oops in find_vma() from udev that I
 had before.
 
 So the patch is still scrogged, and it is *not* ready to even be put
 in some next merge window pile.

Hm, I just double checked my logs and it looks like I've booted the
wrong kernel. The new patch fails for me, too. 
Sorry for the confusion.

-- 
Markus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin

On 12/15/2012 01:37 PM, Dave Jones wrote:

On Sat, Dec 15, 2012 at 11:58:00AM -0800, Linus Torvalds wrote:

  > It might also be that it causes some massive corruption at boot time,
  > but it then requires that that particular memory is actually used. So
  > maybe it's not so much about the memory map except indirectly.

I wonder if this might explain the XFS corruption I've been seeing
the last couple days.  Won't be able to get at the affected laptop
until Monday to find out..



It seems somewhat unlikely, but not implausible, since the trampoline 
page table is only in use for very brief moments and usually not very 
often at all, but if it is just completely screwed and we do fandango on 
memory... yes we could have problems.


-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin


Anybody see anything else?

And why do we have to call the get-time calls so early? Couldn't we
move them later and avoid all the crazy "let's create silly magical
page tables just for the idiotic EFI problems".



We need them anyway... actually the whole point of that patch is to try 
to *remove* silly magical page tables just for EFI and use another set 
of silly magical page tables we need anyway (for S3 resume, SMP bootup 
and so on.)  Reducing the sheer number of silly magical page tables has 
been a priority for some time -- I want to get it down to one if we can.


-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 2:05 PM, Yinghai Lu  wrote:
> On Sat, Dec 15, 2012 at 1:06 PM, Linus Torvalds 
>  wrote:
>>
>> I've reverted the commit.
>
> more than that, 3 commits just after that commit should be reverted at
> the same time.
> they all depend on that commit.

Thanks for pointing that out, and just to make sure I verified that on
my Macbook Air which does use EFI. It was broken by the single revert,
and fixed by the additional three reverts.

Sadly:

> and first checking of that commit, it would have problem with system
> more than 512g ...

That particular bug isn't the cause for my non-EFI problems, since I
don't have that kind of memory..

So there is something else going on in addition to the bug you found.
But good eye.

Anybody see anything else?

And why do we have to call the get-time calls so early? Couldn't we
move them later and avoid all the crazy "let's create silly magical
page tables just for the idiotic EFI problems".

And while I'm asking, why the f*ck did Intel do that crazy EFI thing
in the first place again?

  Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Yinghai Lu
On Sat, Dec 15, 2012 at 1:06 PM, Linus Torvalds
 wrote:
> On Sat, Dec 15, 2012 at 1:04 PM, Markus Trippelsdorf
>  wrote:
>>
>> So I wonder if the following simple patch might be enough?
>> It fixes the issue for me at least.
>
> Not enough.
>
> It presumably fixes the issue for you by hiding the problem. But if
> you were to boot a kernel with EFI support, it would re-surface.
> Including in any distro kernel that obviously will include EFI support
> in order to handle the generic case.
>
> I've reverted the commit.

more than that, 3 commits just after that commit should be reverted at
the same time.
they all depend on that commit.

and first checking of that commit, it would have problem with system
more than 512g ...

static int insert_identity_mapping(resource_size_t paddr, unsigned long vaddr,
   unsigned long size)
...
 pgd_t *vpgd, *ppgd;
 ppgd = __va(real_mode_header->trampoline_pgd) + pgd_index(paddr);

it missed one . we should use

ppgd = (pgd_t *)__va(real_mode_header->trampoline_pgd) + pgd_index(paddr);

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Dave Jones
On Sat, Dec 15, 2012 at 11:58:00AM -0800, Linus Torvalds wrote:

 > It might also be that it causes some massive corruption at boot time,
 > but it then requires that that particular memory is actually used. So
 > maybe it's not so much about the memory map except indirectly.

I wonder if this might explain the XFS corruption I've been seeing
the last couple days.  Won't be able to get at the affected laptop
until Monday to find out..

Dave

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin

On 12/15/2012 01:06 PM, Linus Torvalds wrote:

On Sat, Dec 15, 2012 at 1:04 PM, Markus Trippelsdorf
 wrote:


So I wonder if the following simple patch might be enough?
It fixes the issue for me at least.


Not enough.

It presumably fixes the issue for you by hiding the problem. But if
you were to boot a kernel with EFI support, it would re-surface.
Including in any distro kernel that obviously will include EFI support
in order to handle the generic case.

I've reverted the commit.



Right... we'll work on fixing it properly.

-hpa


--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 1:04 PM, Markus Trippelsdorf
 wrote:
>
> So I wonder if the following simple patch might be enough?
> It fixes the issue for me at least.

Not enough.

It presumably fixes the issue for you by hiding the problem. But if
you were to boot a kernel with EFI support, it would re-surface.
Including in any distro kernel that obviously will include EFI support
in order to handle the generic case.

I've reverted the commit.

  Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.15 at 11:58 -0800, Linus Torvalds wrote:
> On Sat, Dec 15, 2012 at 11:41 AM, H. Peter Anvin  wrote:
> >
> > Matt is on vacation, and I'm partly offline for the weekend, but that
> > definitely seems suspicious.  Do we have a memory map of the affected
> > machine(s)?
> 
> 
> but as mentioned, there's bound to be some particular kernel layout
> that triggers this, because I definitely ran a few kernels with that
> commit in it without problems (and clearly other people are too).
> Looking at my boot log, I had successful boots with both 6a57d104c8cb
> and c2714334b944, which contains that commit.
> 
> It might also be that it causes some massive corruption at boot time,
> but it then requires that that particular memory is actually used. So
> maybe it's not so much about the memory map except indirectly.
> 
> But that commit *does* look a lot more likely than the things I looked at.

The commit message says that only some broken implementations of EFI
firmware require the mapping for the physical I/O device addresses.

So I wonder if the following simple patch might be enough?
It fixes the issue for me at least.

diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index e190f7b..402e4ca 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -50,7 +50,7 @@ int ioremap_change_attr(unsigned long vaddr, unsigned long 
size,
return err;
 }
 
-#ifdef CONFIG_X86_64
+#ifdef CONFIG_EFI
 static void ident_pte_range(unsigned long paddr, unsigned long vaddr,
pmd_t *ppmd, pmd_t *vpmd, unsigned long end)
 {

-- 
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.15 at 11:58 -0800, Linus Torvalds wrote:
> On Sat, Dec 15, 2012 at 11:41 AM, H. Peter Anvin  wrote:
> >
> > Matt is on vacation, and I'm partly offline for the weekend, but that
> > definitely seems suspicious.  Do we have a memory map of the affected
> > machine(s)?
> 
> Here's mine.
> 
>   e820: BIOS-provided physical RAM map:
>   BIOS-e820: [mem 0x-0x0009e7ff] usable
>   BIOS-e820: [mem 0x0009e800-0x0009] reserved
>   BIOS-e820: [mem 0x000e4000-0x000f] reserved
>   BIOS-e820: [mem 0x0010-0xbdc6] usable
>   BIOS-e820: [mem 0xbdc7-0xbdc87fff] ACPI data
>   BIOS-e820: [mem 0xbdc88000-0xbdcdbfff] ACPI NVS
>   BIOS-e820: [mem 0xbdcdc000-0xbfff] reserved
>   BIOS-e820: [mem 0xfee0-0xfee00fff] reserved
>   BIOS-e820: [mem 0xff80-0x] reserved
>   BIOS-e820: [mem 0x0001-0x0001fbff] usable
>   BIOS-e820: [mem 0x0001fc00-0x0001] reserved
>   BIOS-e820: [mem 0x0002-0x00023fff] usable
> 
> but as mentioned, there's bound to be some particular kernel layout
> that triggers this, because I definitely ran a few kernels with that
> commit in it without problems (and clearly other people are too).
> Looking at my boot log, I had successful boots with both 6a57d104c8cb
> and c2714334b944, which contains that commit.
> 
> It might also be that it causes some massive corruption at boot time,
> but it then requires that that particular memory is actually used. So
> maybe it's not so much about the memory map except indirectly.
> 
> But that commit *does* look a lot more likely than the things I looked at.
> 
> Markus, how did you happen to pinpoint that particular commit? Is it
> entirely repeatable for you?

Yes, although at one point during bisecting the BUG disappeared and the
screen went simply black during boot and X never started. I marked this
as bad and continued the bisection.

Here is my mem-map:

e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0100-0x0009fbff] usable
BIOS-e820: [mem 0x0009fc00-0x0009] reserved
BIOS-e820: [mem 0x000e6000-0x000f] reserved
BIOS-e820: [mem 0x0010-0xdfe8] usable
BIOS-e820: [mem 0xdfe9-0xdfea7fff] ACPI data
BIOS-e820: [mem 0xdfea8000-0xdfec] ACPI NVS
BIOS-e820: [mem 0xdfed-0xdfef] reserved
BIOS-e820: [mem 0xfff0-0x] reserved
BIOS-e820: [mem 0x0001-0x00021fff] usable

-- 
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 11:41 AM, H. Peter Anvin  wrote:
>
> Matt is on vacation, and I'm partly offline for the weekend, but that
> definitely seems suspicious.  Do we have a memory map of the affected
> machine(s)?

Here's mine.

  e820: BIOS-provided physical RAM map:
  BIOS-e820: [mem 0x-0x0009e7ff] usable
  BIOS-e820: [mem 0x0009e800-0x0009] reserved
  BIOS-e820: [mem 0x000e4000-0x000f] reserved
  BIOS-e820: [mem 0x0010-0xbdc6] usable
  BIOS-e820: [mem 0xbdc7-0xbdc87fff] ACPI data
  BIOS-e820: [mem 0xbdc88000-0xbdcdbfff] ACPI NVS
  BIOS-e820: [mem 0xbdcdc000-0xbfff] reserved
  BIOS-e820: [mem 0xfee0-0xfee00fff] reserved
  BIOS-e820: [mem 0xff80-0x] reserved
  BIOS-e820: [mem 0x0001-0x0001fbff] usable
  BIOS-e820: [mem 0x0001fc00-0x0001] reserved
  BIOS-e820: [mem 0x0002-0x00023fff] usable

but as mentioned, there's bound to be some particular kernel layout
that triggers this, because I definitely ran a few kernels with that
commit in it without problems (and clearly other people are too).
Looking at my boot log, I had successful boots with both 6a57d104c8cb
and c2714334b944, which contains that commit.

It might also be that it causes some massive corruption at boot time,
but it then requires that that particular memory is actually used. So
maybe it's not so much about the memory map except indirectly.

But that commit *does* look a lot more likely than the things I looked at.

Markus, how did you happen to pinpoint that particular commit? Is it
entirely repeatable for you?

  Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin
On 12/15/2012 10:35 AM, Linus Torvalds wrote:
> On Sat, Dec 15, 2012 at 8:33 AM, Markus Trippelsdorf
>  wrote:
>> On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
>>>
>>> Ho humm. Anybody else see anything strange?
>>
>> Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
>>
>>  BUG: unable to handle kernel NULL pointer dereference at   (null)
>>
>> This is caused by commit 53b87cf088e2 ("x86, mm: Include the
>> entire kernel memory map in trampoline_pgd")
> 
> Hmm. That reverts cleanly, and the result boots fine for me. And the
> commit looks like exactly the kind of thing that could result in
> problems with exactly the right memory layout, so it could explain why
> the bisect failed and some kernels randomly worked for me and others
> didn't.
> 
> So this at least looks like a very possible candidate.
> 
> Does anybody have an explanation for the problem?
> 
> Btw. the machine in question does not have EFI, and is a bog-standard
> PC (DMI string: "P7H57D-V EVO, BIOS 0999 01/19/2010")
> 
> Matt? Jan?
> 

Matt is on vacation, and I'm partly offline for the weekend, but that
definitely seems suspicious.  Do we have a memory map of the affected
machine(s)?

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 8:33 AM, Markus Trippelsdorf
 wrote:
> On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
>>
>> Ho humm. Anybody else see anything strange?
>
> Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
>
>  BUG: unable to handle kernel NULL pointer dereference at   (null)
>
> This is caused by commit 53b87cf088e2 ("x86, mm: Include the
> entire kernel memory map in trampoline_pgd")

Hmm. That reverts cleanly, and the result boots fine for me. And the
commit looks like exactly the kind of thing that could result in
problems with exactly the right memory layout, so it could explain why
the bisect failed and some kernels randomly worked for me and others
didn't.

So this at least looks like a very possible candidate.

Does anybody have an explanation for the problem?

Btw. the machine in question does not have EFI, and is a bog-standard
PC (DMI string: "P7H57D-V EVO, BIOS 0999 01/19/2010")

Matt? Jan?

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.15 at 17:33 +0100, Markus Trippelsdorf wrote:
> On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
> > On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
> >  wrote:
> > > I was wrong. It's not the x86 UAPI split, it's the DT pull. More people 
> > > added.
> > 
> > Looking at the merge (just in case it could have done something odd),
> > I'm starting to worry that this is some nasty heisenbug, and my
> > bisection is not trustworthy at all. Because the DT pull sure as heck
> > doesn't look like a likely candidate for anything either.
> > 
> > Ho humm. Anybody else see anything strange?
> 
> Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
>  
>  BUG: unable to handle kernel NULL pointer dereference at   (null)
> 
> This is caused by:
> 
> commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
> Author: Matt Fleming 
> Date:   Fri Sep 7 18:23:51 2012 +0100
> 
> x86, mm: Include the entire kernel memory map in trampoline_pgd
> 
> There are various pieces of code in arch/x86 that require a page table
> with an identity mapping. Make trampoline_pgd a proper kernel page
> table, it currently only includes the kernel text and module space
> mapping.
> 
> One new feature of trampoline_pgd is that it now has mappings for the
> physical I/O device addresses, which are inserted at ioremap()
> time. Some broken implementations of EFI firmware require these
> mappings to always be around.
> 
> Acked-by: Jan Beulich 
> Signed-off-by: Matt Fleming 
> 

Adding Matt to CC.

-- 
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
> On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
>  wrote:
> > I was wrong. It's not the x86 UAPI split, it's the DT pull. More people 
> > added.
> 
> Looking at the merge (just in case it could have done something odd),
> I'm starting to worry that this is some nasty heisenbug, and my
> bisection is not trustworthy at all. Because the DT pull sure as heck
> doesn't look like a likely candidate for anything either.
> 
> Ho humm. Anybody else see anything strange?

Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
 
 BUG: unable to handle kernel NULL pointer dereference at   (null)

This is caused by:

commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
Author: Matt Fleming 
Date:   Fri Sep 7 18:23:51 2012 +0100

x86, mm: Include the entire kernel memory map in trampoline_pgd

There are various pieces of code in arch/x86 that require a page table
with an identity mapping. Make trampoline_pgd a proper kernel page
table, it currently only includes the kernel text and module space
mapping.

One new feature of trampoline_pgd is that it now has mappings for the
physical I/O device addresses, which are inserted at ioremap()
time. Some broken implementations of EFI firmware require these
mappings to always be around.

Acked-by: Jan Beulich 
Signed-off-by: Matt Fleming 

-- 
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
 On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
 torva...@linux-foundation.org wrote:
  I was wrong. It's not the x86 UAPI split, it's the DT pull. More people 
  added.
 
 Looking at the merge (just in case it could have done something odd),
 I'm starting to worry that this is some nasty heisenbug, and my
 bisection is not trustworthy at all. Because the DT pull sure as heck
 doesn't look like a likely candidate for anything either.
 
 Ho humm. Anybody else see anything strange?

Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
 
 BUG: unable to handle kernel NULL pointer dereference at   (null)

This is caused by:

commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
Author: Matt Fleming matt.flem...@intel.com
Date:   Fri Sep 7 18:23:51 2012 +0100

x86, mm: Include the entire kernel memory map in trampoline_pgd

There are various pieces of code in arch/x86 that require a page table
with an identity mapping. Make trampoline_pgd a proper kernel page
table, it currently only includes the kernel text and module space
mapping.

One new feature of trampoline_pgd is that it now has mappings for the
physical I/O device addresses, which are inserted at ioremap()
time. Some broken implementations of EFI firmware require these
mappings to always be around.

Acked-by: Jan Beulich jbeul...@suse.com
Signed-off-by: Matt Fleming matt.flem...@intel.com

-- 
Markus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.15 at 17:33 +0100, Markus Trippelsdorf wrote:
 On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:
  On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
  torva...@linux-foundation.org wrote:
   I was wrong. It's not the x86 UAPI split, it's the DT pull. More people 
   added.
  
  Looking at the merge (just in case it could have done something odd),
  I'm starting to worry that this is some nasty heisenbug, and my
  bisection is not trustworthy at all. Because the DT pull sure as heck
  doesn't look like a likely candidate for anything either.
  
  Ho humm. Anybody else see anything strange?
 
 Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):
  
  BUG: unable to handle kernel NULL pointer dereference at   (null)
 
 This is caused by:
 
 commit 53b87cf088e2ea68d7c59619d0214cc15bb76133
 Author: Matt Fleming matt.flem...@intel.com
 Date:   Fri Sep 7 18:23:51 2012 +0100
 
 x86, mm: Include the entire kernel memory map in trampoline_pgd
 
 There are various pieces of code in arch/x86 that require a page table
 with an identity mapping. Make trampoline_pgd a proper kernel page
 table, it currently only includes the kernel text and module space
 mapping.
 
 One new feature of trampoline_pgd is that it now has mappings for the
 physical I/O device addresses, which are inserted at ioremap()
 time. Some broken implementations of EFI firmware require these
 mappings to always be around.
 
 Acked-by: Jan Beulich jbeul...@suse.com
 Signed-off-by: Matt Fleming matt.flem...@intel.com
 

Adding Matt to CC.

-- 
Markus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 8:33 AM, Markus Trippelsdorf
mar...@trippelsdorf.de wrote:
 On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:

 Ho humm. Anybody else see anything strange?

 Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):

  BUG: unable to handle kernel NULL pointer dereference at   (null)

 This is caused by commit 53b87cf088e2 (x86, mm: Include the
 entire kernel memory map in trampoline_pgd)

Hmm. That reverts cleanly, and the result boots fine for me. And the
commit looks like exactly the kind of thing that could result in
problems with exactly the right memory layout, so it could explain why
the bisect failed and some kernels randomly worked for me and others
didn't.

So this at least looks like a very possible candidate.

Does anybody have an explanation for the problem?

Btw. the machine in question does not have EFI, and is a bog-standard
PC (DMI string: P7H57D-V EVO, BIOS 0999 01/19/2010)

Matt? Jan?

Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin
On 12/15/2012 10:35 AM, Linus Torvalds wrote:
 On Sat, Dec 15, 2012 at 8:33 AM, Markus Trippelsdorf
 mar...@trippelsdorf.de wrote:
 On 2012.12.14 at 17:47 -0800, Linus Torvalds wrote:

 Ho humm. Anybody else see anything strange?

 Yes. I'm seeing a BUG early during boot on my machine (RIP=NULL):

  BUG: unable to handle kernel NULL pointer dereference at   (null)

 This is caused by commit 53b87cf088e2 (x86, mm: Include the
 entire kernel memory map in trampoline_pgd)
 
 Hmm. That reverts cleanly, and the result boots fine for me. And the
 commit looks like exactly the kind of thing that could result in
 problems with exactly the right memory layout, so it could explain why
 the bisect failed and some kernels randomly worked for me and others
 didn't.
 
 So this at least looks like a very possible candidate.
 
 Does anybody have an explanation for the problem?
 
 Btw. the machine in question does not have EFI, and is a bog-standard
 PC (DMI string: P7H57D-V EVO, BIOS 0999 01/19/2010)
 
 Matt? Jan?
 

Matt is on vacation, and I'm partly offline for the weekend, but that
definitely seems suspicious.  Do we have a memory map of the affected
machine(s)?

-hpa


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 11:41 AM, H. Peter Anvin h...@zytor.com wrote:

 Matt is on vacation, and I'm partly offline for the weekend, but that
 definitely seems suspicious.  Do we have a memory map of the affected
 machine(s)?

Here's mine.

  e820: BIOS-provided physical RAM map:
  BIOS-e820: [mem 0x-0x0009e7ff] usable
  BIOS-e820: [mem 0x0009e800-0x0009] reserved
  BIOS-e820: [mem 0x000e4000-0x000f] reserved
  BIOS-e820: [mem 0x0010-0xbdc6] usable
  BIOS-e820: [mem 0xbdc7-0xbdc87fff] ACPI data
  BIOS-e820: [mem 0xbdc88000-0xbdcdbfff] ACPI NVS
  BIOS-e820: [mem 0xbdcdc000-0xbfff] reserved
  BIOS-e820: [mem 0xfee0-0xfee00fff] reserved
  BIOS-e820: [mem 0xff80-0x] reserved
  BIOS-e820: [mem 0x0001-0x0001fbff] usable
  BIOS-e820: [mem 0x0001fc00-0x0001] reserved
  BIOS-e820: [mem 0x0002-0x00023fff] usable

but as mentioned, there's bound to be some particular kernel layout
that triggers this, because I definitely ran a few kernels with that
commit in it without problems (and clearly other people are too).
Looking at my boot log, I had successful boots with both 6a57d104c8cb
and c2714334b944, which contains that commit.

It might also be that it causes some massive corruption at boot time,
but it then requires that that particular memory is actually used. So
maybe it's not so much about the memory map except indirectly.

But that commit *does* look a lot more likely than the things I looked at.

Markus, how did you happen to pinpoint that particular commit? Is it
entirely repeatable for you?

  Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.15 at 11:58 -0800, Linus Torvalds wrote:
 On Sat, Dec 15, 2012 at 11:41 AM, H. Peter Anvin h...@zytor.com wrote:
 
  Matt is on vacation, and I'm partly offline for the weekend, but that
  definitely seems suspicious.  Do we have a memory map of the affected
  machine(s)?
 
 Here's mine.
 
   e820: BIOS-provided physical RAM map:
   BIOS-e820: [mem 0x-0x0009e7ff] usable
   BIOS-e820: [mem 0x0009e800-0x0009] reserved
   BIOS-e820: [mem 0x000e4000-0x000f] reserved
   BIOS-e820: [mem 0x0010-0xbdc6] usable
   BIOS-e820: [mem 0xbdc7-0xbdc87fff] ACPI data
   BIOS-e820: [mem 0xbdc88000-0xbdcdbfff] ACPI NVS
   BIOS-e820: [mem 0xbdcdc000-0xbfff] reserved
   BIOS-e820: [mem 0xfee0-0xfee00fff] reserved
   BIOS-e820: [mem 0xff80-0x] reserved
   BIOS-e820: [mem 0x0001-0x0001fbff] usable
   BIOS-e820: [mem 0x0001fc00-0x0001] reserved
   BIOS-e820: [mem 0x0002-0x00023fff] usable
 
 but as mentioned, there's bound to be some particular kernel layout
 that triggers this, because I definitely ran a few kernels with that
 commit in it without problems (and clearly other people are too).
 Looking at my boot log, I had successful boots with both 6a57d104c8cb
 and c2714334b944, which contains that commit.
 
 It might also be that it causes some massive corruption at boot time,
 but it then requires that that particular memory is actually used. So
 maybe it's not so much about the memory map except indirectly.
 
 But that commit *does* look a lot more likely than the things I looked at.
 
 Markus, how did you happen to pinpoint that particular commit? Is it
 entirely repeatable for you?

Yes, although at one point during bisecting the BUG disappeared and the
screen went simply black during boot and X never started. I marked this
as bad and continued the bisection.

Here is my mem-map:

e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0100-0x0009fbff] usable
BIOS-e820: [mem 0x0009fc00-0x0009] reserved
BIOS-e820: [mem 0x000e6000-0x000f] reserved
BIOS-e820: [mem 0x0010-0xdfe8] usable
BIOS-e820: [mem 0xdfe9-0xdfea7fff] ACPI data
BIOS-e820: [mem 0xdfea8000-0xdfec] ACPI NVS
BIOS-e820: [mem 0xdfed-0xdfef] reserved
BIOS-e820: [mem 0xfff0-0x] reserved
BIOS-e820: [mem 0x0001-0x00021fff] usable

-- 
Markus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Markus Trippelsdorf
On 2012.12.15 at 11:58 -0800, Linus Torvalds wrote:
 On Sat, Dec 15, 2012 at 11:41 AM, H. Peter Anvin h...@zytor.com wrote:
 
  Matt is on vacation, and I'm partly offline for the weekend, but that
  definitely seems suspicious.  Do we have a memory map of the affected
  machine(s)?
 
 
 but as mentioned, there's bound to be some particular kernel layout
 that triggers this, because I definitely ran a few kernels with that
 commit in it without problems (and clearly other people are too).
 Looking at my boot log, I had successful boots with both 6a57d104c8cb
 and c2714334b944, which contains that commit.
 
 It might also be that it causes some massive corruption at boot time,
 but it then requires that that particular memory is actually used. So
 maybe it's not so much about the memory map except indirectly.
 
 But that commit *does* look a lot more likely than the things I looked at.

The commit message says that only some broken implementations of EFI
firmware require the mapping for the physical I/O device addresses.

So I wonder if the following simple patch might be enough?
It fixes the issue for me at least.

diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index e190f7b..402e4ca 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -50,7 +50,7 @@ int ioremap_change_attr(unsigned long vaddr, unsigned long 
size,
return err;
 }
 
-#ifdef CONFIG_X86_64
+#ifdef CONFIG_EFI
 static void ident_pte_range(unsigned long paddr, unsigned long vaddr,
pmd_t *ppmd, pmd_t *vpmd, unsigned long end)
 {

-- 
Markus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 1:04 PM, Markus Trippelsdorf
mar...@trippelsdorf.de wrote:

 So I wonder if the following simple patch might be enough?
 It fixes the issue for me at least.

Not enough.

It presumably fixes the issue for you by hiding the problem. But if
you were to boot a kernel with EFI support, it would re-surface.
Including in any distro kernel that obviously will include EFI support
in order to handle the generic case.

I've reverted the commit.

  Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin

On 12/15/2012 01:06 PM, Linus Torvalds wrote:

On Sat, Dec 15, 2012 at 1:04 PM, Markus Trippelsdorf
mar...@trippelsdorf.de wrote:


So I wonder if the following simple patch might be enough?
It fixes the issue for me at least.


Not enough.

It presumably fixes the issue for you by hiding the problem. But if
you were to boot a kernel with EFI support, it would re-surface.
Including in any distro kernel that obviously will include EFI support
in order to handle the generic case.

I've reverted the commit.



Right... we'll work on fixing it properly.

-hpa


--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Dave Jones
On Sat, Dec 15, 2012 at 11:58:00AM -0800, Linus Torvalds wrote:

  It might also be that it causes some massive corruption at boot time,
  but it then requires that that particular memory is actually used. So
  maybe it's not so much about the memory map except indirectly.

I wonder if this might explain the XFS corruption I've been seeing
the last couple days.  Won't be able to get at the affected laptop
until Monday to find out..

Dave

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Yinghai Lu
On Sat, Dec 15, 2012 at 1:06 PM, Linus Torvalds
torva...@linux-foundation.org wrote:
 On Sat, Dec 15, 2012 at 1:04 PM, Markus Trippelsdorf
 mar...@trippelsdorf.de wrote:

 So I wonder if the following simple patch might be enough?
 It fixes the issue for me at least.

 Not enough.

 It presumably fixes the issue for you by hiding the problem. But if
 you were to boot a kernel with EFI support, it would re-surface.
 Including in any distro kernel that obviously will include EFI support
 in order to handle the generic case.

 I've reverted the commit.

more than that, 3 commits just after that commit should be reverted at
the same time.
they all depend on that commit.

and first checking of that commit, it would have problem with system
more than 512g ...

static int insert_identity_mapping(resource_size_t paddr, unsigned long vaddr,
   unsigned long size)
...
 pgd_t *vpgd, *ppgd;
 ppgd = __va(real_mode_header-trampoline_pgd) + pgd_index(paddr);

it missed one . we should use

ppgd = (pgd_t *)__va(real_mode_header-trampoline_pgd) + pgd_index(paddr);

Yinghai
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread Linus Torvalds
On Sat, Dec 15, 2012 at 2:05 PM, Yinghai Lu ying...@kernel.org wrote:
 On Sat, Dec 15, 2012 at 1:06 PM, Linus Torvalds 
 torva...@linux-foundation.org wrote:

 I've reverted the commit.

 more than that, 3 commits just after that commit should be reverted at
 the same time.
 they all depend on that commit.

Thanks for pointing that out, and just to make sure I verified that on
my Macbook Air which does use EFI. It was broken by the single revert,
and fixed by the additional three reverts.

Sadly:

 and first checking of that commit, it would have problem with system
 more than 512g ...

That particular bug isn't the cause for my non-EFI problems, since I
don't have that kind of memory..

So there is something else going on in addition to the bug you found.
But good eye.

Anybody see anything else?

And why do we have to call the get-time calls so early? Couldn't we
move them later and avoid all the crazy let's create silly magical
page tables just for the idiotic EFI problems.

And while I'm asking, why the f*ck did Intel do that crazy EFI thing
in the first place again?

  Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin


Anybody see anything else?

And why do we have to call the get-time calls so early? Couldn't we
move them later and avoid all the crazy let's create silly magical
page tables just for the idiotic EFI problems.



We need them anyway... actually the whole point of that patch is to try 
to *remove* silly magical page tables just for EFI and use another set 
of silly magical page tables we need anyway (for S3 resume, SMP bootup 
and so on.)  Reducing the sheer number of silly magical page tables has 
been a priority for some time -- I want to get it down to one if we can.


-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-15 Thread H. Peter Anvin

On 12/15/2012 01:37 PM, Dave Jones wrote:

On Sat, Dec 15, 2012 at 11:58:00AM -0800, Linus Torvalds wrote:

   It might also be that it causes some massive corruption at boot time,
   but it then requires that that particular memory is actually used. So
   maybe it's not so much about the memory map except indirectly.

I wonder if this might explain the XFS corruption I've been seeing
the last couple days.  Won't be able to get at the affected laptop
until Monday to find out..



It seems somewhat unlikely, but not implausible, since the trampoline 
page table is only in use for very brief moments and usually not very 
often at all, but if it is just completely screwed and we do fandango on 
memory... yes we could have problems.


-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread H. Peter Anvin
On 12/14/2012 05:16 PM, Linus Torvalds wrote:
> On Fri, Dec 14, 2012 at 3:45 PM, David Howells  wrote:
>> Linus Torvalds  wrote:
>>
>>> Yeah, I think I have most of the x86 stuff merged now (just merged the
>>> EFI and ACPI trees), and at this point it might be worth regenerating
>>> it and getting this over and done with.
>>
>> Okay, regenerated and pushed.
> 
> Ugh. This doesn't seem to work for me at all. It causes infinite
> scrolling of some text that I have no idea about.
> 
> I started bisecting (because I thought it might be something else and
> I hadn't booted after every pull), but by now the only thing I have
> left is ARM and a couple of tiny OF patches .. and the x86 UAPI split.
> 
> The split *should* have been safe, since it's mostly a "compile or
> not" thing like Peter said, but we had similar problems on other
> architectures, when things compiled but didn't actually work due to
> missing #define's and #ifdef handling. Things like
> architecture-specific macros that have default versions available when
> the macro is missing etc.
> 
> Now, maybe it's some of the other remaining commits after all, but
> from where I am in the bisection it really looks like the uapi patch
> is the most likely culprit. So I thought I'd let people know...
> 

Hmmm... I can't reproduce your failure.  Could you send me your config
and a hint about what hardware you're seeing this on?  That might help
chase this down.

Macs in particular are EFI machines, except they hide OF snippets inside
ACPI (I kid you not.)  All of that creates interesting cross-dependencies.

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
 wrote:
> I was wrong. It's not the x86 UAPI split, it's the DT pull. More people added.

Looking at the merge (just in case it could have done something odd),
I'm starting to worry that this is some nasty heisenbug, and my
bisection is not trustworthy at all. Because the DT pull sure as heck
doesn't look like a likely candidate for anything either.

Ho humm. Anybody else see anything strange?

 Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
I was wrong. It's not the x86 UAPI split, it's the DT pull. More people added.

Grant and Guennadi - it looks like some nasty memory corruption,
because now it didn't cause infinite scrolling, now it caused an oops
in unmap_single_vma() during exit_vmas(). In udevd. Followed by a
hang. I don't know *which* commit it is yet, but commit 4939e27d46fe
("Merge tag 'devicetree-for-linus' ...") is bad, and the previous
merge (the ARM mvebu one is fine).

I'll bisect to the commit, but wanted to let David off the hook, and
put the DT people on the hook. Maybe it's some odd merge artifact,
although I don't think that one had any conflicts at all.

 Linus

On Fri, Dec 14, 2012 at 5:16 PM, Linus Torvalds
 wrote:
>
> Ugh. This doesn't seem to work for me at all. It causes infinite
> scrolling of some text that I have no idea about.
>
> I started bisecting (because I thought it might be something else and
> I hadn't booted after every pull), but by now the only thing I have
> left is ARM and a couple of tiny OF patches .. and the x86 UAPI split.
>
> The split *should* have been safe, since it's mostly a "compile or
> not" thing like Peter said, but we had similar problems on other
> architectures, when things compiled but didn't actually work due to
> missing #define's and #ifdef handling. Things like
> architecture-specific macros that have default versions available when
> the macro is missing etc.
>
> Now, maybe it's some of the other remaining commits after all, but
> from where I am in the bisection it really looks like the uapi patch
> is the most likely culprit. So I thought I'd let people know...
>
> Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
On Fri, Dec 14, 2012 at 3:45 PM, David Howells  wrote:
> Linus Torvalds  wrote:
>
>> Yeah, I think I have most of the x86 stuff merged now (just merged the
>> EFI and ACPI trees), and at this point it might be worth regenerating
>> it and getting this over and done with.
>
> Okay, regenerated and pushed.

Ugh. This doesn't seem to work for me at all. It causes infinite
scrolling of some text that I have no idea about.

I started bisecting (because I thought it might be something else and
I hadn't booted after every pull), but by now the only thing I have
left is ARM and a couple of tiny OF patches .. and the x86 UAPI split.

The split *should* have been safe, since it's mostly a "compile or
not" thing like Peter said, but we had similar problems on other
architectures, when things compiled but didn't actually work due to
missing #define's and #ifdef handling. Things like
architecture-specific macros that have default versions available when
the macro is missing etc.

Now, maybe it's some of the other remaining commits after all, but
from where I am in the bisection it really looks like the uapi patch
is the most likely culprit. So I thought I'd let people know...

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread David Howells
Linus Torvalds  wrote:

> Yeah, I think I have most of the x86 stuff merged now (just merged the
> EFI and ACPI trees), and at this point it might be worth regenerating
> it and getting this over and done with.

Okay, regenerated and pushed.

David
---
The following changes since commit d42b3a2906a10b732ea7d7f849d49be79d242ef0:

  Merge branch 'core-efi-for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2012-12-14 10:08:40 
-0800)

are available in the git repository at:


  git://git.infradead.org/users/dhowells/linux-headers.git 
tags/disintegrate-x86-20121214

for you to fetch changes up to af170c5061dd78512c469e6e2d211980cdb2c193:

  UAPI: (Scripted) Disintegrate arch/x86/include/asm (2012-12-14 22:37:13 +)


UAPI disintegration 2012-12-14


David Howells (1):
  UAPI: (Scripted) Disintegrate arch/x86/include/asm

 arch/x86/include/asm/Kbuild   |  26 ---
 arch/x86/include/asm/boot.h   |   9 +-
 arch/x86/include/asm/debugreg.h   |  79 +---
 arch/x86/include/asm/e820.h   |  74 +---
 arch/x86/include/asm/hw_breakpoint.h  |   5 +-
 arch/x86/include/asm/ist.h|  17 +-
 arch/x86/include/asm/kvm_para.h   |  99 +-
 arch/x86/include/asm/mce.h| 119 +---
 arch/x86/include/asm/msr.h|  11 +-
 arch/x86/include/asm/mtrr.h   |  93 +
 arch/x86/include/asm/posix_types.h|  10 -
 arch/x86/include/asm/processor-flags.h|  97 +-
 arch/x86/include/asm/ptrace.h |  75 +---
 arch/x86/include/asm/setup.h  |   5 +-
 arch/x86/include/asm/sigcontext.h | 216 +
 arch/x86/include/asm/signal.h | 140 +-
 arch/x86/include/asm/svm.h| 132 +
 arch/x86/include/asm/unistd.h |  14 +-
 arch/x86/include/asm/vm86.h   | 128 +
 arch/x86/include/asm/vmx.h|  89 +
 arch/x86/include/asm/vsyscall.h   |  16 +-
 arch/x86/include/uapi/asm/Kbuild  |  58 ++
 arch/x86/include/{ => uapi}/asm/a.out.h   |   0
 arch/x86/include/{ => uapi}/asm/auxvec.h  |   0
 arch/x86/include/{ => uapi}/asm/bitsperlong.h |   0
 arch/x86/include/uapi/asm/boot.h  |  10 +
 arch/x86/include/{ => uapi}/asm/bootparam.h   |   0
 arch/x86/include/{ => uapi}/asm/byteorder.h   |   0
 arch/x86/include/uapi/asm/debugreg.h  |  80 
 arch/x86/include/uapi/asm/e820.h  |  75 
 arch/x86/include/{ => uapi}/asm/errno.h   |   0
 arch/x86/include/{ => uapi}/asm/fcntl.h   |   0
 arch/x86/include/{ => uapi}/asm/hyperv.h  |   0
 arch/x86/include/{ => uapi}/asm/ioctl.h   |   0
 arch/x86/include/{ => uapi}/asm/ioctls.h  |   0
 arch/x86/include/{ => uapi}/asm/ipcbuf.h  |   0
 arch/x86/include/uapi/asm/ist.h   |  29 +++
 arch/x86/include/{ => uapi}/asm/kvm.h |   0
 arch/x86/include/uapi/asm/kvm_para.h  | 100 ++
 arch/x86/include/{ => uapi}/asm/ldt.h |   0
 arch/x86/include/uapi/asm/mce.h   | 121 
 arch/x86/include/{ => uapi}/asm/mman.h|   0
 arch/x86/include/{ => uapi}/asm/msgbuf.h  |   0
 arch/x86/include/{ => uapi}/asm/msr-index.h   |   0
 arch/x86/include/uapi/asm/msr.h   |  15 ++
 arch/x86/include/uapi/asm/mtrr.h  | 117 
 arch/x86/include/{ => uapi}/asm/param.h   |   0
 arch/x86/include/{ => uapi}/asm/perf_regs.h   |   0
 arch/x86/include/{ => uapi}/asm/poll.h|   0
 arch/x86/include/uapi/asm/posix_types.h   |   9 +
 arch/x86/include/{ => uapi}/asm/posix_types_32.h  |   0
 arch/x86/include/{ => uapi}/asm/posix_types_64.h  |   0
 arch/x86/include/{ => uapi}/asm/posix_types_x32.h |   0
 arch/x86/include/{ => uapi}/asm/prctl.h   |   0
 arch/x86/include/uapi/asm/processor-flags.h   |  99 ++
 arch/x86/include/{ => uapi}/asm/ptrace-abi.h  |   0
 arch/x86/include/uapi/asm/ptrace.h|  78 
 arch/x86/include/{ => uapi}/asm/resource.h|   0
 arch/x86/include/{ => uapi}/asm/sembuf.h  |   0
 arch/x86/include/{ => uapi}/asm/shmbuf.h  |   0
 arch/x86/include/uapi/asm/sigcontext.h| 221 ++
 arch/x86/include/{ => uapi}/asm/sigcontext32.h|   0
 arch/x86/include/{ => uapi}/asm/siginfo.h |   0
 arch/x86/include/uapi/asm/signal.h| 145 ++
 arch/x86/include/{ => uapi}/asm/socket.h  |   0
 

Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
On Wed, Dec 12, 2012 at 3:48 PM, David Howells  wrote:
> H. Peter Anvin  wrote:
>
>> The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:
>>
>>   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 
>> 16:39:00 -0800)
>>
>> are available in the git repository at:
>>
>>   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 
>> x86-uapi-for-linus
>
> Unfortunately, that is broken by Al Viro's mass signalling changes.  I've
> regenerated it based on Linus's current master.  Pull request below.
>
> The same merge conflict with tip/master still exists, I imagine, due to the
> changes in tipbot for asm/mce.h, so if tip/master is merged first, then it
> might be worth me regenerating my changes.

Yeah, I think I have most of the x86 stuff merged now (just merged the
EFI and ACPI trees), and at this point it might be worth regenerating
it and getting this over and done with.

  Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
On Wed, Dec 12, 2012 at 3:48 PM, David Howells dhowe...@redhat.com wrote:
 H. Peter Anvin h...@linux.intel.com wrote:

 The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:

   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 
 16:39:00 -0800)

 are available in the git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 
 x86-uapi-for-linus

 Unfortunately, that is broken by Al Viro's mass signalling changes.  I've
 regenerated it based on Linus's current master.  Pull request below.

 The same merge conflict with tip/master still exists, I imagine, due to the
 changes in tipbot for asm/mce.h, so if tip/master is merged first, then it
 might be worth me regenerating my changes.

Yeah, I think I have most of the x86 stuff merged now (just merged the
EFI and ACPI trees), and at this point it might be worth regenerating
it and getting this over and done with.

  Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread David Howells
Linus Torvalds torva...@linux-foundation.org wrote:

 Yeah, I think I have most of the x86 stuff merged now (just merged the
 EFI and ACPI trees), and at this point it might be worth regenerating
 it and getting this over and done with.

Okay, regenerated and pushed.

David
---
The following changes since commit d42b3a2906a10b732ea7d7f849d49be79d242ef0:

  Merge branch 'core-efi-for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2012-12-14 10:08:40 
-0800)

are available in the git repository at:


  git://git.infradead.org/users/dhowells/linux-headers.git 
tags/disintegrate-x86-20121214

for you to fetch changes up to af170c5061dd78512c469e6e2d211980cdb2c193:

  UAPI: (Scripted) Disintegrate arch/x86/include/asm (2012-12-14 22:37:13 +)


UAPI disintegration 2012-12-14


David Howells (1):
  UAPI: (Scripted) Disintegrate arch/x86/include/asm

 arch/x86/include/asm/Kbuild   |  26 ---
 arch/x86/include/asm/boot.h   |   9 +-
 arch/x86/include/asm/debugreg.h   |  79 +---
 arch/x86/include/asm/e820.h   |  74 +---
 arch/x86/include/asm/hw_breakpoint.h  |   5 +-
 arch/x86/include/asm/ist.h|  17 +-
 arch/x86/include/asm/kvm_para.h   |  99 +-
 arch/x86/include/asm/mce.h| 119 +---
 arch/x86/include/asm/msr.h|  11 +-
 arch/x86/include/asm/mtrr.h   |  93 +
 arch/x86/include/asm/posix_types.h|  10 -
 arch/x86/include/asm/processor-flags.h|  97 +-
 arch/x86/include/asm/ptrace.h |  75 +---
 arch/x86/include/asm/setup.h  |   5 +-
 arch/x86/include/asm/sigcontext.h | 216 +
 arch/x86/include/asm/signal.h | 140 +-
 arch/x86/include/asm/svm.h| 132 +
 arch/x86/include/asm/unistd.h |  14 +-
 arch/x86/include/asm/vm86.h   | 128 +
 arch/x86/include/asm/vmx.h|  89 +
 arch/x86/include/asm/vsyscall.h   |  16 +-
 arch/x86/include/uapi/asm/Kbuild  |  58 ++
 arch/x86/include/{ = uapi}/asm/a.out.h   |   0
 arch/x86/include/{ = uapi}/asm/auxvec.h  |   0
 arch/x86/include/{ = uapi}/asm/bitsperlong.h |   0
 arch/x86/include/uapi/asm/boot.h  |  10 +
 arch/x86/include/{ = uapi}/asm/bootparam.h   |   0
 arch/x86/include/{ = uapi}/asm/byteorder.h   |   0
 arch/x86/include/uapi/asm/debugreg.h  |  80 
 arch/x86/include/uapi/asm/e820.h  |  75 
 arch/x86/include/{ = uapi}/asm/errno.h   |   0
 arch/x86/include/{ = uapi}/asm/fcntl.h   |   0
 arch/x86/include/{ = uapi}/asm/hyperv.h  |   0
 arch/x86/include/{ = uapi}/asm/ioctl.h   |   0
 arch/x86/include/{ = uapi}/asm/ioctls.h  |   0
 arch/x86/include/{ = uapi}/asm/ipcbuf.h  |   0
 arch/x86/include/uapi/asm/ist.h   |  29 +++
 arch/x86/include/{ = uapi}/asm/kvm.h |   0
 arch/x86/include/uapi/asm/kvm_para.h  | 100 ++
 arch/x86/include/{ = uapi}/asm/ldt.h |   0
 arch/x86/include/uapi/asm/mce.h   | 121 
 arch/x86/include/{ = uapi}/asm/mman.h|   0
 arch/x86/include/{ = uapi}/asm/msgbuf.h  |   0
 arch/x86/include/{ = uapi}/asm/msr-index.h   |   0
 arch/x86/include/uapi/asm/msr.h   |  15 ++
 arch/x86/include/uapi/asm/mtrr.h  | 117 
 arch/x86/include/{ = uapi}/asm/param.h   |   0
 arch/x86/include/{ = uapi}/asm/perf_regs.h   |   0
 arch/x86/include/{ = uapi}/asm/poll.h|   0
 arch/x86/include/uapi/asm/posix_types.h   |   9 +
 arch/x86/include/{ = uapi}/asm/posix_types_32.h  |   0
 arch/x86/include/{ = uapi}/asm/posix_types_64.h  |   0
 arch/x86/include/{ = uapi}/asm/posix_types_x32.h |   0
 arch/x86/include/{ = uapi}/asm/prctl.h   |   0
 arch/x86/include/uapi/asm/processor-flags.h   |  99 ++
 arch/x86/include/{ = uapi}/asm/ptrace-abi.h  |   0
 arch/x86/include/uapi/asm/ptrace.h|  78 
 arch/x86/include/{ = uapi}/asm/resource.h|   0
 arch/x86/include/{ = uapi}/asm/sembuf.h  |   0
 arch/x86/include/{ = uapi}/asm/shmbuf.h  |   0
 arch/x86/include/uapi/asm/sigcontext.h| 221 ++
 arch/x86/include/{ = uapi}/asm/sigcontext32.h|   0
 arch/x86/include/{ = uapi}/asm/siginfo.h |   0
 arch/x86/include/uapi/asm/signal.h| 145 ++
 arch/x86/include/{ = uapi}/asm/socket.h  |   0
 

Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
On Fri, Dec 14, 2012 at 3:45 PM, David Howells dhowe...@redhat.com wrote:
 Linus Torvalds torva...@linux-foundation.org wrote:

 Yeah, I think I have most of the x86 stuff merged now (just merged the
 EFI and ACPI trees), and at this point it might be worth regenerating
 it and getting this over and done with.

 Okay, regenerated and pushed.

Ugh. This doesn't seem to work for me at all. It causes infinite
scrolling of some text that I have no idea about.

I started bisecting (because I thought it might be something else and
I hadn't booted after every pull), but by now the only thing I have
left is ARM and a couple of tiny OF patches .. and the x86 UAPI split.

The split *should* have been safe, since it's mostly a compile or
not thing like Peter said, but we had similar problems on other
architectures, when things compiled but didn't actually work due to
missing #define's and #ifdef handling. Things like
architecture-specific macros that have default versions available when
the macro is missing etc.

Now, maybe it's some of the other remaining commits after all, but
from where I am in the bisection it really looks like the uapi patch
is the most likely culprit. So I thought I'd let people know...

Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
I was wrong. It's not the x86 UAPI split, it's the DT pull. More people added.

Grant and Guennadi - it looks like some nasty memory corruption,
because now it didn't cause infinite scrolling, now it caused an oops
in unmap_single_vma() during exit_vmas(). In udevd. Followed by a
hang. I don't know *which* commit it is yet, but commit 4939e27d46fe
(Merge tag 'devicetree-for-linus' ...) is bad, and the previous
merge (the ARM mvebu one is fine).

I'll bisect to the commit, but wanted to let David off the hook, and
put the DT people on the hook. Maybe it's some odd merge artifact,
although I don't think that one had any conflicts at all.

 Linus

On Fri, Dec 14, 2012 at 5:16 PM, Linus Torvalds
torva...@linux-foundation.org wrote:

 Ugh. This doesn't seem to work for me at all. It causes infinite
 scrolling of some text that I have no idea about.

 I started bisecting (because I thought it might be something else and
 I hadn't booted after every pull), but by now the only thing I have
 left is ARM and a couple of tiny OF patches .. and the x86 UAPI split.

 The split *should* have been safe, since it's mostly a compile or
 not thing like Peter said, but we had similar problems on other
 architectures, when things compiled but didn't actually work due to
 missing #define's and #ifdef handling. Things like
 architecture-specific macros that have default versions available when
 the macro is missing etc.

 Now, maybe it's some of the other remaining commits after all, but
 from where I am in the bisection it really looks like the uapi patch
 is the most likely culprit. So I thought I'd let people know...

 Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread Linus Torvalds
On Fri, Dec 14, 2012 at 5:41 PM, Linus Torvalds
torva...@linux-foundation.org wrote:
 I was wrong. It's not the x86 UAPI split, it's the DT pull. More people added.

Looking at the merge (just in case it could have done something odd),
I'm starting to worry that this is some nasty heisenbug, and my
bisection is not trustworthy at all. Because the DT pull sure as heck
doesn't look like a likely candidate for anything either.

Ho humm. Anybody else see anything strange?

 Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-14 Thread H. Peter Anvin
On 12/14/2012 05:16 PM, Linus Torvalds wrote:
 On Fri, Dec 14, 2012 at 3:45 PM, David Howells dhowe...@redhat.com wrote:
 Linus Torvalds torva...@linux-foundation.org wrote:

 Yeah, I think I have most of the x86 stuff merged now (just merged the
 EFI and ACPI trees), and at this point it might be worth regenerating
 it and getting this over and done with.

 Okay, regenerated and pushed.
 
 Ugh. This doesn't seem to work for me at all. It causes infinite
 scrolling of some text that I have no idea about.
 
 I started bisecting (because I thought it might be something else and
 I hadn't booted after every pull), but by now the only thing I have
 left is ARM and a couple of tiny OF patches .. and the x86 UAPI split.
 
 The split *should* have been safe, since it's mostly a compile or
 not thing like Peter said, but we had similar problems on other
 architectures, when things compiled but didn't actually work due to
 missing #define's and #ifdef handling. Things like
 architecture-specific macros that have default versions available when
 the macro is missing etc.
 
 Now, maybe it's some of the other remaining commits after all, but
 from where I am in the bisection it really looks like the uapi patch
 is the most likely culprit. So I thought I'd let people know...
 

Hmmm... I can't reproduce your failure.  Could you send me your config
and a hint about what hardware you're seeing this on?  That might help
chase this down.

Macs in particular are EFI machines, except they hide OF snippets inside
ACPI (I kid you not.)  All of that creates interesting cross-dependencies.

-hpa


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PULL] x86/uapi for 3.8

2012-12-12 Thread David Howells
H. Peter Anvin  wrote:

> The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:
> 
>   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 
> 16:39:00 -0800)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-uapi-for-linus

Unfortunately, that is broken by Al Viro's mass signalling changes.  I've
regenerated it based on Linus's current master.  Pull request below.

The same merge conflict with tip/master still exists, I imagine, due to the
changes in tipbot for asm/mce.h, so if tip/master is merged first, then it
might be worth me regenerating my changes.

Should it go via tipbot?

David
---
The following changes since commit 9977d9b379cb77e0f67bd6f4563618106e58e11d:

  Merge branch 'for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal (2012-12-12 12:22:13 
-0800)

are available in the git repository at:


  git://git.infradead.org/users/dhowells/linux-headers.git 
tags/disintegrate-x86-20121212

for you to fetch changes up to c12519530533e2bdd93e5753bcd565fda35f3df0:

  UAPI: (Scripted) Disintegrate arch/x86/include/asm (2012-12-12 22:58:24 +)


UAPI disintegration 2012-12-12


David Howells (1):
  UAPI: (Scripted) Disintegrate arch/x86/include/asm

 arch/x86/include/asm/Kbuild   |  26 ---
 arch/x86/include/asm/boot.h   |   9 +-
 arch/x86/include/asm/debugreg.h   |  79 +---
 arch/x86/include/asm/e820.h   |  74 +---
 arch/x86/include/asm/hw_breakpoint.h  |   5 +-
 arch/x86/include/asm/ist.h|  17 +-
 arch/x86/include/asm/kvm_para.h   |  99 +-
 arch/x86/include/asm/mce.h| 119 +---
 arch/x86/include/asm/msr.h|  11 +-
 arch/x86/include/asm/mtrr.h   |  93 +
 arch/x86/include/asm/posix_types.h|  10 -
 arch/x86/include/asm/processor-flags.h|  97 +-
 arch/x86/include/asm/ptrace.h |  75 +---
 arch/x86/include/asm/setup.h  |   5 +-
 arch/x86/include/asm/sigcontext.h | 216 +
 arch/x86/include/asm/signal.h | 140 +-
 arch/x86/include/asm/svm.h| 132 +
 arch/x86/include/asm/unistd.h |  14 +-
 arch/x86/include/asm/vm86.h   | 128 +
 arch/x86/include/asm/vmx.h|  89 +
 arch/x86/include/asm/vsyscall.h   |  16 +-
 arch/x86/include/uapi/asm/Kbuild  |  58 ++
 arch/x86/include/{ => uapi}/asm/a.out.h   |   0
 arch/x86/include/{ => uapi}/asm/auxvec.h  |   0
 arch/x86/include/{ => uapi}/asm/bitsperlong.h |   0
 arch/x86/include/uapi/asm/boot.h  |  10 +
 arch/x86/include/{ => uapi}/asm/bootparam.h   |   0
 arch/x86/include/{ => uapi}/asm/byteorder.h   |   0
 arch/x86/include/uapi/asm/debugreg.h  |  80 
 arch/x86/include/uapi/asm/e820.h  |  75 
 arch/x86/include/{ => uapi}/asm/errno.h   |   0
 arch/x86/include/{ => uapi}/asm/fcntl.h   |   0
 arch/x86/include/{ => uapi}/asm/hyperv.h  |   0
 arch/x86/include/{ => uapi}/asm/ioctl.h   |   0
 arch/x86/include/{ => uapi}/asm/ioctls.h  |   0
 arch/x86/include/{ => uapi}/asm/ipcbuf.h  |   0
 arch/x86/include/uapi/asm/ist.h   |  29 +++
 arch/x86/include/{ => uapi}/asm/kvm.h |   0
 arch/x86/include/uapi/asm/kvm_para.h  | 100 ++
 arch/x86/include/{ => uapi}/asm/ldt.h |   0
 arch/x86/include/uapi/asm/mce.h   | 121 
 arch/x86/include/{ => uapi}/asm/mman.h|   0
 arch/x86/include/{ => uapi}/asm/msgbuf.h  |   0
 arch/x86/include/{ => uapi}/asm/msr-index.h   |   0
 arch/x86/include/uapi/asm/msr.h   |  15 ++
 arch/x86/include/uapi/asm/mtrr.h  | 117 
 arch/x86/include/{ => uapi}/asm/param.h   |   0
 arch/x86/include/{ => uapi}/asm/perf_regs.h   |   0
 arch/x86/include/{ => uapi}/asm/poll.h|   0
 arch/x86/include/uapi/asm/posix_types.h   |   9 +
 arch/x86/include/{ => uapi}/asm/posix_types_32.h  |   0
 arch/x86/include/{ => uapi}/asm/posix_types_64.h  |   0
 arch/x86/include/{ => uapi}/asm/posix_types_x32.h |   0
 arch/x86/include/{ => uapi}/asm/prctl.h   |   0
 arch/x86/include/uapi/asm/processor-flags.h   |  99 ++
 arch/x86/include/{ => uapi}/asm/ptrace-abi.h  |   0
 arch/x86/include/uapi/asm/ptrace.h|  78 
 arch/x86/include/{ => uapi}/asm/resource.h  

[GIT PULL] x86/uapi for 3.8

2012-12-12 Thread H. Peter Anvin
Hi Linus,

This is the arch/x86 portion of David Howell's user API splitup.

Since this is a "build or fail" type patchset, I consider it to be
very low risk.

My test merge shows a single merge conflict in
arch/x86/include/asm/mce.h; the resolution should simply be to remove
the bits from the conflicted merge that are already in
arch/x86/include/uapi/asm/mce.h.

The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 
16:39:00 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-uapi-for-linus

David Howells (1):
  UAPI: (Scripted) Disintegrate arch/x86/include/asm

 arch/x86/include/asm/Kbuild   |   26 ---
 arch/x86/include/asm/boot.h   |9 +-
 arch/x86/include/asm/debugreg.h   |   79 +
 arch/x86/include/asm/e820.h   |   74 +---
 arch/x86/include/asm/hw_breakpoint.h  |5 +-
 arch/x86/include/asm/ist.h|   17 +--
 arch/x86/include/asm/kvm_para.h   |   99 +-
 arch/x86/include/asm/mce.h|  119 +---
 arch/x86/include/asm/msr.h|   11 +-
 arch/x86/include/asm/mtrr.h   |   93 +-
 arch/x86/include/asm/posix_types.h|   10 -
 arch/x86/include/asm/processor-flags.h|   97 +-
 arch/x86/include/asm/ptrace.h |   75 +---
 arch/x86/include/asm/setup.h  |5 +-
 arch/x86/include/asm/sigcontext.h |  216 +
 arch/x86/include/asm/signal.h |  140 +-
 arch/x86/include/asm/svm.h|  132 +
 arch/x86/include/asm/unistd.h |   14 +--
 arch/x86/include/asm/vm86.h   |  128 +
 arch/x86/include/asm/vmx.h|   89 +
 arch/x86/include/asm/vsyscall.h   |   16 +--
 arch/x86/include/uapi/asm/Kbuild  |   58 ++
 arch/x86/include/{ => uapi}/asm/a.out.h   |0
 arch/x86/include/{ => uapi}/asm/auxvec.h  |0
 arch/x86/include/{ => uapi}/asm/bitsperlong.h |0
 arch/x86/include/uapi/asm/boot.h  |   10 +
 arch/x86/include/{ => uapi}/asm/bootparam.h   |0
 arch/x86/include/{ => uapi}/asm/byteorder.h   |0
 arch/x86/include/uapi/asm/debugreg.h  |   80 
 arch/x86/include/uapi/asm/e820.h  |   75 +++
 arch/x86/include/{ => uapi}/asm/errno.h   |0
 arch/x86/include/{ => uapi}/asm/fcntl.h   |0
 arch/x86/include/{ => uapi}/asm/hyperv.h  |0
 arch/x86/include/{ => uapi}/asm/ioctl.h   |0
 arch/x86/include/{ => uapi}/asm/ioctls.h  |0
 arch/x86/include/{ => uapi}/asm/ipcbuf.h  |0
 arch/x86/include/uapi/asm/ist.h   |   29 +++
 arch/x86/include/{ => uapi}/asm/kvm.h |0
 arch/x86/include/uapi/asm/kvm_para.h  |  100 ++
 arch/x86/include/{ => uapi}/asm/ldt.h |0
 arch/x86/include/uapi/asm/mce.h   |  121 +++
 arch/x86/include/{ => uapi}/asm/mman.h|0
 arch/x86/include/{ => uapi}/asm/msgbuf.h  |0
 arch/x86/include/{ => uapi}/asm/msr-index.h   |0
 arch/x86/include/uapi/asm/msr.h   |   15 ++
 arch/x86/include/uapi/asm/mtrr.h  |  117 +++
 arch/x86/include/{ => uapi}/asm/param.h   |0
 arch/x86/include/{ => uapi}/asm/perf_regs.h   |0
 arch/x86/include/{ => uapi}/asm/poll.h|0
 arch/x86/include/uapi/asm/posix_types.h   |9 +
 arch/x86/include/{ => uapi}/asm/posix_types_32.h  |0
 arch/x86/include/{ => uapi}/asm/posix_types_64.h  |0
 arch/x86/include/{ => uapi}/asm/posix_types_x32.h |0
 arch/x86/include/{ => uapi}/asm/prctl.h   |0
 arch/x86/include/uapi/asm/processor-flags.h   |   99 +
 arch/x86/include/{ => uapi}/asm/ptrace-abi.h  |0
 arch/x86/include/uapi/asm/ptrace.h|   78 
 arch/x86/include/{ => uapi}/asm/resource.h|0
 arch/x86/include/{ => uapi}/asm/sembuf.h  |0
 arch/x86/include/{ => uapi}/asm/shmbuf.h  |0
 arch/x86/include/uapi/asm/sigcontext.h|  221 +
 arch/x86/include/{ => uapi}/asm/sigcontext32.h|0
 arch/x86/include/{ => uapi}/asm/siginfo.h |0
 arch/x86/include/uapi/asm/signal.h|  145 ++
 arch/x86/include/{ => uapi}/asm/socket.h  |0
 arch/x86/include/{ => uapi}/asm/sockios.h |0
 arch/x86/include/{ => uapi}/asm/stat.h|0
 arch/x86/include/{ => uapi}/asm/statfs.h  |0
 

[GIT PULL] x86/uapi for 3.8

2012-12-12 Thread H. Peter Anvin
Hi Linus,

This is the arch/x86 portion of David Howell's user API splitup.

Since this is a build or fail type patchset, I consider it to be
very low risk.

My test merge shows a single merge conflict in
arch/x86/include/asm/mce.h; the resolution should simply be to remove
the bits from the conflicted merge that are already in
arch/x86/include/uapi/asm/mce.h.

The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 
16:39:00 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-uapi-for-linus

David Howells (1):
  UAPI: (Scripted) Disintegrate arch/x86/include/asm

 arch/x86/include/asm/Kbuild   |   26 ---
 arch/x86/include/asm/boot.h   |9 +-
 arch/x86/include/asm/debugreg.h   |   79 +
 arch/x86/include/asm/e820.h   |   74 +---
 arch/x86/include/asm/hw_breakpoint.h  |5 +-
 arch/x86/include/asm/ist.h|   17 +--
 arch/x86/include/asm/kvm_para.h   |   99 +-
 arch/x86/include/asm/mce.h|  119 +---
 arch/x86/include/asm/msr.h|   11 +-
 arch/x86/include/asm/mtrr.h   |   93 +-
 arch/x86/include/asm/posix_types.h|   10 -
 arch/x86/include/asm/processor-flags.h|   97 +-
 arch/x86/include/asm/ptrace.h |   75 +---
 arch/x86/include/asm/setup.h  |5 +-
 arch/x86/include/asm/sigcontext.h |  216 +
 arch/x86/include/asm/signal.h |  140 +-
 arch/x86/include/asm/svm.h|  132 +
 arch/x86/include/asm/unistd.h |   14 +--
 arch/x86/include/asm/vm86.h   |  128 +
 arch/x86/include/asm/vmx.h|   89 +
 arch/x86/include/asm/vsyscall.h   |   16 +--
 arch/x86/include/uapi/asm/Kbuild  |   58 ++
 arch/x86/include/{ = uapi}/asm/a.out.h   |0
 arch/x86/include/{ = uapi}/asm/auxvec.h  |0
 arch/x86/include/{ = uapi}/asm/bitsperlong.h |0
 arch/x86/include/uapi/asm/boot.h  |   10 +
 arch/x86/include/{ = uapi}/asm/bootparam.h   |0
 arch/x86/include/{ = uapi}/asm/byteorder.h   |0
 arch/x86/include/uapi/asm/debugreg.h  |   80 
 arch/x86/include/uapi/asm/e820.h  |   75 +++
 arch/x86/include/{ = uapi}/asm/errno.h   |0
 arch/x86/include/{ = uapi}/asm/fcntl.h   |0
 arch/x86/include/{ = uapi}/asm/hyperv.h  |0
 arch/x86/include/{ = uapi}/asm/ioctl.h   |0
 arch/x86/include/{ = uapi}/asm/ioctls.h  |0
 arch/x86/include/{ = uapi}/asm/ipcbuf.h  |0
 arch/x86/include/uapi/asm/ist.h   |   29 +++
 arch/x86/include/{ = uapi}/asm/kvm.h |0
 arch/x86/include/uapi/asm/kvm_para.h  |  100 ++
 arch/x86/include/{ = uapi}/asm/ldt.h |0
 arch/x86/include/uapi/asm/mce.h   |  121 +++
 arch/x86/include/{ = uapi}/asm/mman.h|0
 arch/x86/include/{ = uapi}/asm/msgbuf.h  |0
 arch/x86/include/{ = uapi}/asm/msr-index.h   |0
 arch/x86/include/uapi/asm/msr.h   |   15 ++
 arch/x86/include/uapi/asm/mtrr.h  |  117 +++
 arch/x86/include/{ = uapi}/asm/param.h   |0
 arch/x86/include/{ = uapi}/asm/perf_regs.h   |0
 arch/x86/include/{ = uapi}/asm/poll.h|0
 arch/x86/include/uapi/asm/posix_types.h   |9 +
 arch/x86/include/{ = uapi}/asm/posix_types_32.h  |0
 arch/x86/include/{ = uapi}/asm/posix_types_64.h  |0
 arch/x86/include/{ = uapi}/asm/posix_types_x32.h |0
 arch/x86/include/{ = uapi}/asm/prctl.h   |0
 arch/x86/include/uapi/asm/processor-flags.h   |   99 +
 arch/x86/include/{ = uapi}/asm/ptrace-abi.h  |0
 arch/x86/include/uapi/asm/ptrace.h|   78 
 arch/x86/include/{ = uapi}/asm/resource.h|0
 arch/x86/include/{ = uapi}/asm/sembuf.h  |0
 arch/x86/include/{ = uapi}/asm/shmbuf.h  |0
 arch/x86/include/uapi/asm/sigcontext.h|  221 +
 arch/x86/include/{ = uapi}/asm/sigcontext32.h|0
 arch/x86/include/{ = uapi}/asm/siginfo.h |0
 arch/x86/include/uapi/asm/signal.h|  145 ++
 arch/x86/include/{ = uapi}/asm/socket.h  |0
 arch/x86/include/{ = uapi}/asm/sockios.h |0
 arch/x86/include/{ = uapi}/asm/stat.h|0
 arch/x86/include/{ = uapi}/asm/statfs.h  |0
 arch/x86/include/uapi/asm/svm.h 

Re: [GIT PULL] x86/uapi for 3.8

2012-12-12 Thread David Howells
H. Peter Anvin h...@linux.intel.com wrote:

 The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:
 
   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 
 16:39:00 -0800)
 
 are available in the git repository at:
 
   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-uapi-for-linus

Unfortunately, that is broken by Al Viro's mass signalling changes.  I've
regenerated it based on Linus's current master.  Pull request below.

The same merge conflict with tip/master still exists, I imagine, due to the
changes in tipbot for asm/mce.h, so if tip/master is merged first, then it
might be worth me regenerating my changes.

Should it go via tipbot?

David
---
The following changes since commit 9977d9b379cb77e0f67bd6f4563618106e58e11d:

  Merge branch 'for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal (2012-12-12 12:22:13 
-0800)

are available in the git repository at:


  git://git.infradead.org/users/dhowells/linux-headers.git 
tags/disintegrate-x86-20121212

for you to fetch changes up to c12519530533e2bdd93e5753bcd565fda35f3df0:

  UAPI: (Scripted) Disintegrate arch/x86/include/asm (2012-12-12 22:58:24 +)


UAPI disintegration 2012-12-12


David Howells (1):
  UAPI: (Scripted) Disintegrate arch/x86/include/asm

 arch/x86/include/asm/Kbuild   |  26 ---
 arch/x86/include/asm/boot.h   |   9 +-
 arch/x86/include/asm/debugreg.h   |  79 +---
 arch/x86/include/asm/e820.h   |  74 +---
 arch/x86/include/asm/hw_breakpoint.h  |   5 +-
 arch/x86/include/asm/ist.h|  17 +-
 arch/x86/include/asm/kvm_para.h   |  99 +-
 arch/x86/include/asm/mce.h| 119 +---
 arch/x86/include/asm/msr.h|  11 +-
 arch/x86/include/asm/mtrr.h   |  93 +
 arch/x86/include/asm/posix_types.h|  10 -
 arch/x86/include/asm/processor-flags.h|  97 +-
 arch/x86/include/asm/ptrace.h |  75 +---
 arch/x86/include/asm/setup.h  |   5 +-
 arch/x86/include/asm/sigcontext.h | 216 +
 arch/x86/include/asm/signal.h | 140 +-
 arch/x86/include/asm/svm.h| 132 +
 arch/x86/include/asm/unistd.h |  14 +-
 arch/x86/include/asm/vm86.h   | 128 +
 arch/x86/include/asm/vmx.h|  89 +
 arch/x86/include/asm/vsyscall.h   |  16 +-
 arch/x86/include/uapi/asm/Kbuild  |  58 ++
 arch/x86/include/{ = uapi}/asm/a.out.h   |   0
 arch/x86/include/{ = uapi}/asm/auxvec.h  |   0
 arch/x86/include/{ = uapi}/asm/bitsperlong.h |   0
 arch/x86/include/uapi/asm/boot.h  |  10 +
 arch/x86/include/{ = uapi}/asm/bootparam.h   |   0
 arch/x86/include/{ = uapi}/asm/byteorder.h   |   0
 arch/x86/include/uapi/asm/debugreg.h  |  80 
 arch/x86/include/uapi/asm/e820.h  |  75 
 arch/x86/include/{ = uapi}/asm/errno.h   |   0
 arch/x86/include/{ = uapi}/asm/fcntl.h   |   0
 arch/x86/include/{ = uapi}/asm/hyperv.h  |   0
 arch/x86/include/{ = uapi}/asm/ioctl.h   |   0
 arch/x86/include/{ = uapi}/asm/ioctls.h  |   0
 arch/x86/include/{ = uapi}/asm/ipcbuf.h  |   0
 arch/x86/include/uapi/asm/ist.h   |  29 +++
 arch/x86/include/{ = uapi}/asm/kvm.h |   0
 arch/x86/include/uapi/asm/kvm_para.h  | 100 ++
 arch/x86/include/{ = uapi}/asm/ldt.h |   0
 arch/x86/include/uapi/asm/mce.h   | 121 
 arch/x86/include/{ = uapi}/asm/mman.h|   0
 arch/x86/include/{ = uapi}/asm/msgbuf.h  |   0
 arch/x86/include/{ = uapi}/asm/msr-index.h   |   0
 arch/x86/include/uapi/asm/msr.h   |  15 ++
 arch/x86/include/uapi/asm/mtrr.h  | 117 
 arch/x86/include/{ = uapi}/asm/param.h   |   0
 arch/x86/include/{ = uapi}/asm/perf_regs.h   |   0
 arch/x86/include/{ = uapi}/asm/poll.h|   0
 arch/x86/include/uapi/asm/posix_types.h   |   9 +
 arch/x86/include/{ = uapi}/asm/posix_types_32.h  |   0
 arch/x86/include/{ = uapi}/asm/posix_types_64.h  |   0
 arch/x86/include/{ = uapi}/asm/posix_types_x32.h |   0
 arch/x86/include/{ = uapi}/asm/prctl.h   |   0
 arch/x86/include/uapi/asm/processor-flags.h   |  99 ++
 arch/x86/include/{ = uapi}/asm/ptrace-abi.h  |   0
 arch/x86/include/uapi/asm/ptrace.h|  78 
 arch/x86/include/{ = uapi}/asm/resource.h|   0