* [Bug Fix]: Do 32-bit table calculations in pre-processor
@ 2009-07-03 18:14 Michael S. Zick
2009-07-03 18:27 ` Andi Kleen
` (3 more replies)
0 siblings, 4 replies; 30+ messages in thread
From: Michael S. Zick @ 2009-07-03 18:14 UTC (permalink / raw)
To: linux-kernel
Here is one I have found useful in my VIA processor bug hunting:
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 3068388..2303d86 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -61,7 +61,7 @@
/* Enough space to fit pagetables for the low memory linear map */
MAPPING_BEYOND_END = \
- PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT
+ PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT
/*
* Worst-case size of the kernel mapping we need to make:
= = =
Before:
#5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000]
#6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000]
After:
#5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000]
#6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000]
Someone who knows mm check which is the reasonable value please.
Mike
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 18:14 [Bug Fix]: Do 32-bit table calculations in pre-processor Michael S. Zick @ 2009-07-03 18:27 ` Andi Kleen 2009-07-03 18:38 ` Michael S. Zick 2009-07-03 18:56 ` Jeremy Fitzhardinge ` (2 subsequent siblings) 3 siblings, 1 reply; 30+ messages in thread From: Andi Kleen @ 2009-07-03 18:27 UTC (permalink / raw) To: lkml; +Cc: linux-kernel "Michael S. Zick" <lkml@morethan.org> writes: > Here is one I have found useful in my VIA processor bug hunting: Could you please expand a bit what bug this is supposed to fix? -Andi -- ak@linux.intel.com -- Speaking for myself only. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 18:27 ` Andi Kleen @ 2009-07-03 18:38 ` Michael S. Zick 2009-07-03 19:08 ` Jeremy Fitzhardinge 0 siblings, 1 reply; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 18:38 UTC (permalink / raw) To: Andi Kleen; +Cc: linux-kernel On Fri July 3 2009, Andi Kleen wrote: > "Michael S. Zick" <lkml@morethan.org> writes: > > > Here is one I have found useful in my VIA processor bug hunting: > > Could you please expand a bit what bug this is supposed to fix? > I make no claims for it at the moment - too early in the test process. Just the general observation that it takes 0.5M to describe 0.5G of ram. Also, the observation that (1<<32) drops the bit off the left end of a 32-bit value. You can see the result in the portion of the post you snipped out. ;) Mike > -Andi > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 18:38 ` Michael S. Zick @ 2009-07-03 19:08 ` Jeremy Fitzhardinge 2009-07-03 19:13 ` Michael S. Zick 0 siblings, 1 reply; 30+ messages in thread From: Jeremy Fitzhardinge @ 2009-07-03 19:08 UTC (permalink / raw) To: lkml; +Cc: Andi Kleen, linux-kernel On 07/03/09 11:38, Michael S. Zick wrote: > I make no claims for it at the moment - too early in the test process. > Just the general observation that it takes 0.5M to describe 0.5G of ram. > Only if you're using 4k pages. With large pages, 1 pte can map 2M, so 256 entries can map 512M, so you only need 1/2 a page of pagetable (assuming PAE; if not a single entry can map 4M). > Also, > the observation that (1<<32) drops the bit off the left end of a 32-bit value. > You can see the result in the portion of the post you snipped out. ;) > Those computations aren't done as 32-bit. $ as << EOF .data .byte (1 << 100) >> 100 EOF $ objdump -D a.out a.out: file format elf64-x86-64 Disassembly of section .data: 0000000000000000 <.data>: 0: 01 .byte 0x1 J ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:08 ` Jeremy Fitzhardinge @ 2009-07-03 19:13 ` Michael S. Zick 2009-07-03 19:30 ` Jeremy Fitzhardinge 0 siblings, 1 reply; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 19:13 UTC (permalink / raw) To: Jeremy Fitzhardinge; +Cc: Andi Kleen, linux-kernel On Fri July 3 2009, Jeremy Fitzhardinge wrote: > On 07/03/09 11:38, Michael S. Zick wrote: > > I make no claims for it at the moment - too early in the test process. > > Just the general observation that it takes 0.5M to describe 0.5G of ram. > > > Only if you're using 4k pages. With large pages, 1 pte can map 2M, so > 256 entries can map 512M, so you only need 1/2 a page of pagetable > (assuming PAE; if not a single entry can map 4M). > Ah, but you can't assume that - look at your VIA-C7M tech sheet - NO PAE. Mike > > Also, > > the observation that (1<<32) drops the bit off the left end of a 32-bit value. > > You can see the result in the portion of the post you snipped out. ;) > > > > Those computations aren't done as 32-bit. > Try ending the filename in ".S" and passing it to gcc, like the build system does. And while your at it, thank A.K. for snipping off the before/after dmesg. Mike > > $ as << EOF > .data > .byte (1 << 100) >> 100 > EOF > $ objdump -D a.out > > a.out: file format elf64-x86-64 > > Disassembly of section .data: > > 0000000000000000 <.data>: > 0: 01 .byte 0x1 > > > J > > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:13 ` Michael S. Zick @ 2009-07-03 19:30 ` Jeremy Fitzhardinge 2009-07-03 20:03 ` Michael S. Zick 0 siblings, 1 reply; 30+ messages in thread From: Jeremy Fitzhardinge @ 2009-07-03 19:30 UTC (permalink / raw) To: lkml; +Cc: Andi Kleen, linux-kernel On 07/03/09 12:13, Michael S. Zick wrote: > On Fri July 3 2009, Jeremy Fitzhardinge wrote: > >> On 07/03/09 11:38, Michael S. Zick wrote: >> >>> I make no claims for it at the moment - too early in the test process. >>> Just the general observation that it takes 0.5M to describe 0.5G of ram. >>> >>> >> Only if you're using 4k pages. With large pages, 1 pte can map 2M, so >> 256 entries can map 512M, so you only need 1/2 a page of pagetable >> (assuming PAE; if not a single entry can map 4M). >> >> > > Ah, but you can't assume that - look at your VIA-C7M tech sheet - NO PAE. > According to http://www.via.com.tw/en/products/processors/c7-m/secure_by_design.jsp, it supports NX, which means it must support PAE. But even without PAE, it can still support PSE (large pages). > Try ending the filename in ".S" and passing it to gcc, > like the build system does. > It doesn't make any difference. After going through cpp the expression is: # 62 "/home/jeremy/git/linux/arch/x86/kernel/head_32.S" MAPPING_BEYOND_END = (((((1<<32) - 0xC0000000) >> 12) / 512) + 4) << 12 which will be evaluated by the assembler. The C preprocessor doesn't evaluate expressions in the source; it only ever does substitutions and leaves the results for the compiler/assembler to evaluate. (It evals expressions on cpp # lines, of course, but that's not relevant here.) J ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:30 ` Jeremy Fitzhardinge @ 2009-07-03 20:03 ` Michael S. Zick 0 siblings, 0 replies; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 20:03 UTC (permalink / raw) To: Jeremy Fitzhardinge; +Cc: Andi Kleen, linux-kernel On Fri July 3 2009, Jeremy Fitzhardinge wrote: > On 07/03/09 12:13, Michael S. Zick wrote: > > On Fri July 3 2009, Jeremy Fitzhardinge wrote: > > > >> On 07/03/09 11:38, Michael S. Zick wrote: > >> > >>> I make no claims for it at the moment - too early in the test process. > >>> Just the general observation that it takes 0.5M to describe 0.5G of ram. > >>> > >>> > >> Only if you're using 4k pages. With large pages, 1 pte can map 2M, so > >> 256 entries can map 512M, so you only need 1/2 a page of pagetable > >> (assuming PAE; if not a single entry can map 4M). > >> > >> > > > > Ah, but you can't assume that - look at your VIA-C7M tech sheet - NO PAE. > > > > According to > http://www.via.com.tw/en/products/processors/c7-m/secure_by_design.jsp, > it supports NX, which means it must support PAE. > Interesting - this *&^&^% technical datasheet contradicts itself (again). It can't see to decide if it does or it doesn't - - I guess I will have to ask the silicon - with my own code - I have a hardware diagnostic here that claims it doesn't (but it is closed source...) so I don't know if it is testing or guessing. > But even without PAE, it can still support PSE (large pages). > > > Try ending the filename in ".S" and passing it to gcc, > > like the build system does. > > > > It doesn't make any difference. After going through cpp the expression is: > > # 62 "/home/jeremy/git/linux/arch/x86/kernel/head_32.S" > MAPPING_BEYOND_END = (((((1<<32) - 0xC0000000) >> 12) / 512) + 4) << 12 > > > which will be evaluated by the assembler. The C preprocessor doesn't > evaluate expressions in the source; it only ever does substitutions and > leaves the results for the compiler/assembler to evaluate. (It evals > expressions on cpp # lines, of course, but that's not relevant here.) > That is probably what I had in my mind - the "# line" case, sorry, my bad. Mike > J > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 18:14 [Bug Fix]: Do 32-bit table calculations in pre-processor Michael S. Zick 2009-07-03 18:27 ` Andi Kleen @ 2009-07-03 18:56 ` Jeremy Fitzhardinge 2009-07-03 18:57 ` Jeremy Fitzhardinge 2009-07-03 20:07 ` Yinghai Lu 3 siblings, 0 replies; 30+ messages in thread From: Jeremy Fitzhardinge @ 2009-07-03 18:56 UTC (permalink / raw) To: lkml; +Cc: linux-kernel, H. Peter Anvin, Thomas Gleixner On 07/03/09 11:14, Michael S. Zick wrote: > Here is one I have found useful in my VIA processor bug hunting: > > diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S > index 3068388..2303d86 100644 > --- a/arch/x86/kernel/head_32.S > +++ b/arch/x86/kernel/head_32.S > @@ -61,7 +61,7 @@ > > /* Enough space to fit pagetables for the low memory linear map */ > MAPPING_BEYOND_END = \ > - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT > + PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT > > These calculations are performed by the assembler, not the preprocessor. I think this transformation looks correct (in that its an identity with the original), but my understanding is that the assembler does it calculations in arbitrary precision, so there's no need to worry about limiting the arithmetic to 32-bits. > /* > * Worst-case size of the kernel mapping we need to make: > > = = = > > Before: > > #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000] > #6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000] > > After: > > #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] > #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] > > Someone who knows mm check which is the reasonable value please. > The PGTABLE reservation seems much too big. I think 1 page should be sufficient for a system with large pages. Even if not, 0x6d000 is way too large. And they symptoms of failing to reserve the initial pagetable are pretty non-subtle. J ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 18:14 [Bug Fix]: Do 32-bit table calculations in pre-processor Michael S. Zick 2009-07-03 18:27 ` Andi Kleen 2009-07-03 18:56 ` Jeremy Fitzhardinge @ 2009-07-03 18:57 ` Jeremy Fitzhardinge 2009-07-03 19:03 ` Michael S. Zick 2009-07-03 20:07 ` Yinghai Lu 3 siblings, 1 reply; 30+ messages in thread From: Jeremy Fitzhardinge @ 2009-07-03 18:57 UTC (permalink / raw) To: lkml Cc: linux-kernel, H. Peter Anvin, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen [ Missed some recipients. ] On 07/03/09 11:14, Michael S. Zick wrote: > Here is one I have found useful in my VIA processor bug hunting: > > diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S > index 3068388..2303d86 100644 > --- a/arch/x86/kernel/head_32.S > +++ b/arch/x86/kernel/head_32.S > @@ -61,7 +61,7 @@ > > /* Enough space to fit pagetables for the low memory linear map */ > MAPPING_BEYOND_END = \ > - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT > + PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT > > These calculations are performed by the assembler, not the preprocessor. I think this transformation looks correct (in that its an identity with the original), but my understanding is that the assembler does it calculations in arbitrary precision, so there's no need to worry about limiting the arithmetic to 32-bits. > /* > * Worst-case size of the kernel mapping we need to make: > > = = = > > Before: > > #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000] > #6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000] > > After: > > #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] > #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] > > Someone who knows mm check which is the reasonable value please. > The PGTABLE reservation seems much too big. I think 1 page should be sufficient for a system with large pages. Even if not, 0x6d000 is way too large. And they symptoms of failing to reserve the initial pagetable are pretty non-subtle. J ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 18:57 ` Jeremy Fitzhardinge @ 2009-07-03 19:03 ` Michael S. Zick 2009-07-03 19:11 ` Jeremy Fitzhardinge ` (2 more replies) 0 siblings, 3 replies; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 19:03 UTC (permalink / raw) To: Jeremy Fitzhardinge Cc: linux-kernel, H. Peter Anvin, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On Fri July 3 2009, Jeremy Fitzhardinge wrote: > [ Missed some recipients. ] > > On 07/03/09 11:14, Michael S. Zick wrote: > > Here is one I have found useful in my VIA processor bug hunting: > > > > diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S > > index 3068388..2303d86 100644 > > --- a/arch/x86/kernel/head_32.S > > +++ b/arch/x86/kernel/head_32.S > > @@ -61,7 +61,7 @@ > > > > /* Enough space to fit pagetables for the low memory linear map */ > > MAPPING_BEYOND_END = \ > > - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT > > + PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT > > > > > > These calculations are performed by the assembler, not the > preprocessor. I think this transformation looks correct (in that its an > identity with the original), but my understanding is that the assembler > does it calculations in arbitrary precision, so there's no need to worry > about limiting the arithmetic to 32-bits. > > > /* > > * Worst-case size of the kernel mapping we need to make: > > > > = = = > > > > Before: > > > > #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000] > > #6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000] > > > > After: > > > > #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] > > #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] > > > > Someone who knows mm check which is the reasonable value please. > > > > > The PGTABLE reservation seems much too big. I think 1 page should be > sufficient for a system with large pages. Even if not, 0x6d000 is way > too large. And they symptoms of failing to reserve the initial > pagetable are pretty non-subtle. > Random system halts, deadlocks with interrupts disabled? Yup, that sounds familiar. If I ever get more than a stopped machine with a glowing power light; I will be certain to share. Mike > J > > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:03 ` Michael S. Zick @ 2009-07-03 19:11 ` Jeremy Fitzhardinge 2009-07-03 19:18 ` H. Peter Anvin 2009-07-03 19:14 ` H. Peter Anvin 2009-07-03 19:33 ` Jeremy Fitzhardinge 2 siblings, 1 reply; 30+ messages in thread From: Jeremy Fitzhardinge @ 2009-07-03 19:11 UTC (permalink / raw) To: lkml Cc: linux-kernel, H. Peter Anvin, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On 07/03/09 12:03, Michael S. Zick wrote: > Random system halts, deadlocks with interrupts disabled? > Yup, that sounds familiar. > No, mostly memory corruption, with all sorts of indicative kernel messages (esp if you have all the debugging options on). But my point is that if there were something wrong in that particular piece of code, it would have very widespread effects. It would not be subtle in the sense of only affecting one or two people. > If I ever get more than a stopped machine with a glowing power light; > I will be certain to share. > Hm, well that does sound serious, but I think you're barking up the wrong tree with this particular patch. J ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:11 ` Jeremy Fitzhardinge @ 2009-07-03 19:18 ` H. Peter Anvin 2009-07-03 19:46 ` Michael S. Zick 0 siblings, 1 reply; 30+ messages in thread From: H. Peter Anvin @ 2009-07-03 19:18 UTC (permalink / raw) To: Jeremy Fitzhardinge Cc: lkml, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen Jeremy Fitzhardinge wrote: > > Hm, well that does sound serious, but I think you're barking up the > wrong tree with this particular patch. > Well, if it changes behavior it's an indication that the version of gas he's using is broken (or possibly very old.) What version is it? -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:18 ` H. Peter Anvin @ 2009-07-03 19:46 ` Michael S. Zick 2009-07-03 20:00 ` H. Peter Anvin 0 siblings, 1 reply; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 19:46 UTC (permalink / raw) To: H. Peter Anvin Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On Fri July 3 2009, H. Peter Anvin wrote: > Jeremy Fitzhardinge wrote: > > > > Hm, well that does sound serious, but I think you're barking up the > > wrong tree with this particular patch. > > > > Well, if it changes behavior it's an indication that the version of gas > he's using is broken (or possibly very old.) What version is it? > Whatever Gentoo was shipping with 4.1 - - System and operator are down for lunch at the moment - I'll look it up and reply soonest. Scroll back up to my first post - it does make a difference with this tool-chain - exactly difference expected if the tool chain is doing 32-bit calculations. And since it is a "*.S" file - I think cpp is doing it not gas/as. Mike > -hpa > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:46 ` Michael S. Zick @ 2009-07-03 20:00 ` H. Peter Anvin 0 siblings, 0 replies; 30+ messages in thread From: H. Peter Anvin @ 2009-07-03 20:00 UTC (permalink / raw) To: lkml Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen Michael S. Zick wrote: > On Fri July 3 2009, H. Peter Anvin wrote: >> Jeremy Fitzhardinge wrote: >>> Hm, well that does sound serious, but I think you're barking up the >>> wrong tree with this particular patch. >>> >> Well, if it changes behavior it's an indication that the version of gas >> he's using is broken (or possibly very old.) What version is it? >> > > Whatever Gentoo was shipping with 4.1 - - > System and operator are down for lunch at the moment - > I'll look it up and reply soonest. > > Scroll back up to my first post - it does make a difference > with this tool-chain - exactly difference expected if the > tool chain is doing 32-bit calculations. > > And since it is a "*.S" file - I think cpp is doing it not gas/as. > You're wrong. cpp will expand the constants, but as will actually do the calculation. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:03 ` Michael S. Zick 2009-07-03 19:11 ` Jeremy Fitzhardinge @ 2009-07-03 19:14 ` H. Peter Anvin 2009-07-03 19:41 ` Michael S. Zick 2009-07-04 13:23 ` Michael S. Zick 2009-07-03 19:33 ` Jeremy Fitzhardinge 2 siblings, 2 replies; 30+ messages in thread From: H. Peter Anvin @ 2009-07-03 19:14 UTC (permalink / raw) To: lkml Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen Michael S. Zick wrote: >> >> The PGTABLE reservation seems much too big. I think 1 page should be >> sufficient for a system with large pages. Even if not, 0x6d000 is way >> too large. And they symptoms of failing to reserve the initial >> pagetable are pretty non-subtle. >> > > Random system halts, deadlocks with interrupts disabled? > Yup, that sounds familiar. > > If I ever get more than a stopped machine with a glowing power light; > I will be certain to share. > Let's see... on a non-PSE system we may need one PDE and one PTE page per 4 MB, up to 1 GB, for a total of 256 pages or 1 MB of memory, so in that sense 0x6d000 (109 pages) doesn't sound at all unreasonable (non-PSE system with 512 MB of RAM?) However, we shouldn't have to do this kind of hacks with MAPPING_BEYOND_END, and we *certainly* shouldn't do it by implicitly hard-coding the value of PAGE_SHIFT. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:14 ` H. Peter Anvin @ 2009-07-03 19:41 ` Michael S. Zick 2009-07-03 19:48 ` H. Peter Anvin 2009-07-04 13:23 ` Michael S. Zick 1 sibling, 1 reply; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 19:41 UTC (permalink / raw) To: H. Peter Anvin Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On Fri July 3 2009, H. Peter Anvin wrote: > Michael S. Zick wrote: > >> > >> The PGTABLE reservation seems much too big. I think 1 page should be > >> sufficient for a system with large pages. Even if not, 0x6d000 is way > >> too large. And they symptoms of failing to reserve the initial > >> pagetable are pretty non-subtle. > >> > > > > Random system halts, deadlocks with interrupts disabled? > > Yup, that sounds familiar. > > > > If I ever get more than a stopped machine with a glowing power light; > > I will be certain to share. > > > > Let's see... on a non-PSE system we may need one PDE and one PTE page > per 4 MB, up to 1 GB, for a total of 256 pages or 1 MB of memory, so in > that sense 0x6d000 (109 pages) doesn't sound at all unreasonable > (non-PSE system with 512 MB of RAM?) > > However, we shouldn't have to do this kind of hacks with > MAPPING_BEYOND_END, and we *certainly* shouldn't do it by implicitly > hard-coding the value of PAGE_SHIFT. > Good point: (1<<(32-PAGE_SIFT)) would handle other than 4k pages. I just hardcoded it as a working example of the change from setting the page table size by design rather than numeric error. And yes, it has 512Mbyte of ram, so 1/2Mbyte page table sounds right to me. Mike > -hpa > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:41 ` Michael S. Zick @ 2009-07-03 19:48 ` H. Peter Anvin 2009-07-03 20:38 ` Michael S. Zick 0 siblings, 1 reply; 30+ messages in thread From: H. Peter Anvin @ 2009-07-03 19:48 UTC (permalink / raw) To: lkml Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen Michael S. Zick wrote: > > Good point: (1<<(32-PAGE_SIFT)) would handle other than 4k pages. > > I just hardcoded it as a working example of the change from setting > the page table size by design rather than numeric error. > As Jeremy pointed out, it's not wrong as written. gas by design uses arbitrary-precision arithmetic, and even if it didn't, it would still be correct: (1 << 32) would collapse to 0, so all the rest of the calculations would still be right. Any way you can dump out this value from the vmlinux file (nm vmlinux | grep MAPPING_BEYOND_END) in both cases? What version of as/binutils do you have installed? > And yes, it has 512Mbyte of ram, so 1/2Mbyte page table sounds right to me. /proc/cpuinfo, please? -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:48 ` H. Peter Anvin @ 2009-07-03 20:38 ` Michael S. Zick 2009-07-03 20:40 ` H. Peter Anvin 0 siblings, 1 reply; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 20:38 UTC (permalink / raw) To: H. Peter Anvin Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On Fri July 3 2009, H. Peter Anvin wrote: > Michael S. Zick wrote: > > > > Good point: (1<<(32-PAGE_SIFT)) would handle other than 4k pages. > > > > I just hardcoded it as a working example of the change from setting > > the page table size by design rather than numeric error. > > > > As Jeremy pointed out, it's not wrong as written. gas by design uses > arbitrary-precision arithmetic, and even if it didn't, it would still be > correct: (1 << 32) would collapse to 0, so all the rest of the > calculations would still be right. > > Any way you can dump out this value from the vmlinux file (nm vmlinux | > grep MAPPING_BEYOND_END) in both cases? > Can't find it in either case, or with objdump. (g)as reports itself as version 2.18 > What version of as/binutils do > you have installed? > > > And yes, it has 512Mbyte of ram, so 1/2Mbyte page table sounds right to me. > > /proc/cpuinfo, please? > That takes a running machine - which is a bit of a challenge at the moment. Well, for the past four months, if truth be told. Anything in particular you are looking for? I may have it in my notes and data captures. Mike > -hpa > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 20:38 ` Michael S. Zick @ 2009-07-03 20:40 ` H. Peter Anvin 2009-07-03 21:02 ` Michael S. Zick 2009-07-03 22:01 ` Michael S. Zick 0 siblings, 2 replies; 30+ messages in thread From: H. Peter Anvin @ 2009-07-03 20:40 UTC (permalink / raw) To: lkml Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen Michael S. Zick wrote: > > That takes a running machine - which is a bit of a challenge at the moment. > Well, for the past four months, if truth be told. > > Anything in particular you are looking for? > I may have it in my notes and data captures. > The CPUID flags, in particular the pse flag. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 20:40 ` H. Peter Anvin @ 2009-07-03 21:02 ` Michael S. Zick 2009-07-03 22:33 ` H. Peter Anvin 2009-07-03 22:01 ` Michael S. Zick 1 sibling, 1 reply; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 21:02 UTC (permalink / raw) To: H. Peter Anvin Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On Fri July 3 2009, H. Peter Anvin wrote: > Michael S. Zick wrote: > > > > That takes a running machine - which is a bit of a challenge at the moment. > > Well, for the past four months, if truth be told. > > > > Anything in particular you are looking for? > > I may have it in my notes and data captures. > > > > The CPUID flags, in particular the pse flag. > I haven't touch anything that would have changed that - so this should be representative (the *&^*% datasheet says yes to pse also) processor : 0 vendor_id : CentaurHauls cpu family : 6 model : 13 model name : VIA C7-M Processor 1200MHz stepping : 0 cpu MHz : 600.024 cache size : 128 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge cmov pat clfl ush acpi mmx fxsr sse sse2 tm nx up pni est tm2 xtpr rng rng_en ace ace_en ace2 ace2 _en phe phe_en pmm pmm_en bogomips : 1201.11 clflush size : 64 That's from a 2.6.25 rescue disk - should be close enough. At least until I get the machine running again. Mike > -hpa > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 21:02 ` Michael S. Zick @ 2009-07-03 22:33 ` H. Peter Anvin 2009-07-04 0:05 ` Michael S. Zick 0 siblings, 1 reply; 30+ messages in thread From: H. Peter Anvin @ 2009-07-03 22:33 UTC (permalink / raw) To: lkml Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen Michael S. Zick wrote: >>> >> The CPUID flags, in particular the pse flag. >> > > I haven't touch anything that would have changed that - > so this should be representative (the *&^*% datasheet says yes to pse also) > Actually, come to think of it, we don't generate PSE page tables initially -- we only later go in and reclaim the page tables if we switch to PSE (and $DEITY knows if we're doing it correctly...) -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 22:33 ` H. Peter Anvin @ 2009-07-04 0:05 ` Michael S. Zick 2009-07-04 0:11 ` H. Peter Anvin 0 siblings, 1 reply; 30+ messages in thread From: Michael S. Zick @ 2009-07-04 0:05 UTC (permalink / raw) To: H. Peter Anvin Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On Fri July 3 2009, H. Peter Anvin wrote: > Michael S. Zick wrote: > >>> > >> The CPUID flags, in particular the pse flag. > >> > > > > I haven't touch anything that would have changed that - > > so this should be representative (the *&^*% datasheet says yes to pse also) > > > > Actually, come to think of it, we don't generate PSE page tables > initially -- we only later go in and reclaim the page tables if we > switch to PSE (and $DEITY knows if we're doing it correctly...) > I am of that age range where senility has to be considered, but not this time: "Via C7-M Datasheet", May 2008 (supposed to be most recent) - page 22 - section 2.3.7 - Table 2-14 "CR4 Bits" "<5> PAE: Enables address extensions; C7-M:<r>" <quote>An "r" means that this bit is reserved. It appears as a 0 when read, and a GP exception is signaled if an attemp is made to write a 1 to this bit.</quote> Same document - page 16 - section 2.3.2 - Table 2-3 "CPUID Feature Flag Values (EAX=1)" <EDX:6> PAE: Physical address extensions; C7:<1> So take your pick - it might be there or it might not - - - If you like that one, read the MCE bit "Documentation" ;) Note: When this bit is (attempted) to be set in head.S I think that the GP fault is still "no-opted" by that dummy routine. So we would never hear about it. Also, according to H.W. the NX bit is a lie told to keep some OS's happy. And then, of course, the silicon can have micro-code updates - - All bets are off if mine works the same as yours does. ;) Mike > -hpa > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-04 0:05 ` Michael S. Zick @ 2009-07-04 0:11 ` H. Peter Anvin 0 siblings, 0 replies; 30+ messages in thread From: H. Peter Anvin @ 2009-07-04 0:11 UTC (permalink / raw) To: lkml Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen Michael S. Zick wrote: > On Fri July 3 2009, H. Peter Anvin wrote: >> Michael S. Zick wrote: >>>> The CPUID flags, in particular the pse flag. >>>> >>> I haven't touch anything that would have changed that - >>> so this should be representative (the *&^*% datasheet says yes to pse also) >>> >> Actually, come to think of it, we don't generate PSE page tables >> initially -- we only later go in and reclaim the page tables if we >> switch to PSE (and $DEITY knows if we're doing it correctly...) >> > > I am of that age range where senility has to be considered, but not this time: > > "Via C7-M Datasheet", May 2008 (supposed to be most recent) - > > page 22 - section 2.3.7 - Table 2-14 "CR4 Bits" > "<5> PAE: Enables address extensions; C7-M:<r>" > <quote>An "r" means that this bit is reserved. It appears as a 0 when read, > and a GP exception is signaled if an attemp is made to write a 1 to this bit.</quote> > > Same document - > page 16 - section 2.3.2 - Table 2-3 "CPUID Feature Flag Values (EAX=1)" > <EDX:6> PAE: Physical address extensions; C7:<1> Especially since I was talking about PSE and not PAE. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 20:40 ` H. Peter Anvin 2009-07-03 21:02 ` Michael S. Zick @ 2009-07-03 22:01 ` Michael S. Zick 1 sibling, 0 replies; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 22:01 UTC (permalink / raw) To: H. Peter Anvin Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen [-- Attachment #1: Type: text/plain, Size: 5674 bytes --] On Fri July 3 2009, H. Peter Anvin wrote: > Michael S. Zick wrote: > > > > That takes a running machine - which is a bit of a challenge at the moment. > > Well, for the past four months, if truth be told. > > > > Anything in particular you are looking for? > > I may have it in my notes and data captures. > > > > The CPUID flags, in particular the pse flag. > > -hpa > OK - got the requested information - also can see that this whole thing was a false alarm. . . The before and after of the original post was the difference between the PAE and non-PAE code path **NOT** the calculation! My bad, wasn't careful enough in my testing. I have in-lined the difference between with/without the patch; and attached the "patched" dmesg output. > --- dmesg-patched.txt 2009-07-03 16:08:44.000000000 -0500 > +++ dmesg-unpatched.txt 2009-07-03 16:46:38.000000000 -0500 > @@ -1,4 +1,4 @@ > -Linux version 2.6.30-ce1200v-09183 (root@gen2-32) (gcc version 4.1.2 > (Gentoo 4.1.2 p1.1)) #3 PREEMPT Fri Jul 3 12:27:32 CDT 2009 +Linux version > 2.6.30-ce1200v-09183 (root@gen2-32) (gcc version 4.1.2 (Gentoo 4.1.2 p1.1)) > #4 PREEMPT Fri Jul 3 16:29:35 CDT 2009 KERNEL supported cpus: > Intel GenuineIntel > AMD AuthenticAMD > @@ -59,7 +59,7 @@ > init_memory_mapping: 0000000000000000-000000001bee0000 > 0000000000 - 001bee0000 page 4k > kernel direct mapping tables up to 1bee0000 @ 10000-83000 > -RAMDISK: 1b8d9000 - 1becf0cc > +RAMDISK: 1b8d9000 - 1becf1bb > ACPI: RSDP 000f8470 00014 (v00 PTLTD ) > ACPI: RSDT 1bee5663 00034 (v01 PTLTD RSDT 06040000 LTP 00000000) > ACPI: FACP 1bee9a46 00074 (v01 CX700 PTLTW 06040000 PTL_ 000F4240) > @@ -78,7 +78,7 @@ > (7 early reservations) ==> bootmem [0000000000 - 001bee0000] > #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - > 0000001000] #1 [0000100000 - 0000733430] TEXT DATA BSS ==> [0000100000 - > 0000733430] - #2 [001b8d9000 - 001becf0cc] RAMDISK ==> > [001b8d9000 - 001becf0cc] + #2 [001b8d9000 - 001becf1bb] RAMDISK > ==> [001b8d9000 - 001becf1bb] #3 [000009dc00 - 0000100000] BIOS reserved > ==> [000009dc00 - 0000100000] #4 [0000734000 - 00007370f1] BRK > ==> [0000734000 - 00007370f1] #5 [0000010000 - 000007d000] PGTABLE > ==> [0000010000 - 000007d000] @@ -127,7 +127,7 @@ > NR_IRQS:288 > PID hash table entries: 2048 (order: 11, 8192 bytes) > Fast TSC calibration using PIT > -Detected 600.021 MHz processor. > +Detected 599.982 MHz processor. > Console: colour VGA+ 80x25 > console [tty0] enabled > Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) > @@ -144,7 +144,7 @@ > .text : 0xc0100000 - 0xc050f40a (4157 kB) > Checking if this processor honours the WP bit even in supervisor > mode...Ok. SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, > Nodes=1 -Calibrating delay loop (skipped), value calculated using timer > frequency.. 1200.04 BogoMIPS (lpj=2000070) +Calibrating delay loop > (skipped), value calculated using timer frequency.. 1200.96 BogoMIPS > (lpj=1999940) Security Framework initialized > Smack: Initializing. > Mount-cache hash table entries: 512 > @@ -163,7 +163,7 @@ > ....... works. > net_namespace: 996 bytes > regulator: core version 0.5 > -Time: 21:04:35 Date: 07/03/09 > +Time: 21:44:23 Date: 07/03/09 > NET: Registered protocol family 16 > ACPI: bus type pci registered > PCI: MCFG configuration 0: base e0000000 segment 0 buses 3 - 3 > @@ -386,9 +386,6 @@ > serio: i8042 AUX2 port at 0x60,0x64 irq 12 > serio: i8042 AUX3 port at 0x60,0x64 irq 12 > mice: PS/2 mouse device common for all mice > -ata2.00: ATA-7: ST730212DE, 3.01, max UDMA/66 > -ata2.00: 58605120 sectors, multi 16: LBA48 > -ata2.00: limited to UDMA/33 due to 40-wire cable > rtc_cmos 00:03: RTC can wake from S4 > rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0 > rtc0: alarms up to one year, y3k, 242 bytes nvram > @@ -406,10 +403,12 @@ > usbcore: registered new interface driver usbhid > usbhid: v2.6:USB HID core driver > Advanced Linux Sound Architecture Driver Version 1.0.20. > +ata2.00: ATA-7: ST730212DE, 3.01, max UDMA/66 > +ata2.00: 58605120 sectors, multi 16: LBA48 > +ata2.00: limited to UDMA/33 due to 40-wire cable > HDA Intel 0000:02:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 > HDA Intel 0000:02:01.0: setting latency timer to 64 > HDA Intel 0000:02:01.0: PCI: Disallowing DAC for device > -input: AT Translated Set 2 keyboard as > /devices/platform/i8042/serio0/input/input4 ata2.00: configured for UDMA/33 > scsi 1:0:0:0: Direct-Access ATA ST730212DE 3.01 PQ: 0 ANSI: > 5 sd 1:0:0:0: Attached scsi generic sg0 type 0 > @@ -417,7 +416,8 @@ > sd 1:0:0:0: [sda] Write Protect is off > sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00 > sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't > support DPO or FUA - sda: sda1 sda2 sda3 sda4 > + sda:<6>input: AT Translated Set 2 keyboard as > /devices/platform/i8042/serio0/input/input4 + sda1 sda2 sda3 sda4 > sd 1:0:0:0: [sda] Attached SCSI disk > ALSA device list: > #0: HDA VIA VT82xx at 0xd1000000 irq 17 > @@ -442,8 +442,9 @@ > PM: Checking hibernation image. > PM: Resume from disk failed. > registered taskstats version 1 > - Magic number: 1:970:94 > -rtc_cmos 00:03: setting system clock to 2009-07-03 21:04:38 UTC > (1246655078) + Magic number: 1:144:752 > +tty ttyS3: hash matches > +rtc_cmos 00:03: setting system clock to 2009-07-03 21:44:26 UTC > (1246657466) BIOS EDD facility v0.16 2004-Jun-25, 0 devices found > EDD information not available. > debug: unmapping init memory c0692000..c06f1000 Sorry about the fuss - really sorry. Mike [-- Attachment #2: dmesg-patched.txt --] [-- Type: text/plain, Size: 26199 bytes --] Linux version 2.6.30-ce1200v-09183 (root@gen2-32) (gcc version 4.1.2 (Gentoo 4.1.2 p1.1)) #3 PREEMPT Fri Jul 3 12:27:32 CDT 2009 KERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD NSC Geode by NSC Cyrix CyrixInstead Centaur CentaurHauls Transmeta GenuineTMx86 Transmeta TransmetaCPU UMC UMC UMC UMC BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009dc00 (usable) BIOS-e820: 000000000009dc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000dc000 - 00000000000e0000 (reserved) BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000001bee0000 (usable) BIOS-e820: 000000001bee0000 - 000000001beea000 (ACPI data) BIOS-e820: 000000001beea000 - 000000001bf00000 (ACPI NVS) BIOS-e820: 000000001bf00000 - 0000000020000000 (reserved) BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved) DMI present. Phoenix BIOS detected: BIOS may corrupt low RAM, working around it. e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved) last_pfn = 0x1bee0 max_arch_pfn = 0x100000 MTRR default type: uncachable MTRR fixed ranges enabled: 00000-9FFFF write-back A0000-BFFFF uncachable C0000-C7FFF write-protect C8000-DFFFF uncachable E0000-FFFFF write-protect MTRR variable ranges enabled: 0 base 000000000 mask FE0000000 write-back 1 base 01BF00000 mask FFFF00000 uncachable 2 base 01C000000 mask FFC000000 uncachable 3 disabled 4 disabled 5 disabled 6 disabled 7 disabled Scanning 0 areas for low memory corruption modified physical RAM map: modified: 0000000000000000 - 0000000000010000 (reserved) modified: 0000000000010000 - 000000000009dc00 (usable) modified: 000000000009dc00 - 00000000000a0000 (reserved) modified: 00000000000dc000 - 00000000000e0000 (reserved) modified: 00000000000e8000 - 0000000000100000 (reserved) modified: 0000000000100000 - 000000001bee0000 (usable) modified: 000000001bee0000 - 000000001beea000 (ACPI data) modified: 000000001beea000 - 000000001bf00000 (ACPI NVS) modified: 000000001bf00000 - 0000000020000000 (reserved) modified: 00000000e0000000 - 00000000f0000000 (reserved) modified: 00000000fec00000 - 00000000fec10000 (reserved) modified: 00000000fee00000 - 00000000fee01000 (reserved) modified: 00000000fff80000 - 0000000100000000 (reserved) init_memory_mapping: 0000000000000000-000000001bee0000 0000000000 - 001bee0000 page 4k kernel direct mapping tables up to 1bee0000 @ 10000-83000 RAMDISK: 1b8d9000 - 1becf0cc ACPI: RSDP 000f8470 00014 (v00 PTLTD ) ACPI: RSDT 1bee5663 00034 (v01 PTLTD RSDT 06040000 LTP 00000000) ACPI: FACP 1bee9a46 00074 (v01 CX700 PTLTW 06040000 PTL_ 000F4240) ACPI: DSDT 1bee5697 043AF (v01 VIA PTL_ACPI 06040000 MSFT 0100000E) ACPI: FACS 1beeafc0 00040 ACPI: SSDT 1bee9aba 004BA (v01 PPmmRe PPm 06040000 INTL 20030224) ACPI: APIC 1bee9f74 00050 (v01 PTLTD APIC 06040000 LTP 00000000) ACPI: MCFG 1bee9fc4 0003C (v01 PTLTD MCFG 06040000 LTP 00000000) ACPI: Local APIC address 0xfee00000 0MB HIGHMEM available. 446MB LOWMEM available. mapped low ram: 0 - 1bee0000 low ram: 0 - 1bee0000 node 0 low ram: 00000000 - 1bee0000 node 0 bootmap 0007d000 - 000807dc (7 early reservations) ==> bootmem [0000000000 - 001bee0000] #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000] #1 [0000100000 - 0000733430] TEXT DATA BSS ==> [0000100000 - 0000733430] #2 [001b8d9000 - 001becf0cc] RAMDISK ==> [001b8d9000 - 001becf0cc] #3 [000009dc00 - 0000100000] BIOS reserved ==> [000009dc00 - 0000100000] #4 [0000734000 - 00007370f1] BRK ==> [0000734000 - 00007370f1] #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] found SMP MP-table at [c00f84b0] f84b0 Zone PFN ranges: DMA 0x00000010 -> 0x00001000 Normal 0x00001000 -> 0x0001bee0 HighMem 0x0001bee0 -> 0x0001bee0 Movable zone start PFN for each node early_node_map[2] active PFN ranges 0: 0x00000010 -> 0x0000009d 0: 0x00000100 -> 0x0001bee0 On node 0 totalpages: 114285 free_area_init_node: node 0, pgdat c06865a0, node_mem_map c1001200 DMA zone: 32 pages used for memmap DMA zone: 0 pages reserved DMA zone: 3949 pages, LIFO batch:0 Normal zone: 862 pages used for memmap Normal zone: 109442 pages, LIFO batch:31 Using APIC driver default ACPI: PM-Timer IO Port: 0x4008 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1]) ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 1, version 3, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) ACPI: IRQ9 used by override. ACPI: IRQ10 used by override. Enabling APIC mode: Flat. Using 1 I/O APICs Using ACPI (MADT) for SMP configuration information nr_irqs_gsi: 24 PM: Registered nosave memory: 000000000009d000 - 000000000009e000 PM: Registered nosave memory: 000000000009e000 - 00000000000a0000 PM: Registered nosave memory: 00000000000a0000 - 00000000000dc000 PM: Registered nosave memory: 00000000000dc000 - 00000000000e0000 PM: Registered nosave memory: 00000000000e0000 - 00000000000e8000 PM: Registered nosave memory: 00000000000e8000 - 0000000000100000 Allocating PCI resources starting at 30000000 (gap: 20000000:c0000000) Built 1 zonelists in Zone order, mobility grouping on. Total pages: 113391 Kernel command line: root=/dev/sda1 resume=/dev/sda2 ro quiet splash Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 NR_IRQS:288 PID hash table entries: 2048 (order: 11, 8192 bytes) Fast TSC calibration using PIT Detected 600.021 MHz processor. Console: colour VGA+ 80x25 console [tty0] enabled Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Initializing HighMem for node 0 (00000000:00000000) Memory: 439952k/457600k available (4157k kernel code, 16920k reserved, 1538k data, 380k init, 0k highmem) virtual kernel memory layout: fixmap : 0xfffaa000 - 0xfffff000 ( 340 kB) pkmap : 0xff800000 - 0xffc00000 (4096 kB) vmalloc : 0xdc6e0000 - 0xff7fe000 ( 561 MB) lowmem : 0xc0000000 - 0xdbee0000 ( 446 MB) .init : 0xc0692000 - 0xc06f1000 ( 380 kB) .data : 0xc050f40a - 0xc068fd58 (1538 kB) .text : 0xc0100000 - 0xc050f40a (4157 kB) Checking if this processor honours the WP bit even in supervisor mode...Ok. SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Calibrating delay loop (skipped), value calculated using timer frequency.. 1200.04 BogoMIPS (lpj=2000070) Security Framework initialized Smack: Initializing. Mount-cache hash table entries: 512 Initializing cgroup subsys ns Initializing cgroup subsys cpuacct Initializing cgroup subsys freezer CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 128K (64 bytes/line) CPU: Centaur VIA C7-M Processor 1200MHz stepping 00 Checking 'hlt' instruction... OK. ACPI: Core revision 20090320 ..TIMER: vector=0x30 apic1=0 pin1=0 apic2=-1 pin2=-1 ..MP-BIOS bug: 8254 timer not connected to IO-APIC ...trying to set up timer (IRQ0) through the 8259A ... ..... (found apic 0 pin 0) ... ....... works. net_namespace: 996 bytes regulator: core version 0.5 Time: 21:04:35 Date: 07/03/09 NET: Registered protocol family 16 ACPI: bus type pci registered PCI: MCFG configuration 0: base e0000000 segment 0 buses 3 - 3 PCI: MCFG area at e0300000 reserved in E820 PCI: Using MMCONFIG for extended config space PCI: Using configuration type 1 for base access bio: create slab <bio-0> at 0 ACPI: EC: Look up EC in DSDT ACPI Warning (dsobject-0502): Package List length (8) larger than NumElements count (5), truncated [20090320] ACPI Warning (dsobject-0502): Package List length (8) larger than NumElements count (5), truncated [20090320] ACPI Warning (dsobject-0502): Package List length (8) larger than NumElements count (5), truncated [20090320] ACPI: Interpreter enabled ACPI: (supports S0 S3 S4 S5) ACPI: Using IOAPIC for interrupt routing ACPI: Power Resource [PFN0] (off) ACPI: Power Resource [PFN1] (off) ACPI: No dock devices found. ACPI: PCI Root Bridge [PCI0] (0000:00) pci 0000:00:00.0: reg 10 32bit mmio: [0xc0000000-0xcfffffff] pci 0000:00:01.0: supports D1 pci 0000:00:0f.0: reg 20 io port: [0x4460-0x446f] pci 0000:00:10.0: reg 20 io port: [0x4400-0x441f] pci 0000:00:10.0: supports D1 D2 pci 0000:00:10.0: PME# supported from D0 D1 D2 D3hot D3cold pci 0000:00:10.0: PME# disabled pci 0000:00:10.1: reg 20 io port: [0x4420-0x443f] pci 0000:00:10.1: supports D1 D2 pci 0000:00:10.1: PME# supported from D0 D1 D2 D3hot D3cold pci 0000:00:10.1: PME# disabled pci 0000:00:10.2: reg 20 io port: [0x4440-0x445f] pci 0000:00:10.2: supports D1 D2 pci 0000:00:10.2: PME# supported from D0 D1 D2 D3hot D3cold pci 0000:00:10.2: PME# disabled pci 0000:00:10.4: reg 10 32bit mmio: [0xd1400000-0xd14000ff] pci 0000:00:10.4: supports D1 D2 pci 0000:00:10.4: PME# supported from D0 D1 D2 D3hot D3cold pci 0000:00:10.4: PME# disabled pci 0000:00:11.7: Disabling VIA CX700 PCI parking pci 0000:00:11.7: Disabling VIA CX700 PCI caching pci 0000:01:00.0: reg 10 32bit mmio: [0xa0000000-0xbfffffff] pci 0000:01:00.0: reg 14 32bit mmio: [0xd0000000-0xd0ffffff] pci 0000:01:00.0: reg 30 32bit mmio: [0x000000-0x00ffff] pci 0000:01:00.0: supports D1 D2 pci 0000:00:01.0: bridge 32bit mmio: [0xd0000000-0xd0ffffff] pci 0000:00:01.0: bridge 32bit mmio pref: [0xa0000000-0xbfffffff] pci 0000:02:01.0: reg 10 64bit mmio: [0xd1000000-0xd1003fff] pci 0000:02:01.0: PME# supported from D0 D3hot D3cold pci 0000:02:01.0: PME# disabled pci 0000:00:13.0: bridge 32bit mmio: [0xd1000000-0xd10fffff] pci 0000:03:09.0: reg 10 io port: [0x5000-0x50ff] pci 0000:03:09.0: reg 14 32bit mmio: [0xd1100000-0xd11000ff] pci 0000:03:09.0: supports D1 D2 pci 0000:03:09.0: PME# supported from D1 D2 D3hot D3cold pci 0000:03:09.0: PME# disabled pci 0000:00:13.1: bridge io port: [0x5000-0x5fff] pci 0000:00:13.1: bridge 32bit mmio: [0xd1100000-0xd11fffff] pci_bus 0000:00: on NUMA node 0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.SP2P._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2PE._PRT] ACPI: PCI Interrupt Link [ALKA] (IRQs 16 17 18 19 20 21 22 23) *10, disabled. ACPI: PCI Interrupt Link [ALKB] (IRQs 16 17 18 19 20 21 22 23) *11, disabled. ACPI: PCI Interrupt Link [ALKC] (IRQs 22) *10, disabled. ACPI: PCI Interrupt Link [ALKD] (IRQs 21) *0, disabled. ACPI: PCI Interrupt Link [LNKA] (IRQs 9 *10 11 12) ACPI: PCI Interrupt Link [LNKB] (IRQs 9 10 *11 12) ACPI: PCI Interrupt Link [LNKC] (IRQs 9 *10 11 12) ACPI: PCI Interrupt Link [LNKD] (IRQs 9 10 11 12) *0, disabled. SCSI subsystem initialized libata version 3.00 loaded. usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb PCI: Using ACPI for IRQ routing PCI: pci_cache_line_size set for 64 byte cache Bluetooth: Core ver 2.15 NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized NET: Registered protocol family 8 NET: Registered protocol family 20 cfg80211: Calling CRDA to update world regulatory domain NetLabel: Initializing NetLabel: domain hash size = 128 NetLabel: protocols = UNLABELED CIPSOv4 NetLabel: unlabeled traffic allowed by default pnp: PnP ACPI init ACPI: bus type pnp registered pnp: PnP ACPI: found 9 devices ACPI: ACPI bus type pnp unregistered PnPBIOS: Disabled by ACPI PNP system 00:05: iomem range 0x0-0x9ffff could not be reserved system 00:05: iomem range 0xe0000-0xfffff could not be reserved system 00:05: iomem range 0xfff00000-0xffffffff could not be reserved system 00:05: iomem range 0xffee0000-0xffefffff has been reserved system 00:05: iomem range 0xfec00000-0xfec0ffff has been reserved system 00:05: iomem range 0xfee00000-0xfee0ffff could not be reserved system 00:05: iomem range 0xe0208000-0xe0208fff has been reserved system 00:06: ioport range 0x4d0-0x4d1 has been reserved system 00:06: ioport range 0xfe10-0xfe11 has been reserved system 00:06: ioport range 0xfe00-0xfe00 has been reserved system 00:06: ioport range 0x4000-0x407f has been reserved system 00:06: ioport range 0x4100-0x411f has been reserved pci 0000:01:00.0: BAR 6: can't allocate mem resource [0xc0000000-0xbfffffff] pci 0000:00:01.0: PCI bridge, secondary bus 0000:01 pci 0000:00:01.0: IO window: disabled pci 0000:00:01.0: MEM window: 0xd0000000-0xd0ffffff pci 0000:00:01.0: PREFETCH window: 0x000000a0000000-0x000000bfffffff pci 0000:00:13.0: PCI bridge, secondary bus 0000:02 pci 0000:00:13.0: IO window: disabled pci 0000:00:13.0: MEM window: 0xd1000000-0xd10fffff pci 0000:00:13.0: PREFETCH window: disabled pci 0000:00:13.1: PCI bridge, secondary bus 0000:03 pci 0000:00:13.1: IO window: 0x5000-0x5fff pci 0000:00:13.1: MEM window: 0xd1100000-0xd11fffff pci 0000:00:13.1: PREFETCH window: disabled pci 0000:00:01.0: setting latency timer to 64 pci 0000:00:13.0: setting latency timer to 64 pci 0000:00:13.1: setting latency timer to 64 pci_bus 0000:00: resource 0 io: [0x00-0xffff] pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffff] pci_bus 0000:01: resource 1 mem: [0xd0000000-0xd0ffffff] pci_bus 0000:01: resource 2 pref mem [0xa0000000-0xbfffffff] pci_bus 0000:02: resource 1 mem: [0xd1000000-0xd10fffff] pci_bus 0000:03: resource 0 io: [0x5000-0x5fff] pci_bus 0000:03: resource 1 mem: [0xd1100000-0xd11fffff] NET: Registered protocol family 2 IP route cache hash table entries: 4096 (order: 2, 16384 bytes) TCP established hash table entries: 16384 (order: 5, 131072 bytes) TCP bind hash table entries: 16384 (order: 4, 65536 bytes) TCP: Hash tables configured (established 16384 bind 16384) TCP reno registered NET: Registered protocol family 1 Trying to unpack rootfs image as initramfs... Switched to high resolution mode on CPU 0 debug: unmapping init memory db8d9000..dbed0000 cpu0(1) debug files 73 Scanning for low memory corruption every 60 seconds HugeTLB registered 4 MB page size, pre-allocated 0 pages squashfs: version 4.0 (2009/01/31) Phillip Lougher fuse init (API version 7.11) msgmni has been set to 859 alg: No test for stdrng (krng) alg: No test for stdrng (ansi_cprng) io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered (default) io scheduler cfq registered pci 0000:00:01.0: disabling DAC on VIA PCI bridge pci 0000:00:10.4: EHCI: BIOS handoff failed (BIOS bug?) 01010001 pci 0000:01:00.0: Boot video device pci_hotplug: PCI Hot Plug PCI Core version: 0.5 pciehp: PCI Express Hot Plug Controller Driver version: 0.4 ACPI: AC Adapter [ACAD] (on-line) input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 ACPI: Power Button [PWRF] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input1 ACPI: Power Button [PWRB] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2 ACPI: Lid Switch [LID] fan PNP0C0B:00: registered as cooling_device0 ACPI: Fan [FAN0] (on) fan PNP0C0B:01: registered as cooling_device1 ACPI: Fan [FAN1] (on) input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A03:00/device:14/device:15/input/input3 ACPI: Video Device [VGA] (multi-head: yes rom: no post: no) Marking TSC unstable due to TSC halts in idle ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3]) processor ACPI_CPU:00: registered as cooling_device2 ACPI: Processor [CPU0] (supports 16 throttling states) ACPI: Device [FAN0] failed to transition to D3 thermal LNXTHERM:01: registered as thermal_zone0 ACPI: Thermal Zone [THRM] (52 C) isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found VIA RNG detected Linux agpgart interface v0.103 agpgart: Detected VIA CX700 chipset agpgart-via 0000:00:00.0: AGP aperture is 256M @ 0xc0000000 [drm] Initialized drm 1.1.0 20060810 pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 [drm] Initialized via 2.11.1 20070202 for 0000:01:00.0 on minor 0 Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled brd: module loaded loop: module loaded Driver 'sd' needs updating - please use bus_type methods Driver 'sr' needs updating - please use bus_type methods pata_via 0000:00:0f.0: version 0.3.4 pata_via 0000:00:0f.0: power state changed by ACPI to D0 pata_via 0000:00:0f.0: setting latency timer to 64 ACPI: Battery Slot [BAT0] (battery present) scsi0 : pata_via scsi1 : pata_via ata1: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x4460 irq 14 ata2: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x4468 irq 15 Fixed MDIO Bus: probed PPP generic driver version 2.4.2 8139too Fast Ethernet driver 0.9.28 8139too 0000:03:09.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 8139too 0000:03:09.0: setting latency timer to 64 eth0: RealTek RTL8139 at 0xdc71e000, 00:14:0b:3d:bc:5f, IRQ 16 eth0: Identified 8139 chip type 'RTL-8100B/8139D' ata1: port disabled. ignoring. Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver libusual usbcore: registered new interface driver usbserial USB Serial support registered for generic usbcore: registered new interface driver usbserial_generic usbserial: USB Serial Driver core PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12 i8042.c: Detected active multiplexing controller, rev 1.1. serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX0 port at 0x60,0x64 irq 12 serio: i8042 AUX1 port at 0x60,0x64 irq 12 serio: i8042 AUX2 port at 0x60,0x64 irq 12 serio: i8042 AUX3 port at 0x60,0x64 irq 12 mice: PS/2 mouse device common for all mice ata2.00: ATA-7: ST730212DE, 3.01, max UDMA/66 ata2.00: 58605120 sectors, multi 16: LBA48 ata2.00: limited to UDMA/33 due to 40-wire cable rtc_cmos 00:03: RTC can wake from S4 rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0 rtc0: alarms up to one year, y3k, 242 bytes nvram Linux video capture interface: v2.00 usbcore: registered new interface driver uvcvideo USB Video Class driver (v0.1.0) md: raid1 personality registered for level 1 device-mapper: uevent: version 1.0.3 device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: dm-devel@redhat.com device-mapper: multipath: version 1.0.5 loaded device-mapper: multipath round-robin: version 1.0.0 loaded cpuidle: using governor ladder cpuidle: using governor menu usbcore: registered new interface driver hiddev usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.20. HDA Intel 0000:02:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 HDA Intel 0000:02:01.0: setting latency timer to 64 HDA Intel 0000:02:01.0: PCI: Disallowing DAC for device input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4 ata2.00: configured for UDMA/33 scsi 1:0:0:0: Direct-Access ATA ST730212DE 3.01 PQ: 0 ANSI: 5 sd 1:0:0:0: Attached scsi generic sg0 type 0 sd 1:0:0:0: [sda] 58605120 512-byte hardware sectors: (30.0 GB/27.9 GiB) sd 1:0:0:0: [sda] Write Protect is off sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sda3 sda4 sd 1:0:0:0: [sda] Attached SCSI disk ALSA device list: #0: HDA VIA VT82xx at 0xd1000000 irq 17 TCP cubic registered NET: Registered protocol family 10 lo: Disabled Privacy Extensions NET: Registered protocol family 17 Bridge firewalling registered Bluetooth: L2CAP ver 2.13 Bluetooth: L2CAP socket layer initialized Bluetooth: SCO (Voice Link) ver 0.6 Bluetooth: SCO socket layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM ver 1.11 Bluetooth: BNEP (Ethernet Emulation) ver 1.3 Bluetooth: BNEP filters: protocol multicast Bluetooth: HIDP (Human Interface Emulation) ver 1.2 Using IPI Shortcut mode PM: Checking image partition /dev/sda2 PM: Resume from partition 8:2 PM: Checking hibernation image. PM: Resume from disk failed. registered taskstats version 1 Magic number: 1:970:94 rtc_cmos 00:03: setting system clock to 2009-07-03 21:04:38 UTC (1246655078) BIOS EDD facility v0.16 2004-Jun-25, 0 devices found EDD information not available. debug: unmapping init memory c0692000..c06f1000 Write protecting the kernel text: 4160k Write protecting the kernel read-only data: 1248k Synaptics Touchpad, model: 1, fw: 6.3, id: 0x1c0b1, caps: 0xa04750/0x200000 input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input5 ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci_hcd 0000:00:10.4: PCI INT D -> GSI 23 (level, low) -> IRQ 23 ehci_hcd 0000:00:10.4: setting latency timer to 64 ehci_hcd 0000:00:10.4: EHCI Host Controller ehci_hcd 0000:00:10.4: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:10.4: debug port 1 ehci_hcd 0000:00:10.4: irq 23, io mem 0xd1400000 ehci_hcd 0000:00:10.4: USB 2.0 started, EHCI 1.00 usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.30-ce1200v-09183 ehci_hcd usb usb1: SerialNumber: 0000:00:10.4 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 6 ports detected uhci_hcd: USB Universal Host Controller Interface driver uhci_hcd 0000:00:10.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20 uhci_hcd 0000:00:10.0: setting latency timer to 64 uhci_hcd 0000:00:10.0: UHCI Host Controller uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:10.0: irq 20, io base 0x00004400 usb usb2: New USB device found, idVendor=1d6b, idProduct=0001 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: UHCI Host Controller usb usb2: Manufacturer: Linux 2.6.30-ce1200v-09183 uhci_hcd usb usb2: SerialNumber: 0000:00:10.0 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected uhci_hcd 0000:00:10.1: PCI INT B -> GSI 22 (level, low) -> IRQ 22 uhci_hcd 0000:00:10.1: setting latency timer to 64 uhci_hcd 0000:00:10.1: UHCI Host Controller uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:10.1: irq 22, io base 0x00004420 usb usb3: New USB device found, idVendor=1d6b, idProduct=0001 usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: Product: UHCI Host Controller usb usb3: Manufacturer: Linux 2.6.30-ce1200v-09183 uhci_hcd usb usb3: SerialNumber: 0000:00:10.1 usb usb3: configuration #1 chosen from 1 choice hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected uhci_hcd 0000:00:10.2: PCI INT C -> GSI 21 (level, low) -> IRQ 21 uhci_hcd 0000:00:10.2: setting latency timer to 64 uhci_hcd 0000:00:10.2: UHCI Host Controller uhci_hcd 0000:00:10.2: new USB bus registered, assigned bus number 4 uhci_hcd 0000:00:10.2: irq 21, io base 0x00004440 usb usb4: New USB device found, idVendor=1d6b, idProduct=0001 usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb4: Product: UHCI Host Controller usb usb4: Manufacturer: Linux 2.6.30-ce1200v-09183 uhci_hcd usb usb4: SerialNumber: 0000:00:10.2 usb usb4: configuration #1 chosen from 1 choice hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected usbcore: registered new interface driver rtl8187 usb 1-5: new high speed USB device using ehci_hcd and address 3 usb 1-5: New USB device found, idVendor=5986, idProduct=0101 usb 1-5: New USB device strings: Mfr=0, Product=1, SerialNumber=0 usb 1-5: Product: USB2.0 Camera usb 1-5: configuration #1 chosen from 1 choice uvcvideo: Found UVC 1.00 device USB2.0 Camera (5986:0101) input: USB2.0 Camera as /devices/pci0000:00/0000:00:10.4/usb1/1-5/1-5:1.0/input/input6 usb 1-6: new high speed USB device using ehci_hcd and address 4 usb 1-6: New USB device found, idVendor=0bda, idProduct=0158 usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-6: Product: USB2.0-CRW usb 1-6: Manufacturer: Generic usb 1-6: SerialNumber: 20060413092100000 usb 1-6: configuration #1 chosen from 1 choice scsi2 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 4 usb-storage: waiting for device to settle before scanning usb 2-2: new low speed USB device using uhci_hcd and address 2 usb 2-2: New USB device found, idVendor=04d9, idProduct=048e usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 usb 2-2: configuration #1 chosen from 1 choice input: HID 04d9:048e as /devices/pci0000:00/0000:00:10.0/usb2/2-2/2-2:1.0/input/input7 generic-usb 0003:04D9:048E.0001: input,hidraw0: USB HID v1.10 Mouse [HID 04d9:048e] on usb-0000:00:10.0-2/input0 PM: Starting manual resume from disk PM: Resume from partition 8:2 PM: Checking hibernation image. PM: Resume from disk failed. kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with writeback data mode. usb-storage: device scan complete scsi 2:0:0:0: Direct-Access Generic- Multi-Card 1.00 PQ: 0 ANSI: 0 CCS sd 2:0:0:0: Attached scsi generic sg1 type 0 sd 2:0:0:0: [sdb] Attached SCSI removable disk udev: starting version 141 udev: renamed network interface eth0 to eth1 eth1: link up, 100Mbps, full-duplex, lpa 0x45E1 Adding 1004052k swap on /dev/sda2. Priority:4 extents:1 across:1004052k EXT3 FS on sda1, internal journal kjournald starting. Commit interval 5 seconds EXT3 FS on sda4, internal journal EXT3-fs: mounted filesystem with writeback data mode. eth1: no IPv6 routers present agpgart-via 0000:00:00.0: AGP 3.5 bridge agpgart-via 0000:00:00.0: putting AGP V3 device into 8x mode pci 0000:01:00.0: putting AGP V3 device into 8x mode hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:14 ` H. Peter Anvin 2009-07-03 19:41 ` Michael S. Zick @ 2009-07-04 13:23 ` Michael S. Zick 1 sibling, 0 replies; 30+ messages in thread From: Michael S. Zick @ 2009-07-04 13:23 UTC (permalink / raw) To: H. Peter Anvin Cc: Jeremy Fitzhardinge, linux-kernel, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On Fri July 3 2009, H. Peter Anvin wrote: > Michael S. Zick wrote: > >> > >> The PGTABLE reservation seems much too big. I think 1 page should be > >> sufficient for a system with large pages. Even if not, 0x6d000 is way > >> too large. And they symptoms of failing to reserve the initial > >> pagetable are pretty non-subtle. > >> > > > > Random system halts, deadlocks with interrupts disabled? > > Yup, that sounds familiar. > > > > If I ever get more than a stopped machine with a glowing power light; > > I will be certain to share. > > > > Let's see... on a non-PSE system we may need one PDE and one PTE page > per 4 MB, up to 1 GB, for a total of 256 pages or 1 MB of memory, so in > that sense 0x6d000 (109 pages) doesn't sound at all unreasonable > (non-PSE system with 512 MB of RAM?) > > However, we shouldn't have to do this kind of hacks with > MAPPING_BEYOND_END, and we *certainly* shouldn't do it by implicitly > hard-coding the value of PAGE_SHIFT. > The calculation was correct - this thread title is a false alarm. The difference posted was caused by disabling the "has pae" in the build configuration system. So I just need to dig around in head.S a bit more - get rid of the "Intel Only" hard coding, check if the pae bit is a hardwired zero in cr4, make sure I have a usable stack before the testing - since the test may generate a GP fault. . . Get the in-memory copy of the cpu feature flags correct (some are defined but not implemented on this processor). . . Then find and fix everything that isn't using 'cpu_has(x, y)' - That should keep me busy for a few weeks. ;) Mike > -hpa > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 19:03 ` Michael S. Zick 2009-07-03 19:11 ` Jeremy Fitzhardinge 2009-07-03 19:14 ` H. Peter Anvin @ 2009-07-03 19:33 ` Jeremy Fitzhardinge 2 siblings, 0 replies; 30+ messages in thread From: Jeremy Fitzhardinge @ 2009-07-03 19:33 UTC (permalink / raw) To: lkml Cc: linux-kernel, H. Peter Anvin, Thomas Gleixner, Ingo Molnar, the arch/x86 maintainers, Andi Kleen On 07/03/09 12:03, Michael S. Zick wrote: > Random system halts, deadlocks with interrupts disabled? > Yup, that sounds familiar. > > If I ever get more than a stopped machine with a glowing power light; > I will be certain to share. > Are you saying this patch does actually fix something, or that you still see the same symptoms with it applied? J ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 18:14 [Bug Fix]: Do 32-bit table calculations in pre-processor Michael S. Zick ` (2 preceding siblings ...) 2009-07-03 18:57 ` Jeremy Fitzhardinge @ 2009-07-03 20:07 ` Yinghai Lu 2009-07-03 20:08 ` Yinghai Lu 2009-07-03 20:45 ` Michael S. Zick 3 siblings, 2 replies; 30+ messages in thread From: Yinghai Lu @ 2009-07-03 20:07 UTC (permalink / raw) To: lkml; +Cc: linux-kernel On Fri, Jul 3, 2009 at 11:14 AM, Michael S. Zick<lkml@morethan.org> wrote: > Here is one I have found useful in my VIA processor bug hunting: > > diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S > index 3068388..2303d86 100644 > --- a/arch/x86/kernel/head_32.S > +++ b/arch/x86/kernel/head_32.S > @@ -61,7 +61,7 @@ > > /* Enough space to fit pagetables for the low memory linear map */ > MAPPING_BEYOND_END = \ > - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT > + PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT > > /* > * Worst-case size of the kernel mapping we need to make: > > = = = > > Before: > > #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000] > #6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000] > > After: > > #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] > #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] > that PGTABLE is from early resource. and it is filled by init_memory_mapping() it mean preallocated pgtable to MAPPING_BEYOND_END is small now after patch. and init_memory_mapping try to get more. please send out whole dmesg. with and without your patch. it could print out initial mapped before e820 allocation is involved for 32bit printk(KERN_DEBUG "initial memory mapped : 0 - %08lx\n", max_pfn_mapped<<PAGE_SHIFT); your patch should be right. except to change that 12 to PAGE_SHIFT YH ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 20:07 ` Yinghai Lu @ 2009-07-03 20:08 ` Yinghai Lu 2009-07-03 20:48 ` Michael S. Zick 2009-07-03 20:45 ` Michael S. Zick 1 sibling, 1 reply; 30+ messages in thread From: Yinghai Lu @ 2009-07-03 20:08 UTC (permalink / raw) To: lkml; +Cc: linux-kernel On Fri, Jul 3, 2009 at 1:07 PM, Yinghai Lu<yhlu.kernel@gmail.com> wrote: > On Fri, Jul 3, 2009 at 11:14 AM, Michael S. Zick<lkml@morethan.org> wrote: >> Here is one I have found useful in my VIA processor bug hunting: >> >> diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S >> index 3068388..2303d86 100644 >> --- a/arch/x86/kernel/head_32.S >> +++ b/arch/x86/kernel/head_32.S >> @@ -61,7 +61,7 @@ >> >> /* Enough space to fit pagetables for the low memory linear map */ >> MAPPING_BEYOND_END = \ >> - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT >> + PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT >> >> /* >> * Worst-case size of the kernel mapping we need to make: >> >> = = = >> >> Before: >> >> #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000] >> #6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000] >> >> After: >> >> #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] >> #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] >> > > that PGTABLE is from early resource. and it is filled by init_memory_mapping() > > it mean preallocated pgtable to MAPPING_BEYOND_END is small now after > patch. and init_memory_mapping try to get more. > > please send out whole dmesg. with and without your patch. it could > print out initial mapped before e820 allocation is involved for 32bit > printk(KERN_DEBUG "initial memory mapped : 0 - %08lx\n", > max_pfn_mapped<<PAGE_SHIFT); > > > your patch should be right. except to change that 12 to PAGE_SHIFT > mean >> /* Enough space to fit pagetables for the low memory linear map */ >> MAPPING_BEYOND_END = \ >> - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT >> + PAGE_TABLE_SIZE((1<<(32 - PAGE_SHIFT)) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT YH ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 20:08 ` Yinghai Lu @ 2009-07-03 20:48 ` Michael S. Zick 0 siblings, 0 replies; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 20:48 UTC (permalink / raw) To: Yinghai Lu; +Cc: linux-kernel On Fri July 3 2009, Yinghai Lu wrote: > On Fri, Jul 3, 2009 at 1:07 PM, Yinghai Lu<yhlu.kernel@gmail.com> wrote: > > On Fri, Jul 3, 2009 at 11:14 AM, Michael S. Zick<lkml@morethan.org> wrote: > >> Here is one I have found useful in my VIA processor bug hunting: > >> > >> diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S > >> index 3068388..2303d86 100644 > >> --- a/arch/x86/kernel/head_32.S > >> +++ b/arch/x86/kernel/head_32.S > >> @@ -61,7 +61,7 @@ > >> > >> /* Enough space to fit pagetables for the low memory linear map */ > >> MAPPING_BEYOND_END = \ > >> - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT > >> + PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT > >> > >> /* > >> * Worst-case size of the kernel mapping we need to make: > >> > >> = = = > >> > >> Before: > >> > >> #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000] > >> #6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000] > >> > >> After: > >> > >> #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] > >> #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] > >> > > > > that PGTABLE is from early resource. and it is filled by init_memory_mapping() > > > > it mean preallocated pgtable to MAPPING_BEYOND_END is small now after > > patch. and init_memory_mapping try to get more. > > > > please send out whole dmesg. with and without your patch. it could > > print out initial mapped before e820 allocation is involved for 32bit > > printk(KERN_DEBUG "initial memory mapped : 0 - %08lx\n", > > max_pfn_mapped<<PAGE_SHIFT); > > > > > > your patch should be right. except to change that 12 to PAGE_SHIFT > > > mean > Yes, want to get the 8K page machines correct also. > > >> /* Enough space to fit pagetables for the low memory linear map */ > >> MAPPING_BEYOND_END = \ > >> - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT > >> + PAGE_TABLE_SIZE((1<<(32 - PAGE_SHIFT)) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT > You read my mind, thanks. Mike > YH > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Bug Fix]: Do 32-bit table calculations in pre-processor 2009-07-03 20:07 ` Yinghai Lu 2009-07-03 20:08 ` Yinghai Lu @ 2009-07-03 20:45 ` Michael S. Zick 1 sibling, 0 replies; 30+ messages in thread From: Michael S. Zick @ 2009-07-03 20:45 UTC (permalink / raw) To: Yinghai Lu; +Cc: linux-kernel On Fri July 3 2009, Yinghai Lu wrote: > On Fri, Jul 3, 2009 at 11:14 AM, Michael S. Zick<lkml@morethan.org> wrote: > > Here is one I have found useful in my VIA processor bug hunting: > > > > diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S > > index 3068388..2303d86 100644 > > --- a/arch/x86/kernel/head_32.S > > +++ b/arch/x86/kernel/head_32.S > > @@ -61,7 +61,7 @@ > > > > /* Enough space to fit pagetables for the low memory linear map */ > > MAPPING_BEYOND_END = \ > > - PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT > > + PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT > > > > /* > > * Worst-case size of the kernel mapping we need to make: > > > > = = = > > > > Before: > > > > #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000] > > #6 [0000011000 - 0000015000] BOOTMAP ==> [0000011000 - 0000015000] > > > > After: > > > > #5 [0000010000 - 000007d000] PGTABLE ==> [0000010000 - 000007d000] > > #6 [000007d000 - 0000081000] BOOTMAP ==> [000007d000 - 0000081000] > > > > that PGTABLE is from early resource. and it is filled by init_memory_mapping() > > it mean preallocated pgtable to MAPPING_BEYOND_END is small now after > patch. and init_memory_mapping try to get more. > Ah, so - the labels are a bit misleading - but that makes since. > please send out whole dmesg. with and without your patch. it could > Am having technical problems at the moment - maybe later today I can get you the information you need. > print out initial mapped before e820 allocation is involved for 32bit > printk(KERN_DEBUG "initial memory mapped : 0 - %08lx\n", > max_pfn_mapped<<PAGE_SHIFT); > > > > your patch should be right. except to change that 12 to PAGE_SHIFT > Not all pages are 4K, but as you point out, that can be fixed. > YH > > Mike ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2009-07-04 13:23 UTC | newest] Thread overview: 30+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-07-03 18:14 [Bug Fix]: Do 32-bit table calculations in pre-processor Michael S. Zick 2009-07-03 18:27 ` Andi Kleen 2009-07-03 18:38 ` Michael S. Zick 2009-07-03 19:08 ` Jeremy Fitzhardinge 2009-07-03 19:13 ` Michael S. Zick 2009-07-03 19:30 ` Jeremy Fitzhardinge 2009-07-03 20:03 ` Michael S. Zick 2009-07-03 18:56 ` Jeremy Fitzhardinge 2009-07-03 18:57 ` Jeremy Fitzhardinge 2009-07-03 19:03 ` Michael S. Zick 2009-07-03 19:11 ` Jeremy Fitzhardinge 2009-07-03 19:18 ` H. Peter Anvin 2009-07-03 19:46 ` Michael S. Zick 2009-07-03 20:00 ` H. Peter Anvin 2009-07-03 19:14 ` H. Peter Anvin 2009-07-03 19:41 ` Michael S. Zick 2009-07-03 19:48 ` H. Peter Anvin 2009-07-03 20:38 ` Michael S. Zick 2009-07-03 20:40 ` H. Peter Anvin 2009-07-03 21:02 ` Michael S. Zick 2009-07-03 22:33 ` H. Peter Anvin 2009-07-04 0:05 ` Michael S. Zick 2009-07-04 0:11 ` H. Peter Anvin 2009-07-03 22:01 ` Michael S. Zick 2009-07-04 13:23 ` Michael S. Zick 2009-07-03 19:33 ` Jeremy Fitzhardinge 2009-07-03 20:07 ` Yinghai Lu 2009-07-03 20:08 ` Yinghai Lu 2009-07-03 20:48 ` Michael S. Zick 2009-07-03 20:45 ` Michael S. Zick
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.