linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
@ 2008-01-16  2:39 venkatesh.pallipadi
  2008-01-16  2:39 ` [patch 1/4] x86: PAT followup - Do not fold two bits in _PAGE_PCD venkatesh.pallipadi
                   ` (5 more replies)
  0 siblings, 6 replies; 50+ messages in thread
From: venkatesh.pallipadi @ 2008-01-16  2:39 UTC (permalink / raw)
  To: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem
  Cc: linux-kernel

Some incremental changes and bug fixes for PAT patchset. The changes are from
the feedback we received earlier. There are few more pending changes that will
follow soon.

Thanks,
Venki
-- 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [patch 1/4] x86: PAT followup - Do not fold two bits in _PAGE_PCD
  2008-01-16  2:39 [patch 0/4] x86: PAT followup - Incremental changes and bug fixes venkatesh.pallipadi
@ 2008-01-16  2:39 ` venkatesh.pallipadi
  2008-01-16  2:39 ` [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry venkatesh.pallipadi
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 50+ messages in thread
From: venkatesh.pallipadi @ 2008-01-16  2:39 UTC (permalink / raw)
  To: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem
  Cc: linux-kernel, Venkatesh Pallipadi, Suresh Siddha

[-- Attachment #1: page_uc.patch --]
[-- Type: text/plain, Size: 6991 bytes --]

Do not fold PCD and PWT bits in _PAGE_PCD. Instead, introduce a new
_PAGE_UC which defines uncached mappings and use it in place of _PAGE_PCD.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>

Index: linux-2.6.git/arch/x86/mm/ioremap_32.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/ioremap_32.c	2008-01-15 03:29:38.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/ioremap_32.c	2008-01-15 04:42:59.000000000 -0800
@@ -173,7 +173,7 @@
 
 void __iomem *ioremap_nocache (unsigned long phys_addr, unsigned long size)
 {
-	return __ioremap(phys_addr, size, _PAGE_PCD);
+	return __ioremap(phys_addr, size, _PAGE_UC);
 }
 EXPORT_SYMBOL(ioremap_nocache);
 
Index: linux-2.6.git/arch/x86/mm/ioremap_64.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/ioremap_64.c	2008-01-15 03:29:38.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/ioremap_64.c	2008-01-15 04:43:07.000000000 -0800
@@ -150,7 +150,7 @@
 
 void __iomem *ioremap_nocache (unsigned long phys_addr, unsigned long size)
 {
-	return __ioremap(phys_addr, size, _PAGE_PCD);
+	return __ioremap(phys_addr, size, _PAGE_UC);
 }
 EXPORT_SYMBOL(ioremap_nocache);
 
Index: linux-2.6.git/arch/x86/mm/pat.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/pat.c	2008-01-15 03:29:38.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/pat.c	2008-01-15 05:01:43.000000000 -0800
@@ -64,7 +64,7 @@
 	if (smp_processor_id() && !pat_wc_enabled)
 		return;
 
-	/* Set PWT+PCD to Write-Combining. All other bits stay the same */
+	/* Set PCD to Write-Combining. All other bits stay the same */
 	/* PTE encoding used in Linux:
 	      PAT
 	      |PCD
@@ -72,7 +72,7 @@
 	      |||
 	      000 WB         default
 	      010 WC         _PAGE_WC
-	      011 UC         _PAGE_PCD
+	      011 UC         _PAGE_UC
 		PAT bit unused */
 	pat = PAT(0,WB) | PAT(1,WT) | PAT(2,WC) | PAT(3,UC) |
 	      PAT(4,WB) | PAT(5,WT) | PAT(6,WC) | PAT(7,UC);
@@ -97,7 +97,7 @@
 {
 	switch (flags & _PAGE_CACHE_MASK) {
 	case _PAGE_WC:  return "write combining";
-	case _PAGE_PCD: return "uncached";
+	case _PAGE_UC: return "uncached";
 	case 0: 	return "default";
 	default: 	return "broken";
 	}
@@ -144,7 +144,7 @@
 			if (!fattr)
 				return -EINVAL;
 			else
-				*fattr  = _PAGE_PCD;
+				*fattr  = _PAGE_UC;
 		}
 
 		return 0;
@@ -227,13 +227,13 @@
 	unsigned long flags;
 	unsigned long want_flags = 0;
 	if (file->f_flags & O_SYNC)
-		want_flags = _PAGE_PCD;
+		want_flags = _PAGE_UC;
 
 #ifdef CONFIG_X86_32
 	/*
 	 * On the PPro and successors, the MTRRs are used to set
  	 * memory types for physical addresses outside main memory,
-	 * so blindly setting PCD or PWT on those pages is wrong.
+	 * so blindly setting UC or PWT on those pages is wrong.
 	 * For Pentiums and earlier, the surround logic should disable
 	 * caching for the high addresses through the KEN pin, but
 	 * we maintain the tradition of paranoia in this code.
@@ -244,7 +244,7 @@
 		test_bit(X86_FEATURE_CYRIX_ARR, boot_cpu_data.x86_capability) ||
 		test_bit(X86_FEATURE_CENTAUR_MCR, boot_cpu_data.x86_capability)) &&
 	   offset >= __pa(high_memory))
-		want_flags = _PAGE_PCD;
+		want_flags = _PAGE_UC;
 #endif
 
 	/* ignore error because we can't handle it here */
Index: linux-2.6.git/arch/x86/pci/i386.c
===================================================================
--- linux-2.6.git.orig/arch/x86/pci/i386.c	2008-01-15 03:29:38.000000000 -0800
+++ linux-2.6.git/arch/x86/pci/i386.c	2008-01-15 05:02:12.000000000 -0800
@@ -353,7 +353,7 @@
 		 */
 		prot = pgprot_val(vma->vm_page_prot);
 		if (boot_cpu_data.x86 > 3) {
-			prot |= _PAGE_PCD;
+			prot |= _PAGE_UC;
 		}
 		vma->vm_page_prot = __pgprot(prot);
 	}
Index: linux-2.6.git/include/asm-x86/pgtable.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/pgtable.h	2008-01-15 03:29:38.000000000 -0800
+++ linux-2.6.git/include/asm-x86/pgtable.h	2008-01-15 05:11:12.000000000 -0800
@@ -28,14 +28,16 @@
 #define _PAGE_RW	(_AC(1, L)<<_PAGE_BIT_RW)
 #define _PAGE_USER	(_AC(1, L)<<_PAGE_BIT_USER)
 #define _PAGE_PWT	(_AC(1, L)<<_PAGE_BIT_PWT)
-#define _PAGE_PCD	((_AC(1, L)<<_PAGE_BIT_PCD) | _PAGE_PWT)
+#define _PAGE_PCD	(_AC(1, L)<<_PAGE_BIT_PCD) /* Do not use PCD directly */
 #define _PAGE_ACCESSED	(_AC(1, L)<<_PAGE_BIT_ACCESSED)
 #define _PAGE_DIRTY	(_AC(1, L)<<_PAGE_BIT_DIRTY)
 #define _PAGE_PSE	(_AC(1, L)<<_PAGE_BIT_PSE)	/* 2MB page */
 #define _PAGE_GLOBAL	(_AC(1, L)<<_PAGE_BIT_GLOBAL)	/* Global TLB entry */
-/* We redefine PCD to be write combining. PAT bit is not used */
-#define _PAGE_WC	((_AC(1, L)<<_PAGE_BIT_PCD))
-#define _PAGE_CACHE_MASK (_PAGE_PCD)
+/* We redefine PCD to be WC, PCD|PWT to be UC. PAT bit is not used */
+#define _PAGE_WC	(_PAGE_PCD)
+#define _PAGE_UC	(_PAGE_PCD | _PAGE_PWT)
+#define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT)
+
 #define _PAGE_UNUSED1	(_AC(1, L)<<_PAGE_BIT_UNUSED1)
 #define _PAGE_UNUSED2	(_AC(1, L)<<_PAGE_BIT_UNUSED2)
 #define _PAGE_UNUSED3	(_AC(1, L)<<_PAGE_BIT_UNUSED3)
@@ -82,9 +84,9 @@
 
 #define __PAGE_KERNEL_RO		(__PAGE_KERNEL & ~_PAGE_RW)
 #define __PAGE_KERNEL_RX		(__PAGE_KERNEL_EXEC & ~_PAGE_RW)
-#define __PAGE_KERNEL_NOCACHE		(__PAGE_KERNEL | _PAGE_PCD)
+#define __PAGE_KERNEL_NOCACHE		(__PAGE_KERNEL | _PAGE_UC)
 #define __PAGE_KERNEL_VSYSCALL		(__PAGE_KERNEL_RX | _PAGE_USER)
-#define __PAGE_KERNEL_VSYSCALL_NOCACHE	(__PAGE_KERNEL_VSYSCALL | _PAGE_PCD)
+#define __PAGE_KERNEL_VSYSCALL_NOCACHE	(__PAGE_KERNEL_VSYSCALL | _PAGE_UC)
 #define __PAGE_KERNEL_LARGE		(__PAGE_KERNEL | _PAGE_PSE)
 #define __PAGE_KERNEL_LARGE_EXEC	(__PAGE_KERNEL_EXEC | _PAGE_PSE)
 
Index: linux-2.6.git/include/asm-x86/pgtable_32.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/pgtable_32.h	2008-01-15 03:29:38.000000000 -0800
+++ linux-2.6.git/include/asm-x86/pgtable_32.h	2008-01-15 04:42:16.000000000 -0800
@@ -121,7 +121,7 @@
  * it, this is a no-op.
  */
 #define pgprot_noncached(prot)	((boot_cpu_data.x86 > 3)					  \
-				 ? (__pgprot(pgprot_val(prot) | _PAGE_PCD)) : (prot))
+				 ? (__pgprot(pgprot_val(prot) | _PAGE_UC)) : (prot))
 
 /*
  * Macro to make mark a page protection value as "write-combining".
Index: linux-2.6.git/include/asm-x86/pgtable_64.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/pgtable_64.h	2008-01-15 03:29:38.000000000 -0800
+++ linux-2.6.git/include/asm-x86/pgtable_64.h	2008-01-15 04:41:37.000000000 -0800
@@ -170,7 +170,7 @@
  * and do not allow for consecutive writes to be combined.
  */
 #define pgprot_noncached(prot) \
-	__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_MASK) | _PAGE_PCD)
+	__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_MASK) | _PAGE_UC)
 
 /*
  * Macro to make mark a page protection value as "write-combining".

-- 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry
  2008-01-16  2:39 [patch 0/4] x86: PAT followup - Incremental changes and bug fixes venkatesh.pallipadi
  2008-01-16  2:39 ` [patch 1/4] x86: PAT followup - Do not fold two bits in _PAGE_PCD venkatesh.pallipadi
@ 2008-01-16  2:39 ` venkatesh.pallipadi
  2008-01-16  8:14   ` Mika Penttilä
  2008-01-16  2:39 ` [patch 3/4] x86: PAT followup - Remove reserved pages mapping to zero page and not map them venkatesh.pallipadi
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 50+ messages in thread
From: venkatesh.pallipadi @ 2008-01-16  2:39 UTC (permalink / raw)
  To: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem
  Cc: linux-kernel, Venkatesh Pallipadi, Suresh Siddha

[-- Attachment #1: remove_pgtable_flags.patch --]
[-- Type: text/plain, Size: 1075 bytes --]

KERNPG_TABLE was a bug in earlier patch. Remove it from pte.
pte_val() check is redundant as this routine is called immediately after a
ptepage is allocated afresh.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>

Index: linux-2.6.git/arch/x86/mm/init_64.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/init_64.c	2008-01-15 11:02:23.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/init_64.c	2008-01-15 11:06:37.000000000 -0800
@@ -541,9 +541,6 @@
 		if (address >= end)
 			break;
 
-		if (pte_val(*pte))
-			continue;
-
 		/* Nothing to map. Map the null page */
 		if (!(address & (~PAGE_MASK)) &&
 		    (address + PAGE_SIZE <= end) &&
@@ -561,9 +558,9 @@
 		}
 
 		if (exec)
-			entry = _PAGE_NX|_KERNPG_TABLE|_PAGE_GLOBAL|address;
+			entry = _PAGE_NX|_PAGE_GLOBAL|address;
 		else
-			entry = _KERNPG_TABLE|_PAGE_GLOBAL|address;
+			entry = _PAGE_GLOBAL|address;
 		entry &= __supported_pte_mask;
 		set_pte(pte, __pte(entry));
 	}

-- 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [patch 3/4] x86: PAT followup - Remove reserved pages mapping to zero page and not map them
  2008-01-16  2:39 [patch 0/4] x86: PAT followup - Incremental changes and bug fixes venkatesh.pallipadi
  2008-01-16  2:39 ` [patch 1/4] x86: PAT followup - Do not fold two bits in _PAGE_PCD venkatesh.pallipadi
  2008-01-16  2:39 ` [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry venkatesh.pallipadi
@ 2008-01-16  2:39 ` venkatesh.pallipadi
  2008-01-16  2:39 ` [patch 4/4] x86: PAT followup - use ioremap for devmem read of reserved regions venkatesh.pallipadi
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 50+ messages in thread
From: venkatesh.pallipadi @ 2008-01-16  2:39 UTC (permalink / raw)
  To: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem
  Cc: linux-kernel, Venkatesh Pallipadi, Suresh Siddha

[-- Attachment #1: remove_reserved_zeropages.patch --]
[-- Type: text/plain, Size: 4429 bytes --]

Remove reserved pages mapping to zeropage. Reserved and holes are now not
mapped at all.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>

Index: linux-2.6.git/arch/x86/mm/init_32.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/init_32.c	2008-01-15 11:02:23.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/init_32.c	2008-01-15 11:08:29.000000000 -0800
@@ -143,50 +143,6 @@
 	return 0;
 }
 
-static unsigned long __init get_res_page(void)
-{
-	static unsigned long res_phys_page;
-	if (!res_phys_page) {
-
-		res_phys_page = (unsigned long)
-		                alloc_bootmem_low_pages(PAGE_SIZE);
-		if (!res_phys_page)
-			BUG();
-
-		memset((char *)res_phys_page, 0xe, PAGE_SIZE);
-		res_phys_page = __pa(res_phys_page);
-	}
-	return res_phys_page;
-}
-
-static unsigned long __init get_res_ptepage(void)
-{
-	static unsigned long res_phys_ptepage;
-	pte_t *pte;
-	int pte_ofs;
-	unsigned long pfn;
-
-	if (!res_phys_ptepage) {
-
-		res_phys_ptepage = (unsigned long)
-		                   alloc_bootmem_low_pages(PAGE_SIZE);
-		if (!res_phys_ptepage)
-			BUG();
-
-		paravirt_alloc_pt(&init_mm,
-		                  __pa(res_phys_ptepage) >> PAGE_SHIFT);
-
-		/* Set all PTEs in the range to zero page */
-		pfn = get_res_page() >> PAGE_SHIFT;
-		pte = (pte_t *)res_phys_ptepage;
-		for (pte_ofs = 0; pte_ofs < PTRS_PER_PTE; pte++, pte_ofs++)
-			set_pte(pte, pfn_pte(pfn, PAGE_KERNEL));
-
-		res_phys_ptepage = __pa(res_phys_ptepage);
-	}
-	return res_phys_ptepage;
-}
-
 /*
  * This maps the physical memory to kernel virtual address space, a total 
  * of max_low_pfn pages, by creating page tables starting from address 
@@ -199,7 +155,6 @@
 	pmd_t *pmd;
 	pte_t *pte;
 	int pgd_idx, pmd_idx, pte_ofs;
-	unsigned long temp_pfn;
 
 	pgd_idx = pgd_index(PAGE_OFFSET);
 	pgd = pgd_base + pgd_idx;
@@ -238,9 +193,7 @@
 			}
 			if (cpu_has_pse &&
 			    !is_memory_any_valid(paddr, paddr + PMD_SIZE)) {
-
-				temp_pfn = get_res_ptepage();
-				set_pmd(pmd, __pmd(temp_pfn | _PAGE_TABLE));
+				set_pmd(pmd, __pmd(0));
 				pfn += PTRS_PER_PTE;
 				continue;
 			}
@@ -259,10 +212,7 @@
 
 				if (!is_memory_any_valid(paddr,
 				                         paddr + PAGE_SIZE)) {
-
-					temp_pfn = get_res_page() >> PAGE_SHIFT;
-					set_pte(pte,
-					        pfn_pte(temp_pfn, PAGE_KERNEL));
+					set_pte(pte, __pte(0));
 					continue;
 				}
 
Index: linux-2.6.git/arch/x86/mm/init_64.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/init_64.c	2008-01-15 11:06:37.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/init_64.c	2008-01-15 11:09:18.000000000 -0800
@@ -494,41 +494,6 @@
 			 kcore_vsyscall;
 
 
-static unsigned long __init get_res_page(void)
-{
-	static unsigned long res_phys_page;
-	if (!res_phys_page) {
-		pte_t *pte;
-		pte = alloc_low_page(&res_phys_page);
-		unmap_low_page(pte);
-	}
-	return res_phys_page;
-}
-
-static unsigned long __init get_res_ptepage(void)
-{
-	static unsigned long res_phys_ptepage;
-	if (!res_phys_ptepage) {
-		pte_t *pte_page;
-		unsigned long page_phys;
-		unsigned long entry;
-		int i;
-
-		pte_page = alloc_low_page(&res_phys_ptepage);
-
-		page_phys = get_res_page();
-		entry = _PAGE_NX | _KERNPG_TABLE | _PAGE_GLOBAL | page_phys;
-		entry &= __supported_pte_mask;
-		for (i = 0; i < PTRS_PER_PTE; i++) {
-			pte_t *pte = pte_page + i;
-			set_pte(pte, __pte(entry));
-		}
-
-		unmap_low_page(pte_page);
-	}
-	return res_phys_ptepage;
-}
-
 static void __init phys_pte_prune(pte_t *pte_page, unsigned long address,
 		unsigned long end, unsigned long vaddr, unsigned int exec)
 {
@@ -545,15 +510,7 @@
 		if (!(address & (~PAGE_MASK)) &&
 		    (address + PAGE_SIZE <= end) &&
 		    !is_memory_any_valid(address, address + PAGE_SIZE)) {
-			unsigned long phys_page;
-
-			phys_page = get_res_page();
-			entry = _PAGE_NX | _KERNPG_TABLE | _PAGE_GLOBAL |
-				phys_page;
-
-			entry &= __supported_pte_mask;
-			set_pte(pte, __pte(entry));
-
+			set_pte(pte, __pte(0));
 			continue;
 		}
 
@@ -587,10 +544,7 @@
 		if (!(address & (~PMD_MASK)) &&
 		    (address + PMD_SIZE <= end) &&
 		    !is_memory_any_valid(address, address + PMD_SIZE)) {
-
-			pte_phys = get_res_ptepage();
-			set_pmd(pmd, __pmd(pte_phys | _KERNPG_TABLE));
-
+			set_pmd(pmd, __pmd(0));
 			continue;
 		}
 

-- 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [patch 4/4] x86: PAT followup - use ioremap for devmem read of reserved regions
  2008-01-16  2:39 [patch 0/4] x86: PAT followup - Incremental changes and bug fixes venkatesh.pallipadi
                   ` (2 preceding siblings ...)
  2008-01-16  2:39 ` [patch 3/4] x86: PAT followup - Remove reserved pages mapping to zero page and not map them venkatesh.pallipadi
@ 2008-01-16  2:39 ` venkatesh.pallipadi
  2008-01-16  7:33   ` Ingo Molnar
  2008-01-16  7:29 ` [patch 0/4] x86: PAT followup - Incremental changes and bug fixes Ingo Molnar
  2008-01-16 18:57 ` Andreas Herrmann
  5 siblings, 1 reply; 50+ messages in thread
From: venkatesh.pallipadi @ 2008-01-16  2:39 UTC (permalink / raw)
  To: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem
  Cc: linux-kernel, Venkatesh Pallipadi, Suresh Siddha

[-- Attachment #1: devmem_read.patch --]
[-- Type: text/plain, Size: 4753 bytes --]

map and unmap reserved regions, before accessing through /dev/mem read
interface. This is for full compatibility with existing /dev/mem
usages.
For regions that are mapped in identity map, we use __va().

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>

Index: linux-2.6.git/arch/x86/mm/ioremap.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/ioremap.c	2008-01-15 10:05:13.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/ioremap.c	2008-01-15 10:39:18.000000000 -0800
@@ -32,6 +32,39 @@
 }
 EXPORT_SYMBOL(ioremap_wc);
 
+/*
+ * Convert a physical pointer to a virtual kernel pointer for /dev/mem
+ * access
+ */
+void *xlate_dev_mem_ptr(unsigned long phys)
+{
+	void *addr;
+	unsigned long start = phys & PAGE_MASK;
+
+	/*
+	 * If any memory in PAGE_SIZE is valid, then we can use __va. Otherwise
+	 * ioremap and unmap the memory.
+	 */
+	if (is_memory_any_valid(start, start + PAGE_SIZE))
+		return __va(phys);
+
+	addr = (void *)ioremap(start, PAGE_SIZE);
+	if (addr)
+		addr = (void *)((unsigned long)addr | (phys & ~PAGE_MASK));
+
+	return addr;
+}
+
+void unxlate_dev_mem_ptr(unsigned long phys, void *addr)
+{
+	unsigned long start = phys & PAGE_MASK;
+	if (is_memory_any_valid(start, start + PAGE_SIZE))
+		return;
+
+	iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
+	return;
+}
+
 int valid_phys_addr_range(unsigned long addr, size_t count)
 {
 	if (addr + count > __pa(high_memory))
Index: linux-2.6.git/drivers/char/mem.c
===================================================================
--- linux-2.6.git.orig/drivers/char/mem.c	2008-01-15 10:05:13.000000000 -0800
+++ linux-2.6.git/drivers/char/mem.c	2008-01-15 10:05:51.000000000 -0800
@@ -127,9 +127,14 @@
 		 * by the kernel or data corruption may occur
 		 */
 		ptr = xlate_dev_mem_ptr(p);
+		if (!ptr)
+			return -EFAULT;
 
 		if (copy_to_user(buf, ptr, sz))
 			return -EFAULT;
+
+		unxlate_dev_mem_ptr(p, ptr);
+
 		buf += sz;
 		p += sz;
 		count -= sz;
@@ -184,6 +189,11 @@
 		 * by the kernel or data corruption may occur
 		 */
 		ptr = xlate_dev_mem_ptr(p);
+		if (!ptr) {
+			if (written)
+				break;
+			return -EFAULT;
+		}
 
 		copied = copy_from_user(ptr, buf, sz);
 		if (copied) {
@@ -192,6 +202,9 @@
 				break;
 			return -EFAULT;
 		}
+
+		unxlate_dev_mem_ptr(p, ptr);
+
 		buf += sz;
 		p += sz;
 		count -= sz;
Index: linux-2.6.git/include/asm-generic/iomap.h
===================================================================
--- linux-2.6.git.orig/include/asm-generic/iomap.h	2008-01-15 10:05:13.000000000 -0800
+++ linux-2.6.git/include/asm-generic/iomap.h	2008-01-15 10:23:24.000000000 -0800
@@ -69,4 +69,8 @@
 #define ioremap_wc ioremap_nocache
 #endif
 
+#ifndef unxlate_dev_mem_ptr
+static inline void unxlate_dev_mem_ptr(unsigned long phys, void *addr) {}
+#endif
+
 #endif
Index: linux-2.6.git/include/asm-x86/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/io.h	2008-01-15 10:05:13.000000000 -0800
+++ linux-2.6.git/include/asm-x86/io.h	2008-01-15 10:21:42.000000000 -0800
@@ -2,6 +2,7 @@
 #define _ASM_X86_IO_H
 
 #define ioremap_wc ioremap_wc
+#define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
 
 #ifdef CONFIG_X86_32
 # include "io_32.h"
@@ -10,6 +11,8 @@
 #endif
 
 extern void __iomem * ioremap_wc(unsigned long offset, unsigned long size);
+extern void *xlate_dev_mem_ptr(unsigned long phys);
+extern void unxlate_dev_mem_ptr(unsigned long phys, void *addr);
 
 #define ARCH_HAS_VALID_PHYS_ADDR_RANGE
 
Index: linux-2.6.git/include/asm-x86/io_32.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/io_32.h	2008-01-15 10:05:13.000000000 -0800
+++ linux-2.6.git/include/asm-x86/io_32.h	2008-01-15 10:05:51.000000000 -0800
@@ -49,12 +49,6 @@
 #include <linux/vmalloc.h>
 
 /*
- * Convert a physical pointer to a virtual kernel pointer for /dev/mem
- * access
- */
-#define xlate_dev_mem_ptr(p)	__va(p)
-
-/*
  * Convert a virtual cached pointer to an uncached pointer
  */
 #define xlate_dev_kmem_ptr(p)	p
Index: linux-2.6.git/include/asm-x86/io_64.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/io_64.h	2008-01-15 10:05:13.000000000 -0800
+++ linux-2.6.git/include/asm-x86/io_64.h	2008-01-15 10:05:51.000000000 -0800
@@ -278,12 +278,6 @@
 #define BIO_VMERGE_BOUNDARY iommu_bio_merge
 
 /*
- * Convert a physical pointer to a virtual kernel pointer for /dev/mem
- * access
- */
-#define xlate_dev_mem_ptr(p)	__va(p)
-
-/*
  * Convert a virtual cached pointer to an uncached pointer
  */
 #define xlate_dev_kmem_ptr(p)	p

-- 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16  2:39 [patch 0/4] x86: PAT followup - Incremental changes and bug fixes venkatesh.pallipadi
                   ` (3 preceding siblings ...)
  2008-01-16  2:39 ` [patch 4/4] x86: PAT followup - use ioremap for devmem read of reserved regions venkatesh.pallipadi
@ 2008-01-16  7:29 ` Ingo Molnar
  2008-01-16 18:57 ` Andreas Herrmann
  5 siblings, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-16  7:29 UTC (permalink / raw)
  To: venkatesh.pallipadi
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, tglx,
	hpa, akpm, arjan, jesse.barnes, davem, linux-kernel


* venkatesh.pallipadi@intel.com <venkatesh.pallipadi@intel.com> wrote:

> Some incremental changes and bug fixes for PAT patchset. The changes 
> are from the feedback we received earlier. There are few more pending 
> changes that will follow soon.

thanks, applied them to x86.git.

Note that PAT is still hardcoded to disabled in arch/x86/mm/pat.c:

  int __read_mostly pat_disabled = 1;

because one of my testsystems failed during bootup. I'll re-check 
whether these fixes resolve that, and if it passes then we could enable 
PAT.

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 4/4] x86: PAT followup - use ioremap for devmem read of reserved regions
  2008-01-16  2:39 ` [patch 4/4] x86: PAT followup - use ioremap for devmem read of reserved regions venkatesh.pallipadi
@ 2008-01-16  7:33   ` Ingo Molnar
  0 siblings, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-16  7:33 UTC (permalink / raw)
  To: venkatesh.pallipadi
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, tglx,
	hpa, akpm, arjan, jesse.barnes, davem, linux-kernel,
	Suresh Siddha


* venkatesh.pallipadi@intel.com <venkatesh.pallipadi@intel.com> wrote:

> --- linux-2.6.git.orig/drivers/char/mem.c	2008-01-15 10:05:13.000000000 -0800
> +++ linux-2.6.git/drivers/char/mem.c	2008-01-15 10:05:51.000000000 -0800
> @@ -127,9 +127,14 @@
>  		 * by the kernel or data corruption may occur
>  		 */
>  		ptr = xlate_dev_mem_ptr(p);
> +		if (!ptr)
> +			return -EFAULT;
>  
>  		if (copy_to_user(buf, ptr, sz))
>  			return -EFAULT;
> +
> +		unxlate_dev_mem_ptr(p, ptr);

sidenote: drivers/char/mem.c has no locking here, are you sure it's safe 
to create a possibly large number of aliases here? At least on 32-bit it 
could deplete the vmalloc area. (where all ioremaps go)

since /dev/mem access is strongly discouraged anyway (except perhaps for 
debugging purposes), wouldnt it be safer to stick a mutex around these 
areas?

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry
  2008-01-16  2:39 ` [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry venkatesh.pallipadi
@ 2008-01-16  8:14   ` Mika Penttilä
  2008-01-16 18:17     ` Pallipadi, Venkatesh
  2008-01-17  0:18     ` Venki Pallipadi
  0 siblings, 2 replies; 50+ messages in thread
From: Mika Penttilä @ 2008-01-16  8:14 UTC (permalink / raw)
  To: venkatesh.pallipadi
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem, linux-kernel,
	Suresh Siddha

venkatesh.pallipadi@intel.com kirjoitti:
> KERNPG_TABLE was a bug in earlier patch. Remove it from pte.
> pte_val() check is redundant as this routine is called immediately after a
> ptepage is allocated afresh.
>
> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
>
> Index: linux-2.6.git/arch/x86/mm/init_64.c
> ===================================================================
> --- linux-2.6.git.orig/arch/x86/mm/init_64.c	2008-01-15 11:02:23.000000000 -0800
> +++ linux-2.6.git/arch/x86/mm/init_64.c	2008-01-15 11:06:37.000000000 -0800
> @@ -541,9 +541,6 @@
>  		if (address >= end)
>  			break;
>  
> -		if (pte_val(*pte))
> -			continue;
> -
>  		/* Nothing to map. Map the null page */
>  		if (!(address & (~PAGE_MASK)) &&
>  		    (address + PAGE_SIZE <= end) &&
> @@ -561,9 +558,9 @@
>  		}
>  
>  		if (exec)
> -			entry = _PAGE_NX|_KERNPG_TABLE|_PAGE_GLOBAL|address;
> +			entry = _PAGE_NX|_PAGE_GLOBAL|address;
>  		else
> -			entry = _KERNPG_TABLE|_PAGE_GLOBAL|address;
> +			entry = _PAGE_GLOBAL|address;
>  		entry &= __supported_pte_mask;
>  		set_pte(pte, __pte(entry));
>  	}
>
>   

Hmm then what's the point of mapping not present 4k pages for valid mem 
here?

--Mika



^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry
  2008-01-16  8:14   ` Mika Penttilä
@ 2008-01-16 18:17     ` Pallipadi, Venkatesh
  2008-01-17  0:18     ` Venki Pallipadi
  1 sibling, 0 replies; 50+ messages in thread
From: Pallipadi, Venkatesh @ 2008-01-16 18:17 UTC (permalink / raw)
  To: Mika Penttilä
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, Barnes, Jesse, davem, linux-kernel,
	Siddha, Suresh B

>-----Original Message-----
>From: Mika Penttilä [mailto:mika.penttila@kolumbus.fi] 
>Sent: Wednesday, January 16, 2008 12:14 AM
>To: Pallipadi, Venkatesh
>Cc: ak@muc.de; ebiederm@xmission.com; rdreier@cisco.com; 
>torvalds@linux-foundation.org; gregkh@suse.de; 
>airlied@skynet.ie; davej@redhat.com; mingo@elte.hu; 
>tglx@linutronix.de; hpa@zytor.com; akpm@linux-foundation.org; 
>arjan@infradead.org; Barnes, Jesse; davem@davemloft.net; 
>linux-kernel@vger.kernel.org; Siddha, Suresh B
>Subject: Re: [patch 2/4] x86: PAT followup - Remove 
>KERNPG_TABLE from pte entry
>
>venkatesh.pallipadi@intel.com kirjoitti:
>> KERNPG_TABLE was a bug in earlier patch. Remove it from pte.
>> pte_val() check is redundant as this routine is called 
>immediately after a
>> ptepage is allocated afresh.
>>
>> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
>> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
>>
>> Index: linux-2.6.git/arch/x86/mm/init_64.c
>> ===================================================================
>> --- linux-2.6.git.orig/arch/x86/mm/init_64.c	2008-01-15 
>11:02:23.000000000 -0800
>> +++ linux-2.6.git/arch/x86/mm/init_64.c	2008-01-15 
>11:06:37.000000000 -0800
>> @@ -541,9 +541,6 @@
>>  		if (address >= end)
>>  			break;
>>  
>> -		if (pte_val(*pte))
>> -			continue;
>> -
>>  		/* Nothing to map. Map the null page */
>>  		if (!(address & (~PAGE_MASK)) &&
>>  		    (address + PAGE_SIZE <= end) &&
>> @@ -561,9 +558,9 @@
>>  		}
>>  
>>  		if (exec)
>> -			entry = 
>_PAGE_NX|_KERNPG_TABLE|_PAGE_GLOBAL|address;
>> +			entry = _PAGE_NX|_PAGE_GLOBAL|address;
>>  		else
>> -			entry = _KERNPG_TABLE|_PAGE_GLOBAL|address;
>> +			entry = _PAGE_GLOBAL|address;
>>  		entry &= __supported_pte_mask;
>>  		set_pte(pte, __pte(entry));
>>  	}
>>
>>   
>
>Hmm then what's the point of mapping not present 4k pages for 
>valid mem 
>here?
>

My bad... Thanks for the catch.
I had to replace KERNPG_TABLE by PAGE_KERNEL here.

Thanks,
Venki

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16  2:39 [patch 0/4] x86: PAT followup - Incremental changes and bug fixes venkatesh.pallipadi
                   ` (4 preceding siblings ...)
  2008-01-16  7:29 ` [patch 0/4] x86: PAT followup - Incremental changes and bug fixes Ingo Molnar
@ 2008-01-16 18:57 ` Andreas Herrmann
  2008-01-16 19:05   ` Pallipadi, Venkatesh
                     ` (3 more replies)
  5 siblings, 4 replies; 50+ messages in thread
From: Andreas Herrmann @ 2008-01-16 18:57 UTC (permalink / raw)
  To: venkatesh.pallipadi
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2327 bytes --]

Hi,

I just want to report that the PAT support in x86/mm causes crashes
on two of my test machines. On both boxes the SATA detection does
not work when the PAT support is patched into the kernel.

Symptoms are as follows -- best described by a diff between the
two boot.logs:

# diff boot-failing.log boot-working.log

-Linux version 2.6.24-rc8-ga9f7faa5 (root@hunter) (gcc version ...
+Linux version 2.6.24-rc8-g2ea3cf43 (root@hunter) (gcc version ...
...
 early_iounmap(ffffffff82a0b000, 00001000)
-early_ioremap(000000000000c000, 00001000) => -000002103394304
-early_iounmap(ffffffff82a0c000, 00001000)
 early_iounmap(ffffffff82808000, 00001000)
...
-ACPI: PCI interrupt for device 0000:00:12.0 disabled
-sata_sil: probe of 0000:00:12.0 failed with error -12
+scsi0 : sata_sil
+scsi1 : sata_sil
+ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
...
-AC'97 space ioremap problem
-ACPI: PCI interrupt for device 0000:00:14.5 disabled
-ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5
 ALSA device list:
-  No soundcards found.
+  #0: ATI IXP rev 80 with ALC655 at 0xc0403800, irq 17
...
-VFS: Cannot open root device "sda1" or unknown-block(0,0)
-Please append a correct "root=" boot option; here are the available partitions:
-1600    4194302 hdc driver: ide-cdrom
-Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
+kjournald starting.  Commit interval 5 seconds
+EXT3-fs: mounted filesystem with ordered data mode.
+VFS: Mounted root (ext3 filesystem) readonly.
...

   <snip>
 
The second test machine uses ahci. But the symptoms are similar.

I performed a git-bisect on x86/mm. Last commit that worked for me was

2ea3cf43fddecbfd66353caafdf73ec21ea3760b (x86: fix early_ioremap() ISA window)

The subsequent commits for PAT support introduced the problem.
I noticed that PAT should be disabled by default, but obviously the patches
still have some side-effect. (Maybe ioremap changes lead to the problem?)

Boot-logs are attached:

  boot-failing.log for x86/mm as of v2.6.24-rc8-672-ga9f7faa
  boot-working.log for x86/mm as of v2.6.24-rc8-621-g2ea3cf4

Hopefully it helps to track down the problem.
Maybe someone has an idea why the PAT patches are causing that
ominous "PCI interrupt for device ... disabled" messages.


Thanks and regards,

Andreas

[-- Attachment #2: boot-failing.log --]
[-- Type: text/plain, Size: 31210 bytes --]

  Booting command-list

kernel=/tftpboot/aherrma3/hunter-x86-mm root=/dev/sda1 console=ttyS0,115200
   [Linux-bzImage, setup=0x2a00, size=0x24bb58]
boot
Issuing RESET:
Linux version 2.6.24-rc8-ga9f7faa5 (root@hunter) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #1 SMP Wed Jan 16 18:26:59 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_ioremap(000000000000c000, 00001000) => -000002103394304
early_iounmap(ffffffff82a0c000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_ioremap(00000000000e0000, 00020000) => -000002102525952
early_iounmap(ffffffff82ae0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002102429584
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff82af7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD      XSDT    6040000  LTP        0)
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002102945700
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff82a7985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002102939712
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff82a7afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002102945456
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82a79950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002102945406
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82a79982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002102944058
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82a79ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002102943866
ACPI: APIC 77E79F86, 007A (r1 PTLTD      APIC    6040000  LTP        0)
early_iounmap(ffffffff82a79f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
early_ioremap(0000000077e79ec6, 000000c0) => -000002100846906
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_ioremap(0000000077e79ec6, 000000c0) => -000002098749754
SRAT: Node 0 PXM 0 0-a0000
SRAT: Node 0 PXM 0 0-80000000
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002097152000
early_iounmap(ffffffff83000000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002096497664
early_iounmap(ffffffff8309fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002096168960
early_iounmap(ffffffff830f0000, 00010000)
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002096654244
ACPI: PM-Timer IO Port: 0x8008
early_ioremap(0000000077e79f86, 0000007a) => -000002094555258
early_ioremap(0000000077e79f86, 0000007a) => -000002092458106
early_ioremap(0000000077e79f86, 0000007a) => -000002090360954
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_ioremap(0000000077e79f86, 0000007a) => -000002088263802
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_ioremap(0000000077e79f86, 0000007a) => -000002086166650
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_ioremap(0000000077e79f86, 0000007a) => -000002084069498
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_ioremap(0000000077e79f86, 0000007a) => -000002081972346
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30368 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484281
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
Marking TSC unstable due to TSCs unsynchronized
time.c: Detected 2288.275 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928912k/1964480k available (3073k kernel code, 35108k reserved, 1737k data, 308k init)
Calibrating delay using timer specific routine.. 4581.21 BogoMIPS (lpj=9162431)
Dentry cache hash table entries: 262144 (orde��\x02�b\x02��ʺ���\x02ѕͥ
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
Using local APIC timer interrupts.
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.70 BogoMIPS (lpj=9153416)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.71 BogoMIPS (lpj=9153428)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.73 BogoMIPS (lpj=9153467)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
Brought up 4 CPUs
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
SCSI subsystem initialized
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
Time: acpi_pm clocksource has been installed.
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
Linux version 2.6.24-rc8-ga9f7faa5 (root@hunter) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #1 SMP Wed Jan 16 18:26:59 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_ioremap(000000000000c000, 00001000) => -000002103394304
early_iounmap(ffffffff82a0c000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_ioremap(00000000000e0000, 00020000) => -000002102525952
early_iounmap(ffffffff82ae0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002102429584
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff82af7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD      XSDT    6040000  LTP        0)
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002102945700
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff82a7985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002102939712
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff82a7afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002102945456
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82a79950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002102945406
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82a79982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002102944058
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82a79ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002102943866
ACPI: APIC 77E79F86, 007A (r1 PTLTD      APIC    6040000  LTP        0)
early_iounmap(ffffffff82a79f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
early_ioremap(0000000077e79ec6, 000000c0) => -000002100846906
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_ioremap(0000000077e79ec6, 000000c0) => -000002098749754
SRAT: Node 0 PXM 0 0-a0000
SRAT: Node 0 PXM 0 0-80000000
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002097152000
early_iounmap(ffffffff83000000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002096497664
early_iounmap(ffffffff8309fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002096168960
early_iounmap(ffffffff830f0000, 00010000)
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002096654244
ACPI: PM-Timer IO Port: 0x8008
early_ioremap(0000000077e79f86, 0000007a) => -000002094555258
early_ioremap(0000000077e79f86, 0000007a) => -000002092458106
early_ioremap(0000000077e79f86, 0000007a) => -000002090360954
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_ioremap(0000000077e79f86, 0000007a) => -000002088263802
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_ioremap(0000000077e79f86, 0000007a) => -000002086166650
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_ioremap(0000000077e79f86, 0000007a) => -000002084069498
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_ioremap(0000000077e79f86, 0000007a) => -000002081972346
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30368 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484281
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
Marking TSC unstable due to TSCs unsynchronized
time.c: Detected 2288.275 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928912k/1964480k available (3073k kernel code, 35108k reserved, 1737k data, 308k init)
Calibrating delay using timer specific routine.. 4581.21 BogoMIPS (lpj=9162431)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
Using local APIC timer interrupts.
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.70 BogoMIPS (lpj=9153416)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.71 BogoMIPS (lpj=9153428)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.73 BogoMIPS (lpj=9153467)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
Brought up 4 CPUs
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
SCSI subsystem initialized
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
Time: acpi_pm clocksource has been installed.
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
netconsole: network logging started
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ATIIXP: IDE controller (0x1002:0x4376 rev 0x80) at  PCI slot 0000:00:14.1
ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16
ATIIXP: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1060-0x1067, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0x1068-0x106f, BIOS settings: hdc:DMA, hdd:pio
hdc: SONY DVD-ROM DDU1615, ATAPI CD/DVD-ROM drive
hdc: UDMA/33 mode selected
ide1 at 0x170-0x177,0x376 on irq 15
hdc: ATAPI 40X DVD-ROM drive, 254kB Cache
Uniform CD-ROM driver Revision: 3.20
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
ACPI: PCI interrupt for device 0000:00:12.0 disabled
sata_sil: probe of 0000:00:12.0 failed with error -12
Fusion MPT base driver 3.04.06
Copyright (c) 1999-2007 LSI Corporation
Fusion MPT SAS Host driver 3.04.06
ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:13.2: irq 19, io mem 0xc0402000
ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 19
ohci_hcd 0000:00:13.0: OHCI Host Controller
ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:13.0: irq 19, io mem 0xc0400000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
ACPI: PCI Interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 19
ohci_hcd 0000:00:13.1: OHCI Host Controller
ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:13.1: irq 19, io mem 0xc0401000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 4 ports detected
USB Universal Host Controller Interface driver v3.0
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
i2c /dev entries driver
piix4_smbus 0000:00:14.0: Found 0000:00:14.0 device
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
ACPI: PCI Interrupt 0000:00:14.5[B] -> GSI 17 (level, low) -> IRQ 17
AC'97 space ioremap problem
ACPI: PCI interrupt for device 0000:00:14.5 disabled
ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5
ALSA device list:
  No soundcards found.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
powernow-k8: Found 1 AMD Phenom(tm) 9600 Quad-Core Processor processors (4 cpu cores) (version 2.20.00)
powernow-k8:    0 : fid 0x0 did 0x0 (2300 MHz)
powernow-k8:    1 : fid 0x0 did 0x0 (1150 MHz)
VFS: Cannot open root device "sda1" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
1600    4194302 hdc driver: ide-cdrom
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)




[-- Attachment #3: boot-working.log --]
[-- Type: text/plain, Size: 32892 bytes --]

  Booting '(hunter) x86/mm (last working)'

kernel=/tftpboot/aherrma3/hunter-x86-mm-working root=/dev/sda1 console=ttyS0,11
5200
   [Linux-bzImage, setup=0x2a00, size=0x24a578]
boot
Issuing RESET:
Linux version 2.6.24-rc8-g2ea3cf43 (root@hunter) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #3 SMP Wed Jan 16 19:17:19 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_ioremap(00000000000e0000, 00020000) => -000002102525952
early_iounmap(ffffffff82ae0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002102429584
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff82af7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD      XSDT    6040000  LTP        0)
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002102945700
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff82a7985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002102939712
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff82a7afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002102945456
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82a79950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002102945406
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82a79982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002102944058
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82a79ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002102943866
ACPI: APIC 77E79F86, 007A (r1 PTLTD      APIC    6040000  LTP        0)
early_iounmap(ffffffff82a79f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
early_ioremap(0000000077e79ec6, 000000c0) => -000002100846906
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_ioremap(0000000077e79ec6, 000000c0) => -000002098749754
SRAT: Node 0 PXM 0 0-a0000
SRAT: Node 0 PXM 0 0-80000000
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002097152000
early_iounmap(ffffffff83000000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002096497664
early_iounmap(ffffffff8309fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002096168960
early_iounmap(ffffffff830f0000, 00010000)
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002096654244
ACPI: PM-Timer IO Port: 0x8008
early_ioremap(0000000077e79f86, 0000007a) => -000002094555258
early_ioremap(0000000077e79f86, 0000007a) => -000002092458106
early_ioremap(0000000077e79f86, 0000007a) => -000002090360954
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_ioremap(0000000077e79f86, 0000007a) => -000002088263802
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_ioremap(0000000077e79f86, 0000007a) => -000002086166650
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_ioremap(0000000077e79f86, 0000007a) => -000002084069498
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_ioremap(0000000077e79f86, 0000007a) => -000002081972346
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30112 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484282
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
Marking TSC unstable due to TSCs unsynchronized
time.c: Detected 2288.366 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928920k/1964480k available (3069k kernel code, 35100k reserved, 1738k data, 304k init)
Calibrating delay using timer specific routine.. 4581.34 BogoMIPS (lpj=9162692)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
Using local APIC timer interrupts.
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.90 BogoMIPS (lpj=9153811)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.92 BogoMIPS (lpj=9153854)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.93 BogoMIPS (lpj=9153875)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
Brought up 4 CPUs
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
SCSI subsystem initialized
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
Time: acpi_pm clocksource has been installed.
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
�҂
  � ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
Linux version 2.6.24-rc8-g2ea3cf43 (root@hunter) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #3 SMP Wed Jan 16 19:17:19 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_ioremap(00000000000e0000, 00020000) => -000002102525952
early_iounmap(ffffffff82ae0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002102429584
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff82af7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002102973244
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD      XSDT    6040000  LTP        0)
early_iounmap(ffffffff82a72cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002102973244
early_iounmap(ffffffff82a72cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002102945700
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff82a7985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002102939712
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff82a7afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002102945456
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82a79950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002102945406
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82a79982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002102944058
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82a79ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002102943866
ACPI: APIC 77E79F86, 007A (r1 PTLTD      APIC    6040000  LTP        0)
early_iounmap(ffffffff82a79f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002102973168
early_iounmap(ffffffff82a72d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
early_ioremap(0000000077e79ec6, 000000c0) => -000002100846906
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_ioremap(0000000077e79ec6, 000000c0) => -000002098749754
SRAT: Node 0 PXM 0 0-a0000
SRAT: Node 0 PXM 0 0-80000000
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002097152000
early_iounmap(ffffffff83000000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002096497664
early_iounmap(ffffffff8309fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002096168960
early_iounmap(ffffffff830f0000, 00010000)
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002096654244
ACPI: PM-Timer IO Port: 0x8008
early_ioremap(0000000077e79f86, 0000007a) => -000002094555258
early_ioremap(0000000077e79f86, 0000007a) => -000002092458106
early_ioremap(0000000077e79f86, 0000007a) => -000002090360954
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x0���lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_ioremap(0000000077e79f86, 0000007a) => -000002088263802
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_ioremap(0000000077e79f86, 0000007a) => -000002086166650
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_ioremap(0000000077e79f86, 0000007a) => -000002084069498
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_ioremap(0000000077e79f86, 0000007a) => -000002081972346
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30112 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484282
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
Marking TSC unstable due to TSCs unsynchronized
time.c: Detected 2288.366 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928920k/1964480k available (3069k kernel code, 35100k reserved, 1738k data, 304k init)
Calibrating delay using timer specific routine.. 4581.34 BogoMIPS (lpj=9162692)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
Using local APIC timer interrupts.
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.90 BogoMIPS (lpj=9153811)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.92 BogoMIPS (lpj=9153854)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.93 BogoMIPS (lpj=9153875)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
Brought up 4 CPUs
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
SCSI subsystem initialized
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
Time: acpi_pm clocksource has been installed.
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
netconsole: network logging started
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ATIIXP: IDE controller (0x1002:0x4376 rev 0x80) at  PCI slot 0000:00:14.1
ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16
ATIIXP: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1060-0x1067, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0x1068-0x106f, BIOS settings: hdc:DMA, hdd:pio
hdc: SONY DVD-ROM DDU1615, ATAPI CD/DVD-ROM drive
hdc: UDMA/33 mode selected
ide1 at 0x170-0x177,0x376 on irq 15
hdc: ATAPI 40X DVD-ROM drive, 254kB Cache
Uniform CD-ROM driver Revision: 3.20
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
scsi0 : sata_sil
scsi1 : sata_sil
ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
ata2: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc04030c0 irq 22
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ATA-7: ST3120811AS, 3.AAE, max UDMA/133
ata1.00: 234441648 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/100
ata2: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      ST3120811AS      3.AA PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3 < sda5 sda6 >
sd 0:0:0:0: [sda] Attached SCSI disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
Fusion MPT base driver 3.04.06
Copyright (c) 1999-2007 LSI Corporation
Fusion MPT SAS Host driver 3.04.06
ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:13.2: irq 19, io mem 0xc0402000
ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 19
ohci_hcd 0000:00:13.0: OHCI Host Controller
ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:13.0: irq 19, io mem 0xc0400000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
ACPI: PCI Interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 19
ohci_hcd 0000:00:13.1: OHCI Host Controller
ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:13.1: irq 19, io mem 0xc0401000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 4 ports detected
USB Universal Host Controller Interface driver v3.0
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
i2c /dev entries driver
piix4_smbus 0000:00:14.0: Found 0000:00:14.0 device
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
ACPI: PCI Interrupt 0000:00:14.5[B] -> GSI 17 (level, low) -> IRQ 17
ALSA device list:
  #0: ATI IXP rev 80 with ALC655 at 0xc0403800, irq 17
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
powernow-k8: Found 1 AMD Phenom(tm) 9600 Quad-Core Processor processors (4 cpu cores) (version 2.20.00)
powernow-k8:    0 : fid 0x0 did 0x0 (2300 MHz)
powernow-k8:    1 : fid 0x0 did 0x0 (1150 MHz)
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 304k freed
INIT: version 2.86 booting

Gentoo Linux; http://www.gentoo.org/
 Copyright 1999-2007 Gentoo Foundation; Distributed under the GPLv2

Press I to enter interactive boot mode

 * Mounting proc at /proc ...                                             [ ok ]
 * Mounting sysfs at /sys ...                                             [ ok ]
 * Mounting /dev for udev ...                                             [ ok ]
 * Seeding /dev with needed nodes ...                                     [ ok ]
 * Starting udevd ...                                                     [ ok ]
 * Populating /dev with existing devices through uevents ...              [ ok ]
 * Letting udev process events ...                                        [ ok ]
 * Finalizing udev configuration ...                                      [ ok ]
 * Mounting devpts at /dev/pts ...                                        [ ok ]
 * Checking root filesystem .../dev/sda1: clean, 596867/2443200 files, 3403917/4885760 blocks
                                           [ ok ]
 * Remounting root filesystem read/write ...                              [ ok ]

    <snip>

^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 18:57 ` Andreas Herrmann
@ 2008-01-16 19:05   ` Pallipadi, Venkatesh
  2008-01-16 19:37   ` Pallipadi, Venkatesh
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 50+ messages in thread
From: Pallipadi, Venkatesh @ 2008-01-16 19:05 UTC (permalink / raw)
  To: Andreas Herrmann
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, Barnes, Jesse, davem, linux-kernel


Can you attach the e820 map from the top of your dmesg.

Thanks,
Venki 

>-----Original Message-----
>From: Andreas Herrmann [mailto:andreas.herrmann3@amd.com] 
>Sent: Wednesday, January 16, 2008 10:58 AM
>To: Pallipadi, Venkatesh
>Cc: ak@muc.de; ebiederm@xmission.com; rdreier@cisco.com; 
>torvalds@linux-foundation.org; gregkh@suse.de; 
>airlied@skynet.ie; davej@redhat.com; mingo@elte.hu; 
>tglx@linutronix.de; hpa@zytor.com; akpm@linux-foundation.org; 
>arjan@infradead.org; Barnes, Jesse; davem@davemloft.net; 
>linux-kernel@vger.kernel.org
>Subject: Re: [patch 0/4] x86: PAT followup - Incremental 
>changes and bug fixes
>
>Hi,
>
>I just want to report that the PAT support in x86/mm causes crashes
>on two of my test machines. On both boxes the SATA detection does
>not work when the PAT support is patched into the kernel.
>
>Symptoms are as follows -- best described by a diff between the
>two boot.logs:
>
># diff boot-failing.log boot-working.log
>
>-Linux version 2.6.24-rc8-ga9f7faa5 (root@hunter) (gcc version ...
>+Linux version 2.6.24-rc8-g2ea3cf43 (root@hunter) (gcc version ...
>...
> early_iounmap(ffffffff82a0b000, 00001000)
>-early_ioremap(000000000000c000, 00001000) => -000002103394304
>-early_iounmap(ffffffff82a0c000, 00001000)
> early_iounmap(ffffffff82808000, 00001000)
>...
>-ACPI: PCI interrupt for device 0000:00:12.0 disabled
>-sata_sil: probe of 0000:00:12.0 failed with error -12
>+scsi0 : sata_sil
>+scsi1 : sata_sil
>+ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
>...
>-AC'97 space ioremap problem
>-ACPI: PCI interrupt for device 0000:00:14.5 disabled
>-ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5
> ALSA device list:
>-  No soundcards found.
>+  #0: ATI IXP rev 80 with ALC655 at 0xc0403800, irq 17
>...
>-VFS: Cannot open root device "sda1" or unknown-block(0,0)
>-Please append a correct "root=" boot option; here are the 
>available partitions:
>-1600    4194302 hdc driver: ide-cdrom
>-Kernel panic - not syncing: VFS: Unable to mount root fs on 
>unknown-block(0,0)
>+kjournald starting.  Commit interval 5 seconds
>+EXT3-fs: mounted filesystem with ordered data mode.
>+VFS: Mounted root (ext3 filesystem) readonly.
>...
>
>   <snip>
> 
>The second test machine uses ahci. But the symptoms are similar.
>
>I performed a git-bisect on x86/mm. Last commit that worked for me was
>
>2ea3cf43fddecbfd66353caafdf73ec21ea3760b (x86: fix 
>early_ioremap() ISA window)
>
>The subsequent commits for PAT support introduced the problem.
>I noticed that PAT should be disabled by default, but 
>obviously the patches
>still have some side-effect. (Maybe ioremap changes lead to 
>the problem?)
>
>Boot-logs are attached:
>
>  boot-failing.log for x86/mm as of v2.6.24-rc8-672-ga9f7faa
>  boot-working.log for x86/mm as of v2.6.24-rc8-621-g2ea3cf4
>
>Hopefully it helps to track down the problem.
>Maybe someone has an idea why the PAT patches are causing that
>ominous "PCI interrupt for device ... disabled" messages.
>
>
>Thanks and regards,
>
>Andreas
>

^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 18:57 ` Andreas Herrmann
  2008-01-16 19:05   ` Pallipadi, Venkatesh
@ 2008-01-16 19:37   ` Pallipadi, Venkatesh
  2008-01-16 20:24   ` Ingo Molnar
  2008-01-16 20:33   ` Venki Pallipadi
  3 siblings, 0 replies; 50+ messages in thread
From: Pallipadi, Venkatesh @ 2008-01-16 19:37 UTC (permalink / raw)
  To: Andreas Herrmann
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, Barnes, Jesse, davem, linux-kernel


Sorry. Never mind about e820 map. Somehow I did not notice the boot.log
you had attached earlier.

Thanks,
Venki 

>-----Original Message-----
>From: Pallipadi, Venkatesh 
>Sent: Wednesday, January 16, 2008 11:06 AM
>To: 'Andreas Herrmann'
>Cc: ak@muc.de; ebiederm@xmission.com; rdreier@cisco.com; 
>torvalds@linux-foundation.org; gregkh@suse.de; 
>airlied@skynet.ie; davej@redhat.com; mingo@elte.hu; 
>tglx@linutronix.de; hpa@zytor.com; akpm@linux-foundation.org; 
>arjan@infradead.org; Barnes, Jesse; davem@davemloft.net; 
>linux-kernel@vger.kernel.org
>Subject: RE: [patch 0/4] x86: PAT followup - Incremental 
>changes and bug fixes
>
>
>Can you attach the e820 map from the top of your dmesg.
>
>Thanks,
>Venki 
>
>>-----Original Message-----
>>From: Andreas Herrmann [mailto:andreas.herrmann3@amd.com] 
>>Sent: Wednesday, January 16, 2008 10:58 AM
>>To: Pallipadi, Venkatesh
>>Cc: ak@muc.de; ebiederm@xmission.com; rdreier@cisco.com; 
>>torvalds@linux-foundation.org; gregkh@suse.de; 
>>airlied@skynet.ie; davej@redhat.com; mingo@elte.hu; 
>>tglx@linutronix.de; hpa@zytor.com; akpm@linux-foundation.org; 
>>arjan@infradead.org; Barnes, Jesse; davem@davemloft.net; 
>>linux-kernel@vger.kernel.org
>>Subject: Re: [patch 0/4] x86: PAT followup - Incremental 
>>changes and bug fixes
>>
>>Hi,
>>
>>I just want to report that the PAT support in x86/mm causes crashes
>>on two of my test machines. On both boxes the SATA detection does
>>not work when the PAT support is patched into the kernel.
>>
>>Symptoms are as follows -- best described by a diff between the
>>two boot.logs:
>>
>># diff boot-failing.log boot-working.log
>>
>>-Linux version 2.6.24-rc8-ga9f7faa5 (root@hunter) (gcc version ...
>>+Linux version 2.6.24-rc8-g2ea3cf43 (root@hunter) (gcc version ...
>>...
>> early_iounmap(ffffffff82a0b000, 00001000)
>>-early_ioremap(000000000000c000, 00001000) => -000002103394304
>>-early_iounmap(ffffffff82a0c000, 00001000)
>> early_iounmap(ffffffff82808000, 00001000)
>>...
>>-ACPI: PCI interrupt for device 0000:00:12.0 disabled
>>-sata_sil: probe of 0000:00:12.0 failed with error -12
>>+scsi0 : sata_sil
>>+scsi1 : sata_sil
>>+ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
>>...
>>-AC'97 space ioremap problem
>>-ACPI: PCI interrupt for device 0000:00:14.5 disabled
>>-ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5
>> ALSA device list:
>>-  No soundcards found.
>>+  #0: ATI IXP rev 80 with ALC655 at 0xc0403800, irq 17
>>...
>>-VFS: Cannot open root device "sda1" or unknown-block(0,0)
>>-Please append a correct "root=" boot option; here are the 
>>available partitions:
>>-1600    4194302 hdc driver: ide-cdrom
>>-Kernel panic - not syncing: VFS: Unable to mount root fs on 
>>unknown-block(0,0)
>>+kjournald starting.  Commit interval 5 seconds
>>+EXT3-fs: mounted filesystem with ordered data mode.
>>+VFS: Mounted root (ext3 filesystem) readonly.
>>...
>>
>>   <snip>
>> 
>>The second test machine uses ahci. But the symptoms are similar.
>>
>>I performed a git-bisect on x86/mm. Last commit that worked for me was
>>
>>2ea3cf43fddecbfd66353caafdf73ec21ea3760b (x86: fix 
>>early_ioremap() ISA window)
>>
>>The subsequent commits for PAT support introduced the problem.
>>I noticed that PAT should be disabled by default, but 
>>obviously the patches
>>still have some side-effect. (Maybe ioremap changes lead to 
>>the problem?)
>>
>>Boot-logs are attached:
>>
>>  boot-failing.log for x86/mm as of v2.6.24-rc8-672-ga9f7faa
>>  boot-working.log for x86/mm as of v2.6.24-rc8-621-g2ea3cf4
>>
>>Hopefully it helps to track down the problem.
>>Maybe someone has an idea why the PAT patches are causing that
>>ominous "PCI interrupt for device ... disabled" messages.
>>
>>
>>Thanks and regards,
>>
>>Andreas
>>

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 18:57 ` Andreas Herrmann
  2008-01-16 19:05   ` Pallipadi, Venkatesh
  2008-01-16 19:37   ` Pallipadi, Venkatesh
@ 2008-01-16 20:24   ` Ingo Molnar
  2008-01-16 20:33   ` Venki Pallipadi
  3 siblings, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-16 20:24 UTC (permalink / raw)
  To: Andreas Herrmann
  Cc: venkatesh.pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel


* Andreas Herrmann <andreas.herrmann3@amd.com> wrote:

> I just want to report that the PAT support in x86/mm causes crashes on 
> two of my test machines. On both boxes the SATA detection does not 
> work when the PAT support is patched into the kernel.
> 
> Symptoms are as follows -- best described by a diff between the two 
> boot.logs:
> 
> # diff boot-failing.log boot-working.log
> 
> -Linux version 2.6.24-rc8-ga9f7faa5 (root@hunter) (gcc version ...
> +Linux version 2.6.24-rc8-g2ea3cf43 (root@hunter) (gcc version ...
> ...
>  early_iounmap(ffffffff82a0b000, 00001000)
> -early_ioremap(000000000000c000, 00001000) => -000002103394304
> -early_iounmap(ffffffff82a0c000, 00001000)

hm, so the early_ioremap() stuff isnt working well enough ...

that's the main effect of the PAT patches at the moment: no kernel code 
will access the low linear mappings (BIOS tables, ACPI data, etc.) 
directly, it's all done via early_ioremap(). But it's apparently buggy 
somewhere ...

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 18:57 ` Andreas Herrmann
                     ` (2 preceding siblings ...)
  2008-01-16 20:24   ` Ingo Molnar
@ 2008-01-16 20:33   ` Venki Pallipadi
  2008-01-16 22:01     ` Andi Kleen
  2008-01-17 19:12     ` Andreas Herrmann3
  3 siblings, 2 replies; 50+ messages in thread
From: Venki Pallipadi @ 2008-01-16 20:33 UTC (permalink / raw)
  To: Andreas Herrmann
  Cc: venkatesh.pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, mingo, tglx, hpa, akpm, arjan, jesse.barnes,
	davem, linux-kernel, suresh.b.siddha

On Wed, Jan 16, 2008 at 07:57:48PM +0100, Andreas Herrmann wrote:
> Hi,
> 
> I just want to report that the PAT support in x86/mm causes crashes
> on two of my test machines. On both boxes the SATA detection does
> not work when the PAT support is patched into the kernel.
> 
> Symptoms are as follows -- best described by a diff between the
> two boot.logs:
> 
> # diff boot-failing.log boot-working.log
> 
> -Linux version 2.6.24-rc8-ga9f7faa5 (root@hunter) (gcc version ...
> +Linux version 2.6.24-rc8-g2ea3cf43 (root@hunter) (gcc version ...
> ...
>  early_iounmap(ffffffff82a0b000, 00001000)
> -early_ioremap(000000000000c000, 00001000) => -000002103394304
> -early_iounmap(ffffffff82a0c000, 00001000)
This does not look to be the problem here. We just mapped some new low
address due to possibly a different code path. But, seems to have worked fine.

>  early_iounmap(ffffffff82808000, 00001000)
> ...
> -ACPI: PCI interrupt for device 0000:00:12.0 disabled
> -sata_sil: probe of 0000:00:12.0 failed with error -12
> +scsi0 : sata_sil
> +scsi1 : sata_sil
> +ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
> ...
> -AC'97 space ioremap problem
> -ACPI: PCI interrupt for device 0000:00:14.5 disabled
> -ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5

This ioremap failing seems to be the real problem. This can be due to
new tracking of ioremaps introduced by PAT patches. We do not allow
conflicting ioremaps to same region. Probably that is happening
in both Sound and sata initialization which results in driver init failing.

Can you please try the debug patch below over latest x86/mm and boot kernel with
debug boot option and send us the dmesg from the failure. That will give us
better info about ioremaps.

Thanks,
Venki


Index: linux-2.6.git/arch/x86/mm/ioremap_64.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/ioremap_64.c	2008-01-16 03:38:32.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/ioremap_64.c	2008-01-16 05:16:28.000000000 -0800
@@ -150,6 +150,8 @@
 
 void __iomem *ioremap_nocache (unsigned long phys_addr, unsigned long size)
 {
+	printk(KERN_DEBUG "ioremap_nocache: addr %lx, size %lx\n",
+	       phys_addr, size);
 	return __ioremap(phys_addr, size, _PAGE_UC);
 }
 EXPORT_SYMBOL(ioremap_nocache);
Index: linux-2.6.git/include/asm-x86/io_64.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/io_64.h	2008-01-16 03:38:32.000000000 -0800
+++ linux-2.6.git/include/asm-x86/io_64.h	2008-01-16 05:16:57.000000000 -0800
@@ -154,6 +154,8 @@
 
 static inline void __iomem * ioremap (unsigned long offset, unsigned long size)
 {
+	printk(KERN_DEBUG "ioremap: addr %lx, size %lx\n",
+	       offset, size);
 	return __ioremap(offset, size, 0);
 }
 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 20:33   ` Venki Pallipadi
@ 2008-01-16 22:01     ` Andi Kleen
  2008-01-16 22:14       ` Pallipadi, Venkatesh
  2008-01-17 19:12     ` Andreas Herrmann3
  1 sibling, 1 reply; 50+ messages in thread
From: Andi Kleen @ 2008-01-16 22:01 UTC (permalink / raw)
  To: Venki Pallipadi
  Cc: Andreas Herrmann, ebiederm, rdreier, torvalds, gregkh, airlied,
	davej, mingo, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha

> This ioremap failing seems to be the real problem. This can be due to
> new tracking of ioremaps introduced by PAT patches. We do not allow
> conflicting ioremaps to same region. Probably that is happening

Normally if there is a conflict there should be a printk (or at least it was
so in the original mattr code if you haven't changed it)

-Andi

^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 22:01     ` Andi Kleen
@ 2008-01-16 22:14       ` Pallipadi, Venkatesh
  2008-01-16 22:29         ` Andi Kleen
  0 siblings, 1 reply; 50+ messages in thread
From: Pallipadi, Venkatesh @ 2008-01-16 22:14 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Andreas Herrmann, ebiederm, rdreier, torvalds, gregkh, airlied,
	davej, mingo, tglx, hpa, akpm, arjan, Barnes, Jesse, davem,
	linux-kernel, Siddha, Suresh B

 

>-----Original Message-----
>From: Andi Kleen [mailto:ak@muc.de] 
>Sent: Wednesday, January 16, 2008 2:02 PM
>To: Pallipadi, Venkatesh
>Cc: Andreas Herrmann; ebiederm@xmission.com; 
>rdreier@cisco.com; torvalds@linux-foundation.org; 
>gregkh@suse.de; airlied@skynet.ie; davej@redhat.com; 
>mingo@elte.hu; tglx@linutronix.de; hpa@zytor.com; 
>akpm@linux-foundation.org; arjan@infradead.org; Barnes, Jesse; 
>davem@davemloft.net; linux-kernel@vger.kernel.org; Siddha, Suresh B
>Subject: Re: [patch 0/4] x86: PAT followup - Incremental 
>changes and bug fixes
>
>> This ioremap failing seems to be the real problem. This can be due to
>> new tracking of ioremaps introduced by PAT patches. We do not allow
>> conflicting ioremaps to same region. Probably that is happening
>
>Normally if there is a conflict there should be a printk (or 
>at least it was
>so in the original mattr code if you haven't changed it)
>

Yes. Printks are there. But are with KERN_DEBUG now. We should change
them to WARNING atleast.

Thanks,
Venki

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 22:14       ` Pallipadi, Venkatesh
@ 2008-01-16 22:29         ` Andi Kleen
  0 siblings, 0 replies; 50+ messages in thread
From: Andi Kleen @ 2008-01-16 22:29 UTC (permalink / raw)
  To: Pallipadi, Venkatesh
  Cc: Andreas Herrmann, ebiederm, rdreier, torvalds, gregkh, airlied,
	davej, mingo, tglx, hpa, akpm, arjan, Barnes, Jesse, davem,
	linux-kernel, Siddha, Suresh B

> Yes. Printks are there. But are with KERN_DEBUG now. We should change
> them to WARNING atleast.

I'm pretty sure they were without KERN_* originally. Another reason
why the checkpatch.pl KERN_* warnings suck -- the original state would 
have been better and I bet you changed it just to shut up the dumb scripts.

-Andi

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry
  2008-01-16  8:14   ` Mika Penttilä
  2008-01-16 18:17     ` Pallipadi, Venkatesh
@ 2008-01-17  0:18     ` Venki Pallipadi
  1 sibling, 0 replies; 50+ messages in thread
From: Venki Pallipadi @ 2008-01-17  0:18 UTC (permalink / raw)
  To: Mika Penttilä
  Cc: venkatesh.pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, mingo, tglx, hpa, akpm, arjan, jesse.barnes,
	davem, linux-kernel, Suresh Siddha

On Wed, Jan 16, 2008 at 10:14:00AM +0200, Mika Penttilä wrote:
> venkatesh.pallipadi@intel.com kirjoitti:
> >KERNPG_TABLE was a bug in earlier patch. Remove it from pte.
> >pte_val() check is redundant as this routine is called immediately after a
> >ptepage is allocated afresh.
> >
> >Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
> >Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
> >
> >Index: linux-2.6.git/arch/x86/mm/init_64.c
> >===================================================================
> >--- linux-2.6.git.orig/arch/x86/mm/init_64.c	2008-01-15 
> >11:02:23.000000000 -0800
> >+++ linux-2.6.git/arch/x86/mm/init_64.c	2008-01-15 
> >11:06:37.000000000 -0800
> >@@ -541,9 +541,6 @@
> > 		if (address >= end)
> > 			break;
> > 
> >-		if (pte_val(*pte))
> >-			continue;
> >-
> > 		/* Nothing to map. Map the null page */
> > 		if (!(address & (~PAGE_MASK)) &&
> > 		    (address + PAGE_SIZE <= end) &&
> >@@ -561,9 +558,9 @@
> > 		}
> > 
> > 		if (exec)
> >-			entry = _PAGE_NX|_KERNPG_TABLE|_PAGE_GLOBAL|address;
> >+			entry = _PAGE_NX|_PAGE_GLOBAL|address;
> > 		else
> >-			entry = _KERNPG_TABLE|_PAGE_GLOBAL|address;
> >+			entry = _PAGE_GLOBAL|address;
> > 		entry &= __supported_pte_mask;
> > 		set_pte(pte, __pte(entry));
> > 	}
> >
> >  
> 
> Hmm then what's the point of mapping not present 4k pages for valid mem 
> here?
> 

Ingo,

Below incremental patch fixes this pte entry setting correctly. Thanks to
Mika for catching this.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>

Index: linux-2.6.git/arch/x86/mm/init_64.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/init_64.c	2008-01-16 03:38:32.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/init_64.c	2008-01-16 03:51:34.000000000 -0800
@@ -515,9 +515,9 @@
 		}
 
 		if (exec)
-			entry = _PAGE_NX|_PAGE_GLOBAL|address;
+			entry = __PAGE_KERNEL_EXEC | _PAGE_GLOBAL | address;
 		else
-			entry = _PAGE_GLOBAL|address;
+			entry = __PAGE_KERNEL | _PAGE_GLOBAL | address;
 		entry &= __supported_pte_mask;
 		set_pte(pte, __pte(entry));
 	}


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-16 20:33   ` Venki Pallipadi
  2008-01-16 22:01     ` Andi Kleen
@ 2008-01-17 19:12     ` Andreas Herrmann3
  2008-01-17 19:54       ` Andreas Herrmann3
  2008-01-17 20:36       ` Ingo Molnar
  1 sibling, 2 replies; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 19:12 UTC (permalink / raw)
  To: Venki Pallipadi
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem, linux-kernel,
	suresh.b.siddha

[-- Attachment #1: Type: text/plain, Size: 2442 bytes --]

On Wed, Jan 16, 2008 at 12:33:28PM -0800, Venki Pallipadi wrote:
> This ioremap failing seems to be the real problem. This can be due to
> new tracking of ioremaps introduced by PAT patches. We do not allow
> conflicting ioremaps to same region. Probably that is happening
> in both Sound and sata initialization which results in driver init failing.
> 
> Can you please try the debug patch below over latest x86/mm and boot kernel with
> debug boot option and send us the dmesg from the failure. That will give us
> better info about ioremaps.

Attached is the boot.log with x86/mm as of today (v2.6.24-rc8-720-gd294e9e).

For the failed devices I get:

  sata_sil 0000:00:12.0: version 2.3
  ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
  ioremap_nocache: addr c0403000, size 200
  swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
  ACPI: PCI interrupt for device 0000:00:12.0 disabled

and

  Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42
    2007 UTC).
  ACPI: PCI Interrupt 0000:00:14.5[B] -> GSI 17 (level, low) -> IRQ 17
  ioremap_nocache: addr c0403800, size 100
  swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
  AC'97 space ioremap problem
  ACPI: PCI interrupt for device 0000:00:14.5 disabled
  ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5

Grepping for ioremap/iounmap gives:

   <snip>
ioremap: addr 77e72d10, size 6ad8
ioremap: addr 77e79982, size 544
ioremap: addr 77e7afc0, size 40
ioremap: addr c0403104, size fc
ioremap: addr 77e7ade1, size 3
ioremap: addr 77e7af04, size 1
ioremap: addr 77e7985c, size f4
ioremap: addr 77e79950, size 32
ioremap: addr 77e79ec6, size c0
ioremap: addr 77e79f86, size 7a
ioremap: addr 77e7af74, size 48
ioremap_nocache: addr c0400000, size 1000
ioremap_nocache: addr c0401000, size 1000
ioremap_nocache: addr c0402000, size 1000
ioremap_nocache: addr c0100000, size 80
ioremap_nocache: addr c0403000, size 200
ioremap_nocache: addr c0402000, size 1000
ioremap_nocache: addr c0400000, size 1000
ioremap_nocache: addr c0401000, size 1000
ioremap_nocache: addr c0403800, size 100

I guess the conflict for sata is
    ioremap: addr c0403104, size fc
    ioremap_nocache: addr c0403000, size 200

But where does the conflict for the sound card
(ioremap_nocache: addr c0403800, size 100)
come from?

And what can I do about conflicting regions?


Regards,

Andreas

[-- Attachment #2: x86-mm-test-debug.txt --]
[-- Type: text/plain, Size: 39988 bytes --]

  Booting '(hunter) x86/mm-test'

kernel=/tftpboot/aherrma3/hunter-x86-mm-test root=/dev/sda1
console=ttyS0,11520
0 debug
   [Linux-bzImage, setup=0x2a00, size=0x24bd98]
boot
Issuing RESET:
Linux version 2.6.24-rc8-gd294e9ed (root@hunter) (gcc version 4.1.2 (Gentoo
4.1.2 p1.0.2)) #1 SMP Thu Jan 17 18:56:17 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200 debug
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_ioremap(000000000000c000, 00001000) => -000002103394304
early_iounmap(ffffffff82a0c000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_iounmap(ffffffff828f0000, 00010000)
early_ioremap(0000000000000000, 00000400) => -000002105540608
early_iounmap(ffffffff82800000, 00000400)
early_ioremap(00000000000e0000, 00020000) => -000002104623104
early_iounmap(ffffffff828e0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002104526736
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff828f7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD      XSDT    6040000  LTP        0)
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002105042852
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff8287985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002105042852
early_iounmap(ffffffff8287985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002105036864
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff8287����, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002105042608
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82879950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002105042558
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82879982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002105041210
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82879ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002105041018
ACPI: APIC 77E79F86, 007A (r1 PTLTD      APIC    6040000  LTP        0)
early_iounmap(ffffffff82879f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002105041210
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_iounmap(ffffffff82a79ec6, 000000c0)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: Node 0 PXM 0 0-a0000
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
SRAT: Node 0 PXM 0 0-80000000
Entering add_active_range(0, 0, 141) 1 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
early_iounmap(ffffffff82a79ec6, 000000c0)
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002103443456
early_iounmap(ffffffff82a00000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002102789120
early_iounmap(ffffffff82a9fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002102460416
early_iounmap(ffffffff82af0000, 00010000)
 [ffffe20000000000-ffffe200001fffff] PMD ->ffff810001600000 on node 0
 [ffffe20000200000-ffffe200003fffff] PMD ->ffff810001a00000 on node 0
 [ffffe20000400000-ffffe200005fffff] PMD ->ffff810001e00000 on node 0
 [ffffe20000600000-ffffe200007fffff] PMD ->ffff810002200000 on node 0
 [ffffe20000800000-ffffe200009fffff] PMD ->ffff810002600000 on node 0
 [ffffe20000a00000-ffffe20000bfffff] PMD ->ffff810002e00000 on node 0
 [ffffe20000c00000-ffffe20000dfffff] PMD ->ffff810003200000 on node 0
 [ffffe20000e00000-ffffe20000ffffff] PMD ->ffff810003600000 on node 0
 [ffffe20001000000-ffffe200011fffff] PMD ->ffff810003a00000 on node 0
 [ffffe20001200000-ffffe200013fffff] PMD ->ffff810003e00000 on node 0
 [ffffe20001400000-ffffe200015fffff] PMD ->ffff810004200000 on node 0
 [ffffe20001600000-ffffe200017fffff] PMD ->ffff810004600000 on node 0
 [ffffe20001800000-ffffe200019fffff] PMD ->ffff810004a00000 on node 0
 [ffffe20001a00000-ffffe20001bfffff] PMD ->ffff810004e00000 on node 0
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
On node 0 totalpages: 491005
  DMA zone: 56 pages used for memmap
  DMA zone: 10 pages reserved
  DMA zone: 3915 pages, LIFO batch:0
  DMA32 zone: 6658 pages used for memmap
  DMA32 zone: 480366 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
ACPI: PM-Timer IO Port: 0x8008
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: Local APIC address 0xfee00000
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30368 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484281
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200 debug
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
time.c: Detected 2288.280 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928912k/1964480k available (3074k kernel code, 35108k reserved, 1737k
data, 308k init)
Calibrating delay using timer specific routine.. 4581.18 BogoMIPS
(lpj=9162360)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x1040600010406
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
ioremap: addr 77e72d10, size 6ad8
ioremap: addr 77e79982, size 544
Using local APIC timer interrupts.
APIC timer calibration result 12436289
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.72 BogoMIPS
(lpj=9153452)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.71 BogoMIPS
(lpj=9153434)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
x86 PAT enabled: cpu 2, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#2]: passed.
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.74 BogoMIPS
(lpj=9153491)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
x86 PAT enabled: cpu 3, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#3]: passed.
Brought up 4 CPUs
CPU0 attaching sched-domain:
 domain 0: span f
  groups: 1 2 4 8
  domain 1: span f
   groups: f
CPU1 attaching sched-domain:
 domain 0: span f
  groups: 2 4 8 1
  domain 1: span f
   groups: f
CPU2 attaching sched-domain:
 domain 0: span f
  groups: 4 8 1 2
  domain 1: span f
   groups: f
CPU3 attaching sched-domain:
 domain 0: span f
  groups: 8 1 2 4
  domain 1: span f
   groups: f
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ioremap: addr 77e7afc0, size 40
ACPI: EC: Look up EC in DSDT
ioremap: addr c0403104, size fc
ioremap: addr 77e7ade1, size 3
ioremap: addr 77e7af04, size 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
ioremap: addr 77e7985c, size f4
ioremap: addr 77e79950, size 32
ioremap: addr 77e79ec6, size c0
ioremap: addr 77e79f86, size 7a
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
ioremap: addr 77e7af74, size 48
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
Time: tsc clocksource has been installed.
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
ioremap_nocache: addr c0400000, size 1000
ioremap_nocache: addr c0401000, size 1000
ioremap_nocache: addr c0402000, size 1000
Boot video device is 0000:01:05.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
ioremap_nocache: addr c0100000, size 80
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
Linux version 2.6.24-rc8-gd294e9ed (root@hunter) (gcc version 4.1.2 (Gentoo
4.1.2 p1.0.2)) #1 SMP Thu Jan 17 18:56:17 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200 debug
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_ioremap(000000000000c000, 00001000) => -000002103394304
early_iounmap(ffffffff82a0c000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_iounmap(ffffffff828f0000, 00010000)
early_ioremap(0000000000000000, 00000400) => -000002105540608
early_iounmap(ffffffff82800000, 00000400)
early_ioremap(00000000000e0000, 00020000) => -000002104623104
early_iounmap(ffffffff828e0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002104526736
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff828f7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD      XSDT    6040000  LTP        0)
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002105042852
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff8287985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002105042852
early_iounmap(ffffffff8287985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002105036864
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff8287afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002105042608
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82879950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002105042558
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82879982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002105041210
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82879ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002105041018
ACPI: APIC 77E79F86, 007A (r1 PTLTD      APIC    6040000  LTP        0)
early_iounmap(ffffffff82879f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002105041210
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_iounmap(ffffffff82a79ec6, 000000c0)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: Node 0 PXM 0 0-a0000
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
SRAT: Node 0 PXM 0 0-80000000
Entering add_active_range(0, 0, 141) 1 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
early_iounmap(ffffffff82a79ec6, 000000c0)
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002103443456
early_iounmap(ffffffff82a00000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002102789120
early_iounmap(ffffffff82a9fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002102460416
early_iounmap(ffffffff82af0000, 00010000)
 [ffffe20000000000-ffffe200001fffff] PMD ->ffff810001600000 on node 0
 [ffffe20000200000-ffffe200003fffff] PMD ->ffff810001a00000 on node 0
 [ffffe20000400000-ffffe200005fffff] PMD ->ffff810001e00000 on node 0
 [ffffe20000600000-ffffe200007fffff] PMD ->ffff810002200000 on node 0
 [ffffe20000800000-ffffe200009fffff] PMD ->ffff810002600000 on node 0
 [ffffe20000a00000-ffffe20000bfffff] PMD ->ffff810002e00000 on node 0
 [ffffe20000c00000-ffffe20000dfffff] PMD ->ffff810003200000 on node 0
 [ffffe20000e00000-ffffe20000ffffff] PMD ->ffff810003600000 on node 0
 [ffffe20001000000-ffffe200011fffff] PMD ->ffff810003a00000 on node 0
 [ffffe20001200000-ffffe200013fffff] PMD ->ffff810003e00000 on node 0
 [ffffe20001400000-ffffe200015fffff] PMD ->ffff810004200000 on node 0
 [ffffe20001600000-ffffe200017fffff] PMD ->ffff810004600000 on node 0
 [ffffe20001800000-ffffe200019fffff] PMD ->ffff810004a00000 on node 0
 [ffffe20001a00000-ffffe20001bfffff] PMD ->ffff810004e00000 on node 0
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
On node 0 totalpages: 491005
  DMA zone: 56 pages used for memmap
  DMA zone: 10 pages reserved
  DMA zone: 3915 pages, LIFO batch:0
  DMA32 zone: 6658 pages used for memmap
  DMA32 zone: 480366 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
ACPI: PM-Timer IO Port: 0x8008
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: Local APIC address 0xfee00000
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30368 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484281
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200 debug
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
time.c: Detected 2288.280 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928912k/1964480k available (3074k kernel code, 35108k reserved, 1737k
data, 308k init)
Calibrating delay using timer specific routine.. 4581.18 BogoMIPS
(lpj=9162360)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 2�6
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x1040600010406
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
ioremap: addr 77e72d10, size 6ad8
ioremap: addr 77e79982, size 544
Using local APIC timer interrupts.
APIC timer calibration result 12436289
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.72 BogoMIPS
(lpj=9153452)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.71 BogoMIPS
(lpj=9153434)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
x86 PAT enabled: cpu 2, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#2]: passed.
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.74 BogoMIPS
(lpj=9153491)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
x86 PAT enabled: cpu 3, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#3]: passed.
Brought up 4 CPUs
CPU0 attaching sched-domain:
 domain 0: span f
  groups: 1 2 4 8
  domain 1: span f
   groups: f
CPU1 attaching sched-domain:
 domain 0: span f
  groups: 2 4 8 1
  domain 1: span f
   groups: f
CPU2 attaching sched-domain:
 domain 0: span f
  groups: 4 8 1 2
  domain 1: span f
   groups: f
CPU3 attaching sched-domain:
 domain 0: span f
  groups: 8 1 2 4
  domain 1: span f
   groups: f
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ioremap: addr 77e7afc0, size 40
ACPI: EC: Look up EC in DSDT
ioremap: addr c0403104, size fc
ioremap: addr 77e7ade1, size 3
ioremap: addr 77e7af04, size 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
ioremap: addr 77e7985c, size f4
ioremap: addr 77e79950, size 32
ioremap: addr 77e79ec6, size c0
ioremap: addr 77e79f86, size 7a
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
ioremap: addr 77e7af74, size 48
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
Time: tsc clocksource has been installed.
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
ioremap_nocache: addr c0400000, size 1000
ioremap_nocache: addr c0401000, size 1000
ioremap_nocache: addr c0402000, size 1000
Boot video device is 0000:01:05.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
ioremap_nocache: addr c0100000, size 80
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
netconsole: network logging started
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ATIIXP: IDE controller (0x1002:0x4376 rev 0x80) at  PCI slot 0000:00:14.1
ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16
ATIIXP: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1060-0x1067, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0x1068-0x106f, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
Probing IDE interface ide1...
hdc: SONY DVD-ROM DDU1615, ATAPI CD/DVD-ROM drive
hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hdc: UDMA/33 mode selected
ide1 at 0x170-0x177,0x376 on irq 15
Probing IDE interface ide0...
hdc: ATAPI 40X DVD-ROM drive, 254kB Cache
Uniform CD-ROM driver Revision: 3.20
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
sata_sil 0000:00:12.0: version 2.3
ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
ioremap_nocache: addr c0403000, size 200
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
ACPI: PCI interrupt for device 0000:00:12.0 disabled
sata_sil: probe of 0000:00:12.0 failed with error -12
Fusion MPT base driver 3.04.06
Copyright (c) 1999-2007 LSI Corporation
Fusion MPT SAS Host driver 3.04.06
ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0402000, size 1000
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:13.2: irq 19, io mem 0xc0402000
ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0400000, size 1000
ohci_hcd 0000:00:13.0: OHCI Host Controller
ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:13.0: irq 19, io mem 0xc0400000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
ACPI: PCI Interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0401000, size 1000
ohci_hcd 0000:00:13.1: OHCI Host Controller
ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:13.1: irq 19, io mem 0xc0401000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 4 ports detected
USB Universal Host Controller Interface driver v3.0
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
piix4_smbus 0000:00:14.0: Found 0000:00:14.0 device
piix4_smbus 0000:00:14.0: Using Interrupt SMI# for SMBus.
piix4_smbus 0000:00:14.0: SMBREV = 0x0
piix4_smbus 0000:00:14.0: SMBA = 0x1050
i2c-adapter i2c-0: adapter [SMBus PIIX4 adapter at 1050] registered
i2c-dev: adapter [SMBus PIIX4 adapter at 1050] registered as minor 0
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42
2007 UTC).
ACPI: PCI Interrupt 0000:00:14.5[B] -> GSI 17 (level, low) -> IRQ 17
ioremap_nocache: addr c0403800, size 100
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
AC'97 space ioremap problem
ACPI: PCI interrupt for device 0000:00:14.5 disabled
ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5
ALSA device list:
  No soundcards found.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
powernow-k8: Found 1 AMD Phenom(tm) 9600 Quad-Core Processor processors (4 cpu
cores) (version 2.20.00)
powernow-k8:    0 : fid 0x0 did 0x0 (2300 MHz)
powernow-k8:    1 : fid 0x0 did 0x0 (1150 MHz)
VFS: Cannot open root device "sda1" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available
partitions:
1600    4194302 hdc driver: ide-cdrom
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)



^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 19:12     ` Andreas Herrmann3
@ 2008-01-17 19:54       ` Andreas Herrmann3
  2008-01-17 20:36       ` Ingo Molnar
  1 sibling, 0 replies; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 19:54 UTC (permalink / raw)
  To: Venki Pallipadi
  Cc: ak, ebiederm, rdreier, torvalds, gregkh, airlied, davej, mingo,
	tglx, hpa, akpm, arjan, jesse.barnes, davem, linux-kernel,
	suresh.b.siddha

On Thu, Jan 17, 2008 at 08:12:11PM +0100, Andreas Herrmann3 wrote:
> On Wed, Jan 16, 2008 at 12:33:28PM -0800, Venki Pallipadi wrote:

  <snip>

> 
> I guess the conflict for sata is
>     ioremap: addr c0403104, size fc
>     ioremap_nocache: addr c0403000, size 200
> 
> But where does the conflict for the sound card
> (ioremap_nocache: addr c0403800, size 100)
> come from?

Sorry, forget this dumb question. Its the
same page as above.


Andreas





^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 20:36       ` Ingo Molnar
@ 2008-01-17 20:33         ` H. Peter Anvin
  2008-01-17 20:56           ` Ingo Molnar
  2008-01-17 20:57           ` Linus Torvalds
  2008-01-17 20:44         ` Ingo Molnar
  2008-01-17 21:03         ` Andreas Herrmann3
  2 siblings, 2 replies; 50+ messages in thread
From: H. Peter Anvin @ 2008-01-17 20:33 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Andreas Herrmann3, Venki Pallipadi, ak, ebiederm, rdreier,
	torvalds, gregkh, airlied, davej, tglx, akpm, arjan,
	jesse.barnes, davem, linux-kernel, suresh.b.siddha

Ingo Molnar wrote:
> * Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:
> 
>> For the failed devices I get:
>>
>>   sata_sil 0000:00:12.0: version 2.3
>>   ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
>>   ioremap_nocache: addr c0403000, size 200
>>   swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
>>   ACPI: PCI interrupt for device 0000:00:12.0 disabled
> 
> hm, is the problem that the two devices share the same physical page, 
> and thus get an overlapping area?
> 
> as an intermediate fix, how about following the attribute of the already 
> existing mapping, instead of rejecting the ioremap due to the conflict? 
> I.e. something like below?

The correct behaviour probably would be to go with the most restrictive 
caching behaviour, i.e. uncached in this case.

	-hpa

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 19:12     ` Andreas Herrmann3
  2008-01-17 19:54       ` Andreas Herrmann3
@ 2008-01-17 20:36       ` Ingo Molnar
  2008-01-17 20:33         ` H. Peter Anvin
                           ` (2 more replies)
  1 sibling, 3 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 20:36 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha


* Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:

> For the failed devices I get:
> 
>   sata_sil 0000:00:12.0: version 2.3
>   ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
>   ioremap_nocache: addr c0403000, size 200
>   swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
>   ACPI: PCI interrupt for device 0000:00:12.0 disabled

hm, is the problem that the two devices share the same physical page, 
and thus get an overlapping area?

as an intermediate fix, how about following the attribute of the already 
existing mapping, instead of rejecting the ioremap due to the conflict? 
I.e. something like below?

	Ingo

---
 arch/x86/mm/pat.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: linux-x86.q/arch/x86/mm/pat.c
===================================================================
--- linux-x86.q.orig/arch/x86/mm/pat.c
+++ linux-x86.q/arch/x86/mm/pat.c
@@ -174,7 +174,12 @@ int reserve_mattr(u64 start, u64 end, un
 					current->comm, current->pid,
 					start, end,
 					cattr_name(attr), cattr_name(ml->attr));
-				err = -EBUSY;
+				/*
+				 * Force the already existing attribute:
+				 */
+				ma->attr = ml->attr;
+				if (*fattr)
+					*fatt = ml->attr;
 				break;
 			}
 		} else if (ml->start >= end) {

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 20:36       ` Ingo Molnar
  2008-01-17 20:33         ` H. Peter Anvin
@ 2008-01-17 20:44         ` Ingo Molnar
  2008-01-17 21:03         ` Andreas Herrmann3
  2 siblings, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 20:44 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha


* Ingo Molnar <mingo@elte.hu> wrote:

> I.e. something like below?

or the one below. (it even builds)

	Ingo

---
 arch/x86/mm/pat.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: linux-x86.q/arch/x86/mm/pat.c
===================================================================
--- linux-x86.q.orig/arch/x86/mm/pat.c
+++ linux-x86.q/arch/x86/mm/pat.c
@@ -174,7 +174,12 @@ int reserve_mattr(u64 start, u64 end, un
 					current->comm, current->pid,
 					start, end,
 					cattr_name(attr), cattr_name(ml->attr));
-				err = -EBUSY;
+				/*
+				 * Force the already existing attribute:
+				 */
+				ma->attr = ml->attr;
+				if (*fattr)
+					*fattr = ml->attr;
 				break;
 			}
 		} else if (ml->start >= end) {

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 20:33         ` H. Peter Anvin
@ 2008-01-17 20:56           ` Ingo Molnar
  2008-01-17 20:57           ` Linus Torvalds
  1 sibling, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 20:56 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Andreas Herrmann3, Venki Pallipadi, ak, ebiederm, rdreier,
	torvalds, gregkh, airlied, davej, tglx, akpm, arjan,
	jesse.barnes, davem, linux-kernel, suresh.b.siddha


* H. Peter Anvin <hpa@zytor.com> wrote:

>> as an intermediate fix, how about following the attribute of the 
>> already existing mapping, instead of rejecting the ioremap due to the 
>> conflict? I.e. something like below?
>
> The correct behaviour probably would be to go with the most 
> restrictive caching behaviour, i.e. uncached in this case.

yeah. Or, to be on the safest side, forcing UC in this case. We'll have 
a warning message anyway, so it wont go unnoticed - but we wont break 
drivers.

	Ingo

--------->
Subject: x86: patches/pat-conflict-fixup.patch
From: Ingo Molnar <mingo@elte.hu>

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 arch/x86/mm/pat.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: linux-x86.q/arch/x86/mm/pat.c
===================================================================
--- linux-x86.q.orig/arch/x86/mm/pat.c
+++ linux-x86.q/arch/x86/mm/pat.c
@@ -174,7 +174,12 @@ int reserve_mattr(u64 start, u64 end, un
 					current->comm, current->pid,
 					start, end,
 					cattr_name(attr), cattr_name(ml->attr));
-				err = -EBUSY;
+				/*
+				 * Force UC on a conflict:
+				 */
+				ma->attr = _PAGE_UC;
+				if (*fattr)
+					*fattr = _PAGE_UC;
 				break;
 			}
 		} else if (ml->start >= end) {

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 20:33         ` H. Peter Anvin
  2008-01-17 20:56           ` Ingo Molnar
@ 2008-01-17 20:57           ` Linus Torvalds
  1 sibling, 0 replies; 50+ messages in thread
From: Linus Torvalds @ 2008-01-17 20:57 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Ingo Molnar, Andreas Herrmann3, Venki Pallipadi, ak, ebiederm,
	rdreier, gregkh, airlied, davej, tglx, akpm, arjan, jesse.barnes,
	davem, linux-kernel, suresh.b.siddha



On Thu, 17 Jan 2008, H. Peter Anvin wrote:
> > >   swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
> > >   ACPI: PCI interrupt for device 0000:00:12.0 disabled
> 
> The correct behaviour probably would be to go with the most restrictive
> caching behaviour, i.e. uncached in this case.

Well, the sad part is that in this case, uncached is the SAME THING as 
default. 

So it's not like there is any actual real conflict, other than in a PAT 
confusion thing.

			Linus

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 20:36       ` Ingo Molnar
  2008-01-17 20:33         ` H. Peter Anvin
  2008-01-17 20:44         ` Ingo Molnar
@ 2008-01-17 21:03         ` Andreas Herrmann3
  2008-01-17 21:13           ` Ingo Molnar
  2 siblings, 1 reply; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 21:03 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha

[-- Attachment #1: Type: text/plain, Size: 3316 bytes --]

On Thu, Jan 17, 2008 at 09:36:00PM +0100, Ingo Molnar wrote:
> 
> * Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:
> 
> > For the failed devices I get:
> > 
> >   sata_sil 0000:00:12.0: version 2.3
> >   ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
> >   ioremap_nocache: addr c0403000, size 200
> >   swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
> >   ACPI: PCI interrupt for device 0000:00:12.0 disabled
> 
> hm, is the problem that the two devices share the same physical page, 
> and thus get an overlapping area?

Yes.

Meanwhile I have figured out that it is some ACPI stuff that maps the page cached.
I've changed the ioremap's in drivers/acpi/osl.c to ioremap_nocache.
See attached patch.

Now the machine boots without conflicts.

  ACPI: EC: Look up EC in DSDT
  ioremap_nocache: addr c0403104, size fc
  ioremap_nocache: addr 77e7ade1, size 3
  ioremap_nocache: addr 77e7af04, size 1

...

  sata_sil 0000:00:12.0: version 2.3
  ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
  ioremap_nocache: addr c0403000, size 200
  scsi0 : sata_sil
  scsi1 : sata_sil
  ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
  ata2: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc04030c0 irq 22
  ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)

  ...

dmesg-output is attached.


> as an intermediate fix, how about following the attribute of the already 
> existing mapping, instead of rejecting the ioremap due to the conflict? 
> I.e. something like below?

I guess it is not a good idea to use an existing cachable attribute if the
IO-region is non-prefetchable. And in this example there are 3 devices
which are potentially affected:

  00:12.0 IDE interface: ATI Technologies Inc 4379 Serial ATA Controller (rev 80) (
     ...
        Memory at c0403000 (32-bit, non-prefetchable) [size=512]
     ...

  00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 82)
     ...
          Memory at c0403400 (32-bit, non-prefetchable) [size=1K]
     ...

  00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 80)
     ...
          Memory at c0403800 (32-bit, non-prefetchable) [size=256]
     ...

BTW, is there a need for osl.c to map all regions as cached?


Regards,

Andreas

---
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 1f1ec4a..175e6a4 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -221,7 +221,7 @@ void __iomem *acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
 		/*
 		* ioremap checks to ensure this is in reserved space
 		*/
-		return ioremap((unsigned long)phys, size);
+		return ioremap_nocache((unsigned long)phys, size);
 	else
 		return __acpi_map_table((unsigned long)phys, size);
 }
@@ -437,7 +437,7 @@ acpi_os_read_memory(acpi_physical_address phys_addr, u32 * value, u32 width)
 	u32 dummy;
 	void __iomem *virt_addr;
 
-	virt_addr = ioremap(phys_addr, width);
+	virt_addr = ioremap_nocache(phys_addr, width);
 	if (!value)
 		value = &dummy;
 
@@ -465,7 +465,7 @@ acpi_os_write_memory(acpi_physical_address phys_addr, u32 value, u32 width)
 {
 	void __iomem *virt_addr;
 
-	virt_addr = ioremap(phys_addr, width);
+	virt_addr = ioremap_nocache(phys_addr, width);
 
 	switch (width) {
 	case 8:

[-- Attachment #2: dmesg.log --]
[-- Type: text/plain, Size: 23108 bytes --]

Linux version 2.6.24-rc8-gd294e9ed-dirty (root@hunter) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #3 SMP Thu Jan 17 21:43:08 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200 debug
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_ioremap(000000000000c000, 00001000) => -000002103394304
early_iounmap(ffffffff82a0c000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_iounmap(ffffffff828f0000, 00010000)
early_ioremap(0000000000000000, 00000400) => -000002105540608
early_iounmap(ffffffff82800000, 00000400)
early_ioremap(00000000000e0000, 00020000) => -000002104623104
early_iounmap(ffffffff828e0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002104526736
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff828f7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD  	 XSDT    6040000  LTP        0)
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002105042852
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff8287985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002105042852
early_iounmap(ffffffff8287985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002105036864
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff8287afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002105042608
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82879950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002105042558
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82879982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002105041210
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82879ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002105041018
ACPI: APIC 77E79F86, 007A (r1 PTLTD  	 APIC    6040000  LTP        0)
early_iounmap(ffffffff82879f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002105041210
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_iounmap(ffffffff82a79ec6, 000000c0)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: Node 0 PXM 0 0-a0000
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
SRAT: Node 0 PXM 0 0-80000000
Entering add_active_range(0, 0, 141) 1 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
early_iounmap(ffffffff82a79ec6, 000000c0)
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002103443456
early_iounmap(ffffffff82a00000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002102789120
early_iounmap(ffffffff82a9fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002102460416
early_iounmap(ffffffff82af0000, 00010000)
 [ffffe20000000000-ffffe200001fffff] PMD ->ffff810001600000 on node 0
 [ffffe20000200000-ffffe200003fffff] PMD ->ffff810001a00000 on node 0
 [ffffe20000400000-ffffe200005fffff] PMD ->ffff810001e00000 on node 0
 [ffffe20000600000-ffffe200007fffff] PMD ->ffff810002200000 on node 0
 [ffffe20000800000-ffffe200009fffff] PMD ->ffff810002600000 on node 0
 [ffffe20000a00000-ffffe20000bfffff] PMD ->ffff810002e00000 on node 0
 [ffffe20000c00000-ffffe20000dfffff] PMD ->ffff810003200000 on node 0
 [ffffe20000e00000-ffffe20000ffffff] PMD ->ffff810003600000 on node 0
 [ffffe20001000000-ffffe200011fffff] PMD ->ffff810003a00000 on node 0
 [ffffe20001200000-ffffe200013fffff] PMD ->ffff810003e00000 on node 0
 [ffffe20001400000-ffffe200015fffff] PMD ->ffff810004200000 on node 0
 [ffffe20001600000-ffffe200017fffff] PMD ->ffff810004600000 on node 0
 [ffffe20001800000-ffffe200019fffff] PMD ->ffff810004a00000 on node 0
 [ffffe20001a00000-ffffe20001bfffff] PMD ->ffff810004e00000 on node 0
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
On node 0 totalpages: 491005
  DMA zone: 56 pages used for memmap
  DMA zone: 10 pages reserved
  DMA zone: 3915 pages, LIFO batch:0
  DMA32 zone: 6658 pages used for memmap
  DMA32 zone: 480366 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
ACPI: PM-Timer IO Port: 0x8008
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: Local APIC address 0xfee00000
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30368 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484281
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200 debug
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
time.c: Detected 2288.186 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928912k/1964480k available (3074k kernel code, 35108k reserved, 1737k data, 308k init)
Calibrating delay using timer specific routine.. 4581.56 BogoMIPS (lpj=9163126)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x1040600010406
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
ioremap_nocache: addr 77e72d10, size 6ad8
ioremap_nocache: addr 77e79982, size 544
Using local APIC timer interrupts.
APIC timer calibration result 12435782
Detected 12.435 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.58 BogoMIPS (lpj=9153166)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.56 BogoMIPS (lpj=9153137)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
x86 PAT enabled: cpu 2, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#2]: passed.
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.54 BogoMIPS (lpj=9153098)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
x86 PAT enabled: cpu 3, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#3]: passed.
Brought up 4 CPUs
CPU0 attaching sched-domain:
 domain 0: span f
  groups: 1 2 4 8
  domain 1: span f
   groups: f
CPU1 attaching sched-domain:
 domain 0: span f
  groups: 2 4 8 1
  domain 1: span f
   groups: f
CPU2 attaching sched-domain:
 domain 0: span f
  groups: 4 8 1 2
  domain 1: span f
   groups: f
CPU3 attaching sched-domain:
 domain 0: span f
  groups: 8 1 2 4
  domain 1: span f
   groups: f
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ioremap_nocache: addr 77e7afc0, size 40
ACPI: EC: Look up EC in DSDT
ioremap_nocache: addr c0403104, size fc
ioremap_nocache: addr 77e7ade1, size 3
ioremap_nocache: addr 77e7af04, size 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
ioremap_nocache: addr 77e7985c, size f4
ioremap_nocache: addr 77e79950, size 32
ioremap_nocache: addr 77e79ec6, size c0
ioremap_nocache: addr 77e79f86, size 7a
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
ioremap_nocache: addr 77e7af74, size 48
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
Time: tsc clocksource has been installed.
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
ioremap_nocache: addr c0400000, size 1000
iounmap: addr ffffc200008aa000 (high_memory: ffff810077e70000
iounmap: addr ffffc200008aa000
ioremap_nocache: addr c0401000, size 1000
iounmap: addr ffffc200008aa000 (high_memory: ffff810077e70000
iounmap: addr ffffc200008aa000
ioremap_nocache: addr c0402000, size 1000
iounmap: addr ffffc200008aa000 (high_memory: ffff810077e70000
iounmap: addr ffffc200008aa000
Boot video device is 0000:01:05.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
ioremap_nocache: addr c0100000, size 80
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
netconsole: network logging started
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ATIIXP: IDE controller (0x1002:0x4376 rev 0x80) at  PCI slot 0000:00:14.1
ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16
ATIIXP: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1060-0x1067, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0x1068-0x106f, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
Probing IDE interface ide1...
hdc: SONY DVD-ROM DDU1615, ATAPI CD/DVD-ROM drive
hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hdc: UDMA/33 mode selected
ide1 at 0x170-0x177,0x376 on irq 15
Probing IDE interface ide0...
hdc: ATAPI 40X DVD-ROM drive, 254kB Cache
Uniform CD-ROM driver Revision: 3.20
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
sata_sil 0000:00:12.0: version 2.3
ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
ioremap_nocache: addr c0403000, size 200
scsi0 : sata_sil
scsi1 : sata_sil
ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
ata2: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc04030c0 irq 22
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ATA-7: ST3120811AS, 3.AAE, max UDMA/133
ata1.00: 234441648 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/100
ata2: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      ST3120811AS      3.AA PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3 < sda5 sda6 >
sd 0:0:0:0: [sda] Attached SCSI disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
Fusion MPT base driver 3.04.06
Copyright (c) 1999-2007 LSI Corporation
Fusion MPT SAS Host driver 3.04.06
ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0402000, size 1000
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:13.2: irq 19, io mem 0xc0402000
ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0400000, size 1000
ohci_hcd 0000:00:13.0: OHCI Host Controller
ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:13.0: irq 19, io mem 0xc0400000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
ACPI: PCI Interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0401000, size 1000
ohci_hcd 0000:00:13.1: OHCI Host Controller
ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:13.1: irq 19, io mem 0xc0401000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 4 ports detected
USB Universal Host Controller Interface driver v3.0
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
piix4_smbus 0000:00:14.0: Found 0000:00:14.0 device
piix4_smbus 0000:00:14.0: Using Interrupt SMI# for SMBus.
piix4_smbus 0000:00:14.0: SMBREV = 0x0
piix4_smbus 0000:00:14.0: SMBA = 0x1050
i2c-adapter i2c-0: adapter [SMBus PIIX4 adapter at 1050] registered
i2c-dev: adapter [SMBus PIIX4 adapter at 1050] registered as minor 0
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
ACPI: PCI Interrupt 0000:00:14.5[B] -> GSI 17 (level, low) -> IRQ 17
ioremap_nocache: addr c0403800, size 100
ALSA device list:
  #0: ATI IXP rev 80 with ALC655 at 0xc0403800, irq 17
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
powernow-k8: Found 1 AMD Phenom(tm) 9600 Quad-Core Processor processors (4 cpu cores) (version 2.20.00)
powernow-k8:    0 : fid 0x0 did 0x0 (2300 MHz)
powernow-k8:    1 : fid 0x0 did 0x0 (1150 MHz)
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 308k freed
EXT3 FS on sda1, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 7823612k swap on /dev/sda6.  Priority:-1 extents:1 across:7823612k
eth0:  setting full-duplex.
eth0: no IPv6 routers present

^ permalink raw reply related	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:03         ` Andreas Herrmann3
@ 2008-01-17 21:13           ` Ingo Molnar
  2008-01-17 21:22             ` Ingo Molnar
                               ` (2 more replies)
  0 siblings, 3 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 21:13 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha


* Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:

> Yes.
> 
> Meanwhile I have figured out that it is some ACPI stuff that maps the 
> page cached. I've changed the ioremap's in drivers/acpi/osl.c to 
> ioremap_nocache. See attached patch.
> 
> Now the machine boots without conflicts.

ah, nice!

but in general we must be robust enough in this case and just degrade 
any overlapping page to UC (and emit a warning perhaps) - instead of 
failing the ioremap and thus failing the driver (and the bootup).

Does my third patch (which falls back to UC in case of attribute 
conflicts, also attached below) instead of your ioremap_nocache() patch 
solve your bootup problem too?

while ACPI should not hurt too much from using UC mappings, we should 
still solve this intelligently and only use UC when needed. (Sane system 
makers with a sane layout of IO areas and BIOS areas should not be 
punished with UC overhead.)

> > as an intermediate fix, how about following the attribute of the 
> > already existing mapping, instead of rejecting the ioremap due to 
> > the conflict? I.e. something like below?
> 
> I guess it is not a good idea to use an existing cachable attribute if 
> the IO-region is non-prefetchable. And in this example there are 3 
> devices which are potentially affected:
> 
>   00:12.0 IDE interface: ATI Technologies Inc 4379 Serial ATA Controller (rev 80) (
>      ...
>         Memory at c0403000 (32-bit, non-prefetchable) [size=512]
>      ...
> 
>   00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 82)
>      ...
>           Memory at c0403400 (32-bit, non-prefetchable) [size=1K]
>      ...
> 
>   00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 80)
>      ...
>           Memory at c0403800 (32-bit, non-prefetchable) [size=256]
>      ...
> 
> BTW, is there a need for osl.c to map all regions as cached?

no, there should be no such need. There can be "mapping leaks", in that 
the mapped object is not unmapped. There's detection code in today's 
x86.git that should report something like this if it occurs:

  Debug warning: early ioremap leak of 1 areas detected.
  please boot with early_ioremap_debug and report the dmesg.
  ------------[ cut here ]------------
  WARNING: at arch/x86/mm/ioremap_32.c:346 ()

but i have not seen this message in your boot log. Could you boot with 
early_ioremap_debug and send us the dmesg - i'm curious which ACPI 
tables are actively mapped while those devices are initialized.

	Ingo

-------------->
Subject: x86: patches/pat-conflict-fixup.patch
From: Ingo Molnar <mingo@elte.hu>

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 arch/x86/mm/pat.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: linux-x86.q/arch/x86/mm/pat.c
===================================================================
--- linux-x86.q.orig/arch/x86/mm/pat.c
+++ linux-x86.q/arch/x86/mm/pat.c
@@ -174,7 +174,12 @@ int reserve_mattr(u64 start, u64 end, un
 					current->comm, current->pid,
 					start, end,
 					cattr_name(attr), cattr_name(ml->attr));
-				err = -EBUSY;
+				/*
+				 * Force UC on a conflict:
+				 */
+				ma->attr = _PAGE_UC;
+				if (*fattr)
+					*fattr = _PAGE_UC;
 				break;
 			}
 		} else if (ml->start >= end) {

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:13           ` Ingo Molnar
@ 2008-01-17 21:22             ` Ingo Molnar
  2008-01-17 21:31             ` Siddha, Suresh B
  2008-01-17 21:42             ` Andreas Herrmann3
  2 siblings, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 21:22 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha


* Ingo Molnar <mingo@elte.hu> wrote:

> * Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:
> 
> > Yes.
> > 
> > Meanwhile I have figured out that it is some ACPI stuff that maps the 
> > page cached. I've changed the ioremap's in drivers/acpi/osl.c to 
> > ioremap_nocache. See attached patch.
> > 
> > Now the machine boots without conflicts.
> 
> ah, nice!
> 
> but in general we must be robust enough in this case and just degrade 
> any overlapping page to UC (and emit a warning perhaps) - instead of 
> failing the ioremap and thus failing the driver (and the bootup).

btw., there's a change i did in today's x86.git: _all_ the old BIOS data 
accesses now go through early_ioremap(). This cleaned up the boot code 
quite significantly, as it's much more apparent now when we access a 
BIOS data table. (it also solves the problem when BIOS data pages are in 
reserved areas that we map via UC or dont map at all)

the same happens with all ISA ioremaps as well - no more "low 1MB is 
treated special" exceptions.

[ This also solves the 'EFI puts data pages into really high memory we
  dont have mapped yet' category of problems that BIOS writers are
  apparently busy creating right now ;-) ]

the downside is that old linear-mapped assumptions might now result in 
an early fault - boot with earlyprintk=vga or 
earlyprintk=serial,ttyS0,115200. I fixed most such assumptions already 
and booted an allyesconfig kernel on both 32-bit and 64-bit x86, but a 
few more remain still. I've enhanced the early fault printout code as 
well to make it easier to debug such things, so it should be relatively 
easy to find the rest.

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:13           ` Ingo Molnar
  2008-01-17 21:22             ` Ingo Molnar
@ 2008-01-17 21:31             ` Siddha, Suresh B
  2008-01-17 21:38               ` H. Peter Anvin
                                 ` (2 more replies)
  2008-01-17 21:42             ` Andreas Herrmann3
  2 siblings, 3 replies; 50+ messages in thread
From: Siddha, Suresh B @ 2008-01-17 21:31 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Andreas Herrmann3, Venki Pallipadi, ak, ebiederm, rdreier,
	torvalds, gregkh, airlied, davej, tglx, hpa, akpm, arjan,
	jesse.barnes, davem, linux-kernel, suresh.b.siddha

On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> but in general we must be robust enough in this case and just degrade 
> any overlapping page to UC (and emit a warning perhaps) - instead of 
> failing the ioremap and thus failing the driver (and the bootup).

But then, this will cause an attribute conflicit. Old one was specifying
WB in PAT (ioremap with noflags) and the new ioremap specifies UC.

As Linus mentioned, main problem is to figure out the correct attribute
for ioremap() which doesn't specify the actual attribute to be used.

One mechanism to fix the issue generically (somewhat atleast) is to use
MTRR's and figure out the default MTRR attribute for that physical address
and use it for ioremap().

> no, there should be no such need. There can be "mapping leaks", in that 
> the mapped object is not unmapped. There's detection code in today's 
> x86.git that should report something like this if it occurs:
> 
>   Debug warning: early ioremap leak of 1 areas detected.
>   please boot with early_ioremap_debug and report the dmesg.
>   ------------[ cut here ]------------
>   WARNING: at arch/x86/mm/ioremap_32.c:346 ()
> 
> but i have not seen this message in your boot log. Could you boot with 
> early_ioremap_debug and send us the dmesg - i'm curious which ACPI 
> tables are actively mapped while those devices are initialized.

In this scenario, ACPI is using ioremap() leaving some dangling references.
Venki is looking to fix this code. Getting the attribute for MTRR
for ioremap noflags, might solve some of these issues aswell. Will look into
this.

thanks,
suresh

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:31             ` Siddha, Suresh B
@ 2008-01-17 21:38               ` H. Peter Anvin
  2008-01-24 20:22                 ` Eric W. Biederman
  2008-01-17 21:42               ` Ingo Molnar
  2008-01-18  4:25               ` Andi Kleen
  2 siblings, 1 reply; 50+ messages in thread
From: H. Peter Anvin @ 2008-01-17 21:38 UTC (permalink / raw)
  To: Siddha, Suresh B
  Cc: Ingo Molnar, Andreas Herrmann3, Venki Pallipadi, ak, ebiederm,
	rdreier, torvalds, gregkh, airlied, davej, tglx, akpm, arjan,
	jesse.barnes, davem, linux-kernel

Siddha, Suresh B wrote:
> 
> But then, this will cause an attribute conflicit. Old one was specifying
> WB in PAT (ioremap with noflags) and the new ioremap specifies UC.
> 
> As Linus mentioned, main problem is to figure out the correct attribute
> for ioremap() which doesn't specify the actual attribute to be used.
> 
> One mechanism to fix the issue generically (somewhat atleast) is to use
> MTRR's and figure out the default MTRR attribute for that physical address
> and use it for ioremap().
> 

This is the matrix the CPU uses when combining MTRR and PAT behaviour. 
It probably makes sense to mimic:

    | WB  WT  WC  UC
---+---------------
WB | WB  WT  WC  UC
WT | WT  WT  UC  UC
WC | WC  UC  WC  UC
UC | UC  UC  UC  UC

With the current PAT encoding:

WB = 00
WT = 01
WC = 10
UC = 11

... this is simply a bitwise OR.  This makes sense, since one of the 
bits denies delaying writes (WT, UC), and the other denies delaying 
reads (WC, UC).

	-hpa

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:31             ` Siddha, Suresh B
  2008-01-17 21:38               ` H. Peter Anvin
@ 2008-01-17 21:42               ` Ingo Molnar
  2008-01-17 22:06                 ` Andreas Herrmann3
  2008-01-18  4:25               ` Andi Kleen
  2 siblings, 1 reply; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 21:42 UTC (permalink / raw)
  To: Siddha, Suresh B
  Cc: Andreas Herrmann3, Venki Pallipadi, ak, ebiederm, rdreier,
	torvalds, gregkh, airlied, davej, tglx, hpa, akpm, arjan,
	jesse.barnes, davem, linux-kernel


* Siddha, Suresh B <suresh.b.siddha@intel.com> wrote:

> On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > but in general we must be robust enough in this case and just degrade 
> > any overlapping page to UC (and emit a warning perhaps) - instead of 
> > failing the ioremap and thus failing the driver (and the bootup).
> 
> But then, this will cause an attribute conflicit. Old one was 
> specifying WB in PAT (ioremap with noflags) and the new ioremap 
> specifies UC.

we could fix up all aliases of that page as well and degrade them to UC?

> As Linus mentioned, main problem is to figure out the correct 
> attribute for ioremap() which doesn't specify the actual attribute to 
> be used.

i think the problem is the proximity of some ACPI tables to actual 
device mmio areas - they share the same physical page. The ACPI tables 
will be mapped WB, the device mmio areas will be UC most of the time.

> One mechanism to fix the issue generically (somewhat atleast) is to 
> use MTRR's and figure out the default MTRR attribute for that physical 
> address and use it for ioremap().

how would this solve the problem at hand? I dont think it's possible to 
guarantee that all the BIOS data pages and mmio areas will have 
compatible attributes. BIOS data pages might be in plain RAM that we 
intend to map WB. Or they might be in reserved areas near the mmio 
addresses.

but if we fixed up aliases (only for that single conflicting page), so 
that all mappings are degraded to UC, we'd have uniform behavior all 
across and the least amount of surprise to drivers. Hm?

> > but i have not seen this message in your boot log. Could you boot 
> > with early_ioremap_debug and send us the dmesg - i'm curious which 
> > ACPI tables are actively mapped while those devices are initialized.
> 
> In this scenario, ACPI is using ioremap() leaving some dangling 
> references. Venki is looking to fix this code. Getting the attribute 
> for MTRR for ioremap noflags, might solve some of these issues aswell. 
> Will look into this.

ok. Resolving that would be nice anyway because the ACPI table might be 
in plain RAM which might be reused by the kernel later on, etc. FYI, 
there's also the patch from Yinghai Lu on lkml, for one such dangling 
reference problem in the SRAT table.

	Ingo

---------------->
From: Yinghai Lu <Yinghai.Lu@Sun.COM>
Subject: [PATCH] x86: copy srat table and unmap in acpi_parse_table

[PATCH] x86: copy srat table and unmap in acpi_parse_table


the old acpi_numa_slit_init was saving old address in early stage acpi_slit
and acpi_parse_table can not unmap address that.
the patch copy the slit in the callback,
so we could unmap table in acpi_parse_table instead of outside track it.

need to revert
"
commit d8d28f25f33c6a035cdfb1d421c79293d16e5c58
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Jan 17 15:26:42 2008 +0100

    x86: ACPI: fix mapping leaks

    ioremap_early() is stateful, hence we cannot tolerate mapping leaks.
"

before appling this patch

Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>

Index: linux-2.6/arch/x86/mm/srat_64.c
===================================================================
--- linux-2.6.orig/arch/x86/mm/srat_64.c
+++ linux-2.6/arch/x86/mm/srat_64.c
@@ -23,7 +23,9 @@
 
 int acpi_numa __initdata;
 
-static struct acpi_table_slit *acpi_slit;
+static int slit_copied;
+static u64 slit_locality_count;
+static u8 slit_entry[MAX_NUMNODES * MAX_NUMNODES];
 
 static nodemask_t nodes_parsed __initdata;
 static struct bootnode nodes[MAX_NUMNODES] __initdata;
@@ -130,7 +132,16 @@ void __init acpi_numa_slit_init(struct a
 		printk(KERN_INFO "ACPI: SLIT table looks invalid. Not used.\n");
 		return;
 	}
-	acpi_slit = slit;
+
+	if (slit->locality_count > MAX_NUMNODES)
+		return;
+
+	slit_locality_count = slit->locality_count;
+
+	memcpy(slit_entry, slit->entry,
+	       slit_locality_count * slit_locality_count);
+
+	slit_copied = 1;
 }
 
 /* Callback for Proximity Domain -> LAPIC mapping */
@@ -502,11 +513,11 @@ int __node_distance(int a, int b)
 {
 	int index;
 
-	if (!acpi_slit)
+	if (!slit_copied)
 		return null_slit_node_compare(a, b) ? LOCAL_DISTANCE :
 						      REMOTE_DISTANCE;
-	index = acpi_slit->locality_count * node_to_pxm(a);
-	return acpi_slit->entry[index + node_to_pxm(b)];
+	index = slit_locality_count * node_to_pxm(a);
+	return slit_entry[index + node_to_pxm(b)];
 }
 
 EXPORT_SYMBOL(__node_distance);
Index: linux-2.6/drivers/acpi/tables.c
===================================================================
--- linux-2.6.orig/drivers/acpi/tables.c
+++ linux-2.6/drivers/acpi/tables.c
@@ -260,6 +260,7 @@ int __init acpi_table_parse(char *id, ac
 
 	if (table) {
 		handler(table);
+		acpi_os_unmap_memory(table, table->length);
 		return 0;
 	} else
 		return 1;

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:13           ` Ingo Molnar
  2008-01-17 21:22             ` Ingo Molnar
  2008-01-17 21:31             ` Siddha, Suresh B
@ 2008-01-17 21:42             ` Andreas Herrmann3
  2008-01-17 22:13               ` Ingo Molnar
                                 ` (2 more replies)
  2 siblings, 3 replies; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 21:42 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha

On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> 
> * Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:
> 
> > Yes.
> > 
> > Meanwhile I have figured out that it is some ACPI stuff that maps the 
> > page cached. I've changed the ioremap's in drivers/acpi/osl.c to 
> > ioremap_nocache. See attached patch.
> > 
> > Now the machine boots without conflicts.
> 
> ah, nice!
> 
> but in general we must be robust enough in this case and just degrade 
> any overlapping page to UC (and emit a warning perhaps) - instead of 
> failing the ioremap and thus failing the driver (and the bootup).
> 
> Does my third patch (which falls back to UC in case of attribute 
> conflicts, also attached below) instead of your ioremap_nocache() patch 
> solve your bootup problem too?

I'll check this asap

> but i have not seen this message in your boot log. Could you boot with 
> early_ioremap_debug and send us the dmesg - i'm curious which ACPI 
> tables are actively mapped while those devices are initialized.

Hmm, early_ioremap_debug exists only in ioremap_32.c
Have to adapt  the 64-bit version first.

But wait the 64-bit code contains already debug output for this.  See
the boot-logs that I have attached to my previous mails.
(Interestingly the code for 64-bit early_io(re/un)map resides not in
ioremap_64.c but in init_64.c.)


Andreas




^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 22:06                 ` Andreas Herrmann3
@ 2008-01-17 22:05                   ` H. Peter Anvin
  2008-01-17 22:15                   ` Ingo Molnar
  1 sibling, 0 replies; 50+ messages in thread
From: H. Peter Anvin @ 2008-01-17 22:05 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Ingo Molnar, Siddha, Suresh B, Venki Pallipadi, ak, ebiederm,
	rdreier, torvalds, gregkh, airlied, davej, tglx, akpm, arjan,
	jesse.barnes, davem, linux-kernel

Andreas Herrmann3 wrote:
> 
> Yes, we must fix all aliases or reject the conflicting mapping.
> But fixing all aliases might not be that easy.
> (I've just seen a panic when using your patch ;-(
> 

Avoiding inconsistent aliases is definitely fundamental to supporting PAT.

	-hpa


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:42               ` Ingo Molnar
@ 2008-01-17 22:06                 ` Andreas Herrmann3
  2008-01-17 22:05                   ` H. Peter Anvin
  2008-01-17 22:15                   ` Ingo Molnar
  0 siblings, 2 replies; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 22:06 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Siddha, Suresh B, Venki Pallipadi, ak, ebiederm, rdreier,
	torvalds, gregkh, airlied, davej, tglx, hpa, akpm, arjan,
	jesse.barnes, davem, linux-kernel

On Thu, Jan 17, 2008 at 10:42:09PM +0100, Ingo Molnar wrote:
> 
> * Siddha, Suresh B <suresh.b.siddha@intel.com> wrote:
> 
> > On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > > but in general we must be robust enough in this case and just degrade 
> > > any overlapping page to UC (and emit a warning perhaps) - instead of 
> > > failing the ioremap and thus failing the driver (and the bootup).
> > 
> > But then, this will cause an attribute conflicit. Old one was 
> > specifying WB in PAT (ioremap with noflags) and the new ioremap 
> > specifies UC.
> 
> we could fix up all aliases of that page as well and degrade them to UC?

Yes, we must fix all aliases or reject the conflicting mapping.
But fixing all aliases might not be that easy.
(I've just seen a panic when using your patch ;-(


Andreas




^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:42             ` Andreas Herrmann3
@ 2008-01-17 22:13               ` Ingo Molnar
  2008-01-17 22:16               ` Andreas Herrmann3
  2008-01-17 22:26               ` Andreas Herrmann3
  2 siblings, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 22:13 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha


* Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:

> > but i have not seen this message in your boot log. Could you boot 
> > with early_ioremap_debug and send us the dmesg - i'm curious which 
> > ACPI tables are actively mapped while those devices are initialized.
> 
> Hmm, early_ioremap_debug exists only in ioremap_32.c Have to adapt the 
> 64-bit version first.
> 
> But wait the 64-bit code contains already debug output for this.  See 
> the boot-logs that I have attached to my previous mails. 
> (Interestingly the code for 64-bit early_io(re/un)map resides not in 
> ioremap_64.c but in init_64.c.)

yeah, it's not unified yet.

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 22:06                 ` Andreas Herrmann3
  2008-01-17 22:05                   ` H. Peter Anvin
@ 2008-01-17 22:15                   ` Ingo Molnar
  2008-01-17 22:52                     ` Andreas Herrmann3
  1 sibling, 1 reply; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 22:15 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Siddha, Suresh B, Venki Pallipadi, ak, ebiederm, rdreier,
	torvalds, gregkh, airlied, davej, tglx, hpa, akpm, arjan,
	jesse.barnes, davem, linux-kernel


* Andreas Herrmann3 <andreas.herrmann3@AMD.COM> wrote:

> On Thu, Jan 17, 2008 at 10:42:09PM +0100, Ingo Molnar wrote:
> > 
> > * Siddha, Suresh B <suresh.b.siddha@intel.com> wrote:
> > 
> > > On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > > > but in general we must be robust enough in this case and just degrade 
> > > > any overlapping page to UC (and emit a warning perhaps) - instead of 
> > > > failing the ioremap and thus failing the driver (and the bootup).
> > > 
> > > But then, this will cause an attribute conflicit. Old one was 
> > > specifying WB in PAT (ioremap with noflags) and the new ioremap 
> > > specifies UC.
> > 
> > we could fix up all aliases of that page as well and degrade them to UC?
> 
> Yes, we must fix all aliases or reject the conflicting mapping. But 
> fixing all aliases might not be that easy. (I've just seen a panic 
> when using your patch ;-(

yes, indeed my patch is bad if you have PAT enabled: conflicting cache 
attributes might be present. I'll go with your patch for now.

should we perhaps do UC by default for early_ioremap() as well? Normally 
those mappings are only temporary - but in case of a leak they might 
hang around in the pagetables and the CPU might stumble upon them. Also, 
should early_iounmap() do a wbinvd() [/clflush()] call as well, to be 
safe?

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:42             ` Andreas Herrmann3
  2008-01-17 22:13               ` Ingo Molnar
@ 2008-01-17 22:16               ` Andreas Herrmann3
  2008-01-17 22:26               ` Andreas Herrmann3
  2 siblings, 0 replies; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 22:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha

On Thu, Jan 17, 2008 at 10:42:28PM +0100, Andreas Herrmann3 wrote:
> On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > 
> > * Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:
> > 
> > > Yes.
> > > 
> > > Meanwhile I have figured out that it is some ACPI stuff that maps the 
> > > page cached. I've changed the ioremap's in drivers/acpi/osl.c to 
> > > ioremap_nocache. See attached patch.
> > > 
> > > Now the machine boots without conflicts.
> > 
> > ah, nice!
> > 
> > but in general we must be robust enough in this case and just degrade 
> > any overlapping page to UC (and emit a warning perhaps) - instead of 
> > failing the ioremap and thus failing the driver (and the bootup).
> > 
> > Does my third patch (which falls back to UC in case of attribute 
> > conflicts, also attached below) instead of your ioremap_nocache() patch 
> > solve your bootup problem too?
> 
> I'll check this asap

Ok, here is the result:

sata_sil 0000:00:12.0: version 2.3
ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
ioremap_nocache: addr c0403000, size 200
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP: 
 [<ffffffff8102905d>] ? reserve_mat
1a5/0x221
PGD 0 
Oops: 0000 [1] SMP 
CPU 3 
Modules linked in:
Pid: 1, comm: swapper Not tainted 2.6.24-rc8-gd294e9ed-dirty #1
RIP: 0010:[<ffffffff8102905d>]  [<ffffffff8102905d>] ? reserve_mattr+0x1a5/0x221
RSP: 0018:ffff810077581c60  EFLAGS: 00010282
RAX: 000000000000004e RBX: ffff8100775a7a00 RCX: 0000000000004c12
RDX: 000000000000a9a9 RSI: 0000000000000018 RDI: ffffffff8153bed4
RBP: 0000000000000000 R08: ffffffff81540fe7 R09: ffffffff81329d70
R10: 0000000000000000 R11: 0000000000000000 R12: 00000000c0404000
R13: 0000000000000018 R14: 00000000c0403000 R15: 00000000c0403000
FS:  0000000000000000(0000) GS:ffff8100775d6bc0(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000000 CR3: 0000000001001000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 1, threadinfo ffff810077580000, task ffff810077564790)
Stack:  ffffffff81411900 0000000000001000 0000000000001000 00000000c0404000
 ffffc200008ac000 00000000c0403000 ffff8100775a7a40 ffffffff810281e9
 0000000000000018 0000000000000005 ffff810077631680 ffff8100777b7800
Call Trace:
 [<ffffffff810281e9>] __ioremap+0xc2/0x11a
 [<ffffffff8114a6b0>] pcim_iomap+0x43/0x53
 [<ffffffff8114a74f>] pcim_iomap_regions+0x8f/0x104
 [<ffffffff811fba72>] sil_init_one+0xb0/0x1eb
 [<ffffffff81150f98>] pci_device_probe+0xd1/0x138
 [<ffffffff811a4d9c>] driver_probe_device+0xe1/0x16a
 [<ffffffff811a4f6d>] __driver_attach+0x90/0xcd
 [<ffffffff811a4edd>] __driver_attach+0x0/0xcd
 [<ffffffff811a4edd>] __driver_attach+0x0/0xcd
 [<ffffffff811a4149>] bus_for_each_dev+0x43/0x6e
 [<ffffffff811a44c9>] bus_add_driver+0x77/0x1be
 [<ffffffff8115116e>] __pci_register_driver+0x58/0x8a
 [<ffffffff814d2634>] kernel_init+0x170/0x2e0
 [<ffffffff8100cb58>] child_rip+0xa/0x12
 [<ffffffff814d24c4>] kernel_init+0x0/0x2e0
 [<ffffffff8100cb4e>] child_rip+0x0/0x12


Code: 00 49 89 c9 48 81 c6 e0 02 00 00 48 89 3c 24 31 c0 4d 89 e0 4c 89 f1 48 c7 c7 c3 97 3e 81 e8 71 ef 00 00 48 c7 43 10 18 00 00 00 <48> 83 3c 25 00 00 00 00 00 74 36 48 c7 04 25 00 00 00 00 18 00 
RIP  [<ffffffff8102905d>] ? reserve_mattr+0x1a5/0x221
 RSP <ffff810077581c60>
CR2: 0000000000000000
---[ end trace 5516cbea98bb72f9 ]---
Kernel panic - not syncing: Attempted to kill init!



I should have reviewed your patch.
I guess it must be

  "if (fattr)"  instead of  "if (*fattr)"

I'll give it another try ...


Andreas




^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:42             ` Andreas Herrmann3
  2008-01-17 22:13               ` Ingo Molnar
  2008-01-17 22:16               ` Andreas Herrmann3
@ 2008-01-17 22:26               ` Andreas Herrmann3
  2008-01-17 22:35                 ` Ingo Molnar
  2 siblings, 1 reply; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 22:26 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha

[-- Attachment #1: Type: text/plain, Size: 1080 bytes --]

On Thu, Jan 17, 2008 at 10:42:28PM +0100, Andreas Herrmann3 wrote:
> On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > 
> > * Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:
> > 
> > > Yes.
> > > 
> > > Meanwhile I have figured out that it is some ACPI stuff that maps the 
> > > page cached. I've changed the ioremap's in drivers/acpi/osl.c to 
> > > ioremap_nocache. See attached patch.
> > > 
> > > Now the machine boots without conflicts.
> > 
> > ah, nice!
> > 
> > but in general we must be robust enough in this case and just degrade 
> > any overlapping page to UC (and emit a warning perhaps) - instead of 
> > failing the ioremap and thus failing the driver (and the bootup).
> > 
> > Does my third patch (which falls back to UC in case of attribute 
> > conflicts, also attached below) instead of your ioremap_nocache() patch 
> > solve your bootup problem too?
> 
> I'll check this asap


So, now that I've avoided this tiny NULL-pointer-dereference, the system boots
fine as well with your (slightly modified) patch. See dmesg attached.


Andreas

[-- Attachment #2: dmesg.log --]
[-- Type: text/plain, Size: 22891 bytes --]

Linux version 2.6.24-rc8-gd294e9ed-dirty (root@hunter) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #2 SMP Thu Jan 17 23:13:37 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200 debug
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_ioremap(000000000000c000, 00001000) => -000002103394304
early_iounmap(ffffffff82a0c000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_iounmap(ffffffff828f0000, 00010000)
early_ioremap(0000000000000000, 00000400) => -000002105540608
early_iounmap(ffffffff82800000, 00000400)
early_ioremap(00000000000e0000, 00020000) => -000002104623104
early_iounmap(ffffffff828e0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002104526736
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff828f7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD  	 XSDT    6040000  LTP        0)
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002105042852
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff8287985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002105042852
early_iounmap(ffffffff8287985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002105036864
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff8287afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002105042608
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82879950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002105042558
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82879982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002105041210
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82879ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002105041018
ACPI: APIC 77E79F86, 007A (r1 PTLTD  	 APIC    6040000  LTP        0)
early_iounmap(ffffffff82879f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002105041210
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_iounmap(ffffffff82a79ec6, 000000c0)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: Node 0 PXM 0 0-a0000
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
SRAT: Node 0 PXM 0 0-80000000
Entering add_active_range(0, 0, 141) 1 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
early_iounmap(ffffffff82a79ec6, 000000c0)
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002103443456
early_iounmap(ffffffff82a00000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002102789120
early_iounmap(ffffffff82a9fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002102460416
early_iounmap(ffffffff82af0000, 00010000)
 [ffffe20000000000-ffffe200001fffff] PMD ->ffff810001600000 on node 0
 [ffffe20000200000-ffffe200003fffff] PMD ->ffff810001a00000 on node 0
 [ffffe20000400000-ffffe200005fffff] PMD ->ffff810001e00000 on node 0
 [ffffe20000600000-ffffe200007fffff] PMD ->ffff810002200000 on node 0
 [ffffe20000800000-ffffe200009fffff] PMD ->ffff810002600000 on node 0
 [ffffe20000a00000-ffffe20000bfffff] PMD ->ffff810002e00000 on node 0
 [ffffe20000c00000-ffffe20000dfffff] PMD ->ffff810003200000 on node 0
 [ffffe20000e00000-ffffe20000ffffff] PMD ->ffff810003600000 on node 0
 [ffffe20001000000-ffffe200011fffff] PMD ->ffff810003a00000 on node 0
 [ffffe20001200000-ffffe200013fffff] PMD ->ffff810003e00000 on node 0
 [ffffe20001400000-ffffe200015fffff] PMD ->ffff810004200000 on node 0
 [ffffe20001600000-ffffe200017fffff] PMD ->ffff810004600000 on node 0
 [ffffe20001800000-ffffe200019fffff] PMD ->ffff810004a00000 on node 0
 [ffffe20001a00000-ffffe20001bfffff] PMD ->ffff810004e00000 on node 0
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
On node 0 totalpages: 491005
  DMA zone: 56 pages used for memmap
  DMA zone: 10 pages reserved
  DMA zone: 3915 pages, LIFO batch:0
  DMA32 zone: 6658 pages used for memmap
  DMA32 zone: 480366 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
ACPI: PM-Timer IO Port: 0x8008
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: Local APIC address 0xfee00000
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30368 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484281
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200 debug
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
time.c: Detected 2288.284 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928912k/1964480k available (3074k kernel code, 35108k reserved, 1737k data, 308k init)
Calibrating delay using timer specific routine.. 4581.44 BogoMIPS (lpj=9162891)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x1040600010406
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
ioremap: addr 77e72d10, size 6ad8
ioremap: addr 77e79982, size 544
Using local APIC timer interrupts.
APIC timer calibration result 12436345
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.71 BogoMIPS (lpj=9153426)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.71 BogoMIPS (lpj=9153423)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
x86 PAT enabled: cpu 2, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#2]: passed.
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.72 BogoMIPS (lpj=9153454)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
x86 PAT enabled: cpu 3, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#3]: passed.
Brought up 4 CPUs
CPU0 attaching sched-domain:
 domain 0: span f
  groups: 1 2 4 8
  domain 1: span f
   groups: f
CPU1 attaching sched-domain:
 domain 0: span f
  groups: 2 4 8 1
  domain 1: span f
   groups: f
CPU2 attaching sched-domain:
 domain 0: span f
  groups: 4 8 1 2
  domain 1: span f
   groups: f
CPU3 attaching sched-domain:
 domain 0: span f
  groups: 8 1 2 4
  domain 1: span f
   groups: f
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ioremap: addr 77e7afc0, size 40
ACPI: EC: Look up EC in DSDT
ioremap: addr c0403104, size fc
ioremap: addr 77e7ade1, size 3
ioremap: addr 77e7af04, size 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
ioremap: addr 77e7985c, size f4
ioremap: addr 77e79950, size 32
ioremap: addr 77e79ec6, size c0
ioremap: addr 77e79f86, size 7a
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
ioremap: addr 77e7af74, size 48
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
Time: tsc clocksource has been installed.
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
ioremap_nocache: addr c0400000, size 1000
ioremap_nocache: addr c0401000, size 1000
ioremap_nocache: addr c0402000, size 1000
Boot video device is 0000:01:05.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
ioremap_nocache: addr c0100000, size 80
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc200008aa000.
console [netcon0] enabled
netconsole: network logging started
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ATIIXP: IDE controller (0x1002:0x4376 rev 0x80) at  PCI slot 0000:00:14.1
ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16
ATIIXP: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1060-0x1067, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0x1068-0x106f, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
Probing IDE interface ide1...
hdc: SONY DVD-ROM DDU1615, ATAPI CD/DVD-ROM drive
hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hdc: UDMA/33 mode selected
ide1 at 0x170-0x177,0x376 on irq 15
Probing IDE interface ide0...
hdc: ATAPI 40X DVD-ROM drive, 254kB Cache
Uniform CD-ROM driver Revision: 3.20
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
sata_sil 0000:00:12.0: version 2.3
ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
ioremap_nocache: addr c0403000, size 200
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
scsi0 : sata_sil
scsi1 : sata_sil
ata1: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc0403080 irq 22
ata2: SATA max UDMA/100 mmio m512@0xc0403000 tf 0xc04030c0 irq 22
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ATA-7: ST3120811AS, 3.AAE, max UDMA/133
ata1.00: 234441648 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/100
ata2: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      ST3120811AS      3.AA PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3 < sda5 sda6 >
sd 0:0:0:0: [sda] Attached SCSI disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
Fusion MPT base driver 3.04.06
Copyright (c) 1999-2007 LSI Corporation
Fusion MPT SAS Host driver 3.04.06
ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0402000, size 1000
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:13.2: irq 19, io mem 0xc0402000
ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0400000, size 1000
ohci_hcd 0000:00:13.0: OHCI Host Controller
ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:13.0: irq 19, io mem 0xc0400000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
ACPI: PCI Interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0401000, size 1000
ohci_hcd 0000:00:13.1: OHCI Host Controller
ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:13.1: irq 19, io mem 0xc0401000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 4 ports detected
USB Universal Host Controller Interface driver v3.0
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
piix4_smbus 0000:00:14.0: Found 0000:00:14.0 device
piix4_smbus 0000:00:14.0: Using Interrupt SMI# for SMBus.
piix4_smbus 0000:00:14.0: SMBREV = 0x0
piix4_smbus 0000:00:14.0: SMBA = 0x1050
i2c-adapter i2c-0: adapter [SMBus PIIX4 adapter at 1050] registered
i2c-dev: adapter [SMBus PIIX4 adapter at 1050] registered as minor 0
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
ACPI: PCI Interrupt 0000:00:14.5[B] -> GSI 17 (level, low) -> IRQ 17
ioremap_nocache: addr c0403800, size 100
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
ALSA device list:
  #0: ATI IXP rev 80 with ALC655 at 0xc0403800, irq 17
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
powernow-k8: Found 1 AMD Phenom(tm) 9600 Quad-Core Processor processors (4 cpu cores) (version 2.20.00)
powernow-k8:    0 : fid 0x0 did 0x0 (2300 MHz)
powernow-k8:    1 : fid 0x0 did 0x0 (1150 MHz)
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 308k freed
EXT3 FS on sda1, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 7823612k swap on /dev/sda6.  Priority:-1 extents:1 across:7823612k
eth0:  setting full-duplex.
eth0: no IPv6 routers present

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 22:26               ` Andreas Herrmann3
@ 2008-01-17 22:35                 ` Ingo Molnar
  2008-01-17 23:06                   ` Andreas Herrmann3
  0 siblings, 1 reply; 50+ messages in thread
From: Ingo Molnar @ 2008-01-17 22:35 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha


* Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:

> > I'll check this asap
> 
> So, now that I've avoided this tiny NULL-pointer-dereference, the 
> system boots fine as well with your (slightly modified) patch. See 
> dmesg attached.

for now i applied your ioremap_uncached() patch and removed my patch.

my patch might work if the MTRR marks that area UC. Does it on your 
system?

if the MTRRs (as set up by the BIOS) keep it at WB, then the ACPI 
ioremap() is already unsafe: the mmio area that happens to be there 
might be prefetched by the CPU.

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 22:15                   ` Ingo Molnar
@ 2008-01-17 22:52                     ` Andreas Herrmann3
  2008-01-17 23:04                       ` Venki Pallipadi
  0 siblings, 1 reply; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 22:52 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Siddha, Suresh B, Venki Pallipadi, ak, ebiederm, rdreier,
	torvalds, gregkh, airlied, davej, tglx, hpa, akpm, arjan,
	jesse.barnes, davem, linux-kernel

On Thu, Jan 17, 2008 at 11:15:05PM +0100, Ingo Molnar wrote:
> 
> * Andreas Herrmann3 <andreas.herrmann3@AMD.COM> wrote:
> 
> > On Thu, Jan 17, 2008 at 10:42:09PM +0100, Ingo Molnar wrote:
> > > 
> > > * Siddha, Suresh B <suresh.b.siddha@intel.com> wrote:
> > > 
> > > > On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > > > > but in general we must be robust enough in this case and just degrade 
> > > > > any overlapping page to UC (and emit a warning perhaps) - instead of 
> > > > > failing the ioremap and thus failing the driver (and the bootup).
> > > > 
> > > > But then, this will cause an attribute conflicit. Old one was 
> > > > specifying WB in PAT (ioremap with noflags) and the new ioremap 
> > > > specifies UC.
> > > 
> > > we could fix up all aliases of that page as well and degrade them to UC?
> > 
> > Yes, we must fix all aliases or reject the conflicting mapping. But 
> > fixing all aliases might not be that easy. (I've just seen a panic 
> > when using your patch ;-(
> 
> yes, indeed my patch is bad if you have PAT enabled: conflicting cache 
> attributes might be present. I'll go with your patch for now.

I think the best is to just reject conflicting mappings. (Because now
I am too tired to think about a safe way how to change the aliases to the
most restrictive memory type. ;-)

But then of course such boot-time problems like I've seen on my test
machines should be avoided somehow.


Andreas




^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 22:52                     ` Andreas Herrmann3
@ 2008-01-17 23:04                       ` Venki Pallipadi
  2008-01-17 23:24                         ` Andreas Herrmann3
  2008-01-18 16:10                         ` Andreas Herrmann3
  0 siblings, 2 replies; 50+ messages in thread
From: Venki Pallipadi @ 2008-01-17 23:04 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Ingo Molnar, Siddha, Suresh B, Venki Pallipadi, ak, ebiederm,
	rdreier, torvalds, gregkh, airlied, davej, tglx, hpa, akpm,
	arjan, jesse.barnes, davem, linux-kernel

On Thu, Jan 17, 2008 at 11:52:43PM +0100, Andreas Herrmann3 wrote:
> On Thu, Jan 17, 2008 at 11:15:05PM +0100, Ingo Molnar wrote:
> > 
> > * Andreas Herrmann3 <andreas.herrmann3@AMD.COM> wrote:
> > 
> > > On Thu, Jan 17, 2008 at 10:42:09PM +0100, Ingo Molnar wrote:
> > > > 
> > > > * Siddha, Suresh B <suresh.b.siddha@intel.com> wrote:
> > > > 
> > > > > On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > > > > > but in general we must be robust enough in this case and just degrade 
> > > > > > any overlapping page to UC (and emit a warning perhaps) - instead of 
> > > > > > failing the ioremap and thus failing the driver (and the bootup).
> > > > > 
> > > > > But then, this will cause an attribute conflicit. Old one was 
> > > > > specifying WB in PAT (ioremap with noflags) and the new ioremap 
> > > > > specifies UC.
> > > > 
> > > > we could fix up all aliases of that page as well and degrade them to UC?
> > > 
> > > Yes, we must fix all aliases or reject the conflicting mapping. But 
> > > fixing all aliases might not be that easy. (I've just seen a panic 
> > > when using your patch ;-(
> > 
> > yes, indeed my patch is bad if you have PAT enabled: conflicting cache 
> > attributes might be present. I'll go with your patch for now.
> 
> I think the best is to just reject conflicting mappings. (Because now
> I am too tired to think about a safe way how to change the aliases to the
> most restrictive memory type. ;-)
> 
> But then of course such boot-time problems like I've seen on my test
> machines should be avoided somehow.
> 
> 

Below is another potential fix for the problem here. Going through ACPI
ioremap usages, we found at one place the mapping is cached for possible
optimization reason and not unmapped later. Patch below always unmaps
ioremap at this place in ACPICA.

Thanks,
Venki


Index: linux-2.6.git/drivers/acpi/executer/exregion.c
===================================================================
--- linux-2.6.git.orig/drivers/acpi/executer/exregion.c	2008-01-17 03:18:39.000000000 -0800
+++ linux-2.6.git/drivers/acpi/executer/exregion.c	2008-01-17 07:34:33.000000000 -0800
@@ -48,6 +48,8 @@
 #define _COMPONENT          ACPI_EXECUTER
 ACPI_MODULE_NAME("exregion")
 
+static int ioremap_cache;
+
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ex_system_memory_space_handler
@@ -249,6 +251,13 @@
 		break;
 	}
 
+	if (!ioremap_cache) {
+		acpi_os_unmap_memory(mem_info->mapped_logical_address,
+		                     window_size);
+		mem_info->mapped_logical_address = 0;
+		mem_info->mapped_physical_address = 0;
+		mem_info->mapped_length = 0;
+	}
 	return_ACPI_STATUS(status);
 }
 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 22:35                 ` Ingo Molnar
@ 2008-01-17 23:06                   ` Andreas Herrmann3
  0 siblings, 0 replies; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 23:06 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes, davem,
	linux-kernel, suresh.b.siddha

On Thu, Jan 17, 2008 at 11:35:51PM +0100, Ingo Molnar wrote:
> 
> * Andreas Herrmann3 <andreas.herrmann3@amd.com> wrote:
> 
> > > I'll check this asap
> > 
> > So, now that I've avoided this tiny NULL-pointer-dereference, the 
> > system boots fine as well with your (slightly modified) patch. See 
> > dmesg attached.
> 
> for now i applied your ioremap_uncached() patch and removed my patch.
> 
> my patch might work if the MTRR marks that area UC. Does it on your 
> system?

The region (c0403000-c04031ff) is not characterized by an MTRR.
The MTRRdefType specifies it and it is

  MTRRdefType          = 0x0000000000000c00
    MemType=0
    MtrrDefTypeFixEn=0x1
    MtrrDefTypeEn=0x1

=> 0==UC

So, that's why it worked.


Andreas




^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 23:04                       ` Venki Pallipadi
@ 2008-01-17 23:24                         ` Andreas Herrmann3
  2008-01-17 23:42                           ` Pallipadi, Venkatesh
  2008-01-18 16:10                         ` Andreas Herrmann3
  1 sibling, 1 reply; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-17 23:24 UTC (permalink / raw)
  To: Venki Pallipadi
  Cc: Ingo Molnar, Siddha, Suresh B, ak, ebiederm, rdreier, torvalds,
	gregkh, airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes,
	davem, linux-kernel

On Thu, Jan 17, 2008 at 03:04:10PM -0800, Venki Pallipadi wrote:
> 
> Below is another potential fix for the problem here. Going through ACPI
> ioremap usages, we found at one place the mapping is cached for possible
> optimization reason and not unmapped later. Patch below always unmaps
> ioremap at this place in ACPICA.
> 
> Thanks,
> Venki
> 
> 
> Index: linux-2.6.git/drivers/acpi/executer/exregion.c
> ===================================================================
> --- linux-2.6.git.orig/drivers/acpi/executer/exregion.c	2008-01-17 03:18:39.000000000 -0800
> +++ linux-2.6.git/drivers/acpi/executer/exregion.c	2008-01-17 07:34:33.000000000 -0800
> @@ -48,6 +48,8 @@
>  #define _COMPONENT          ACPI_EXECUTER
>  ACPI_MODULE_NAME("exregion")
>  
> +static int ioremap_cache;
> +
>  /*******************************************************************************
>   *
>   * FUNCTION:    acpi_ex_system_memory_space_handler
> @@ -249,6 +251,13 @@
>  		break;
>  	}
>  
> +	if (!ioremap_cache) {
> +		acpi_os_unmap_memory(mem_info->mapped_logical_address,
> +		                     window_size);
> +		mem_info->mapped_logical_address = 0;
> +		mem_info->mapped_physical_address = 0;
> +		mem_info->mapped_length = 0;
> +	}
>  	return_ACPI_STATUS(status);
>  }
>  


Applying and compiling your patch I see:

  CC      drivers/acpi/executer/exregion.o
drivers/acpi/executer/exregion.c: In function 'acpi_ex_system_memory_space_handler':
drivers/acpi/executer/exregion.c:81: warning: 'window_size' may be used uninitialized in this function
 

After glancing through this file it seems that ioremap_cache is always 0
and acpi_os_unmap_memory will unconditionally be executed at end of this function.
I am not familiar with that code. But I just want to reinsure that this
is what you want. And if so, why is that variable needed?
But maybe I missed something ...
(I'll test it tomorrow, or I better should say later today.)


Andreas




^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 23:24                         ` Andreas Herrmann3
@ 2008-01-17 23:42                           ` Pallipadi, Venkatesh
  0 siblings, 0 replies; 50+ messages in thread
From: Pallipadi, Venkatesh @ 2008-01-17 23:42 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Ingo Molnar, Siddha, Suresh B, ak, ebiederm, rdreier, torvalds,
	gregkh, airlied, davej, tglx, hpa, akpm, arjan, Barnes, Jesse,
	davem, linux-kernel

 

>-----Original Message-----
>From: Andreas Herrmann3 [mailto:andreas.herrmann3@amd.com] 
>Sent: Thursday, January 17, 2008 3:25 PM
>To: Pallipadi, Venkatesh
>Cc: Ingo Molnar; Siddha, Suresh B; ak@muc.de; 
>ebiederm@xmission.com; rdreier@cisco.com; 
>torvalds@linux-foundation.org; gregkh@suse.de; 
>airlied@skynet.ie; davej@redhat.com; tglx@linutronix.de; 
>hpa@zytor.com; akpm@linux-foundation.org; arjan@infradead.org; 
>Barnes, Jesse; davem@davemloft.net; linux-kernel@vger.kernel.org
>Subject: Re: [patch 0/4] x86: PAT followup - Incremental 
>changes and bug fixes
>
>On Thu, Jan 17, 2008 at 03:04:10PM -0800, Venki Pallipadi wrote:
>> 
>> Below is another potential fix for the problem here. Going 
>through ACPI
>> ioremap usages, we found at one place the mapping is cached 
>for possible
>> optimization reason and not unmapped later. Patch below always unmaps
>> ioremap at this place in ACPICA.
>> 
>> Thanks,
>> Venki
>> 
>> 
>> Index: linux-2.6.git/drivers/acpi/executer/exregion.c
>> ===================================================================
>> --- linux-2.6.git.orig/drivers/acpi/executer/exregion.c	
>2008-01-17 03:18:39.000000000 -0800
>> +++ linux-2.6.git/drivers/acpi/executer/exregion.c	
>2008-01-17 07:34:33.000000000 -0800
>> @@ -48,6 +48,8 @@
>>  #define _COMPONENT          ACPI_EXECUTER
>>  ACPI_MODULE_NAME("exregion")
>>  
>> +static int ioremap_cache;
>> +
>>  
>/**************************************************************
>*****************
>>   *
>>   * FUNCTION:    acpi_ex_system_memory_space_handler
>> @@ -249,6 +251,13 @@
>>  		break;
>>  	}
>>  
>> +	if (!ioremap_cache) {
>> +		acpi_os_unmap_memory(mem_info->mapped_logical_address,
>> +		                     window_size);
>> +		mem_info->mapped_logical_address = 0;
>> +		mem_info->mapped_physical_address = 0;
>> +		mem_info->mapped_length = 0;
>> +	}
>>  	return_ACPI_STATUS(status);
>>  }
>>  
>
>
>Applying and compiling your patch I see:
>
>  CC      drivers/acpi/executer/exregion.o
>drivers/acpi/executer/exregion.c: In function 
>'acpi_ex_system_memory_space_handler':
>drivers/acpi/executer/exregion.c:81: warning: 'window_size' 
>may be used uninitialized in this function
> 
>
>After glancing through this file it seems that ioremap_cache 
>is always 0
>and acpi_os_unmap_memory will unconditionally be executed at 
>end of this function.
>I am not familiar with that code. But I just want to reinsure that this
>is what you want. And if so, why is that variable needed?
>But maybe I missed something ...

I missed that warning. But should not matter for testing this patch as
we always initialize window_size with the patch.

Yes. The variable is not needed. With patch I always map at the
beginning of this function and unmap at the end. I just kept the
variable as I was planning to add a boot option to control this
initially. But, later decided to keep the test patch simple without any
boot option.
We can come up with a better patch once we know that the test patch
helps.

Thanks,
Venki

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:31             ` Siddha, Suresh B
  2008-01-17 21:38               ` H. Peter Anvin
  2008-01-17 21:42               ` Ingo Molnar
@ 2008-01-18  4:25               ` Andi Kleen
  2 siblings, 0 replies; 50+ messages in thread
From: Andi Kleen @ 2008-01-18  4:25 UTC (permalink / raw)
  To: Siddha, Suresh B
  Cc: Ingo Molnar, Andreas Herrmann3, Venki Pallipadi, ebiederm,
	rdreier, torvalds, gregkh, airlied, davej, tglx, hpa, akpm,
	arjan, jesse.barnes, davem, linux-kernel

> As Linus mentioned, main problem is to figure out the correct attribute
> for ioremap() which doesn't specify the actual attribute to be used.

In this case the correct attribute is the one of the underlying MTRR.

And if it conflicts with some other mapping that overrides an MTRR
the driver was always broken and it should probably error out and be
reevaluated/fixed.

-Andi

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 23:04                       ` Venki Pallipadi
  2008-01-17 23:24                         ` Andreas Herrmann3
@ 2008-01-18 16:10                         ` Andreas Herrmann3
  2008-01-18 17:13                           ` Pallipadi, Venkatesh
  1 sibling, 1 reply; 50+ messages in thread
From: Andreas Herrmann3 @ 2008-01-18 16:10 UTC (permalink / raw)
  To: Venki Pallipadi
  Cc: Ingo Molnar, Siddha, Suresh B, ak, ebiederm, rdreier, torvalds,
	gregkh, airlied, davej, tglx, hpa, akpm, arjan, jesse.barnes,
	davem, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1437 bytes --]

On Thu, Jan 17, 2008 at 03:04:10PM -0800, Venki Pallipadi wrote:
>
> Below is another potential fix for the problem here. Going through ACPI
> ioremap usages, we found at one place the mapping is cached for possible
> optimization reason and not unmapped later. Patch below always unmaps
> ioremap at this place in ACPICA.

The patch does not fix the problem. The conflicting cache attributes are
still there.

I have done another test after I have added a debug message in iounmap
when a direct mapping gets removed. (See boot-exregion-2.log)
For the address in question this gives:

# grep c04 boot-exregion-2.log

ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap: addr c040310a, size f6
ioremap: addr c040310a, size f6
ioremap: addr c040310a, size f6
ioremap: addr c040310a, size f6
ioremap: addr c040318a, size 76
ioremap: addr c0403104, size fc
ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap_nocache: addr c0400000, size 1000
iounmap: addr c0400000, size 1000
ioremap_nocache: addr c0401000, size 1000
iounmap: addr c0401000, size 1000
ioremap_nocache: addr c0402000, size 1000
iounmap: addr c0402000, size 1000
ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap_nocache: addr c0403000, size 200
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
    ...


Regards,

Andreas

[-- Attachment #2: boot-exregion-2.log --]
[-- Type: text/plain, Size: 24711 bytes --]

  Booting command-list

kernel=/tftpboot/aherrma3/hunter-x86-mm-test-vp-debug root=/dev/sda1 console=tt
yS0,115200 debug
   [Linux-bzImage, setup=0x2a00, size=0x24a918]
boot
Issuing RESET:
Linux version 2.6.24-rc8-gd294e9ed-dirty (root@hunter) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #5 SMP Fri Jan 18 16:47:32 CET 2008
Command line: root=/dev/sda1 console=ttyS0,115200 debug
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000008dc00 (usable)
 BIOS-e820: 000000000008dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000077e70000 (usable)
 BIOS-e820: 0000000077e70000 - 0000000077e7a000 (ACPI data)
 BIOS-e820: 0000000077e7a000 - 0000000077f00000 (ACPI NVS)
 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
end_pfn_map = 1048576
early_ioremap(000000000000040e, 00000002) => -000002105539570
early_iounmap(ffffffff8280040e, 00000002)
early_ioremap(000000000009e000, 00000002) => -000002104893440
early_iounmap(ffffffff8289e000, 00000002)
early_ioremap(0000000000008000, 00001000) => -000002105507840
early_ioremap(0000000000009000, 00001000) => -000002103406592
early_iounmap(ffffffff82a09000, 00001000)
early_ioremap(000000000000a000, 00001000) => -000002103402496
early_iounmap(ffffffff82a0a000, 00001000)
early_ioremap(000000000000b000, 00001000) => -000002103398400
early_iounmap(ffffffff82a0b000, 00001000)
early_ioremap(000000000000c000, 00001000) => -000002103394304
early_iounmap(ffffffff82a0c000, 00001000)
early_iounmap(ffffffff82808000, 00001000)
early_ioremap(00000000000f0000, 00010000) => -000002104557568
DMI present.
early_ioremap(0000000077eec000, 00000491) => -000002102476800
early_iounmap(ffffffff82aec000, 00000491)
early_iounmap(ffffffff828f0000, 00010000)
early_ioremap(0000000000000000, 00000400) => -000002105540608
early_iounmap(ffffffff82800000, 00000400)
early_ioremap(00000000000e0000, 00020000) => -000002104623104
early_iounmap(ffffffff828e0000, 00020000)
early_ioremap(00000000000f7870, 00000024) => -000002104526736
ACPI: RSDP 000F7870, 0024 (r2 PTLTD )
early_iounmap(ffffffff828f7870, 00000024)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e72cc4, 00000024) => -000002105070396
ACPI: XSDT 77E72CC4, 004C (r1 PTLTD      XSDT    6040000  LTP        0)
early_iounmap(ffffffff82872cc4, 00000024)
early_ioremap(0000000077e72cc4, 0000004c) => -000002105070396
early_iounmap(ffffffff82872cc4, 0000004c)
early_ioremap(0000000077e7985c, 00000024) => -000002105042852
ACPI: FACP 77E7985C, 00F4 (r3 AMD    DUNE      6040000 ATI     F4240)
early_iounmap(ffffffff8287985c, 00000024)
early_ioremap(0000000077e7985c, 000000f4) => -000002105042852
early_iounmap(ffffffff8287985c, 000000f4)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
ACPI: DSDT 77E72D10, 6AD8 (r1    ATI    SB400  6040000 MSFT  100000E)
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e7afc0, 00000024) => -000002105036864
ACPI: FACS 77E7AFC0, 0040
early_iounmap(ffffffff8287afc0, 00000024)
early_ioremap(0000000077e79950, 00000024) => -000002105042608
ACPI: TCPA 77E79950, 0032 (r1 Phoeni  x        6040000  TL         0)
early_iounmap(ffffffff82879950, 00000024)
early_ioremap(0000000077e79982, 00000024) => -000002105042558
ACPI: SSDT 77E79982, 0544 (r1 AMD    POWERNOW  6040000 AMD         1)
early_iounmap(ffffffff82879982, 00000024)
early_ioremap(0000000077e79ec6, 00000024) => -000002105041210
ACPI: SRAT 77E79EC6, 00C0 (r1 AMD    HAMMER    6040000 AMD         1)
early_iounmap(ffffffff82879ec6, 00000024)
early_ioremap(0000000077e79f86, 00000024) => -000002105041018
ACPI: APIC 77E79F86, 007A (r1 PTLTD      APIC    6040000  LTP        0)
early_iounmap(ffffffff82879f86, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e72d10, 00000024) => -000002105070320
early_iounmap(ffffffff82872d10, 00000024)
early_ioremap(0000000077e79ec6, 000000c0) => -000002105041210
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
early_iounmap(ffffffff82a79ec6, 000000c0)
early_ioremap(0000000077e79ec6, 000000c0) => -000002102944058
SRAT: Node 0 PXM 0 0-a0000
Entering add_active_range(0, 0, 141) 0 entries of 3200 used
SRAT: Node 0 PXM 0 0-80000000
Entering add_active_range(0, 0, 141) 1 entries of 3200 used
Entering add_active_range(0, 256, 491120) 1 entries of 3200 used
early_iounmap(ffffffff82a79ec6, 000000c0)
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-0000000077e70000
early_ioremap(0000000000000000, 00000400) => -000002103443456
early_iounmap(ffffffff82a00000, 00000400)
early_ioremap(000000000009fc00, 00000400) => -000002102789120
early_iounmap(ffffffff82a9fc00, 00000400)
early_ioremap(00000000000f0000, 00010000) => -000002102460416
early_iounmap(ffffffff82af0000, 00010000)
 [ffffe20000000000-ffffe200001fffff] PMD ->ffff810001600000 on node 0
 [ffffe20000200000-ffffe200003fffff] PMD ->ffff810001a00000 on node 0
 [ffffe20000400000-ffffe200005fffff] PMD ->ffff810001e00000 on node 0
 [ffffe20000600000-ffffe200007fffff] PMD ->ffff810002200000 on node 0
 [ffffe20000800000-ffffe200009fffff] PMD ->ffff810002600000 on node 0
 [ffffe20000a00000-ffffe20000bfffff] PMD ->ffff810002e00000 on node 0
 [ffffe20000c00000-ffffe20000dfffff] PMD ->ffff810003200000 on node 0
 [ffffe20000e00000-ffffe20000ffffff] PMD ->ffff810003600000 on node 0
 [ffffe20001000000-ffffe200011fffff] PMD ->ffff810003a00000 on node 0
 [ffffe20001200000-ffffe200013fffff] PMD ->ffff810003e00000 on node 0
 [ffffe20001400000-ffffe200015fffff] PMD ->ffff810004200000 on node 0
 [ffffe20001600000-ffffe200017fffff] PMD ->ffff810004600000 on node 0
 [ffffe20001800000-ffffe200019fffff] PMD ->ffff810004a00000 on node 0
 [ffffe20001a00000-ffffe20001bfffff] PMD ->ffff810004e00000 on node 0
Zone PFN ranges:
@ DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      141
    0:      256 ->   491120
On node 0 totalpages: 491005
  DMA zone: 56 pages used for memmap
  DMA zone: 10 pages reserved
  DMA zone: 3915 pages, LIFO batch:0
  DMA32 zone: 6658 pages used for memmap
  DMA32 zone: 480366 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
ATI board detected. Disabling timer routing over 8254.
early_ioremap(0000000077e7985c, 000000f4) => -000002102945700
ACPI: PM-Timer IO Port: 0x8008
early_iounmap(ffffffff82a7985c, 000000f4)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: Local APIC address 0xfee00000
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 (Bootup-CPU)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Processor #2
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
Processor #3
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 4, address 0xfec00000, GSI 0-23
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)
early_iounmap(ffffffff82a79f86, 0000007a)
early_ioremap(0000000077e79f86, 0000007a) => -000002102943866
early_iounmap(ffffffff82a79f86, 0000007a)
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
SMP: Allowing 4 CPUs, 0 hotplug CPUs
PERCPU: Allocating 30304 bytes of per cpu data
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 484281
Policy zone: DMA32
Kernel command line: root=/dev/sda1 console=ttyS0,115200 debug
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PM_TIMER
time.c: Detected 2288.286 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Checking aperture...
CPU 0: aperture @ 0 size 32 MB
No AGP bridge found
Memory: 1928916k/1964480k available (3068k kernel code, 35104k reserved, 1738k data, 308k init)
Calibrating delay using timer specific routine.. 4581.25 BogoMIPS (lpj=9162508)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x1040600010406
SMP alternatives: switching to UP code
ACPI: Core revision 20070126
ioremap: addr 77e72d10, size 6ad8
ioremap: addr 77e79982, size 544
Using local APIC timer interrupts.
APIC timer calibration result 12436315
Detected 12.436 MHz APIC timer.
SMP alternatives: switching to SMP code
Booting processor 1/4 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4576.72 BogoMIPS (lpj=9153440)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
SMP alternatives: switching to SMP code
Booting processor 2/4 APIC 0x2
Initializing CPU#2
Calibrating delay using timer specific routine.. 4576.71 BogoMIPS (lpj=9153436)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 2/2 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
x86 PAT enabled: cpu 2, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#2]: passed.
SMP alternatives: switching to SMP code
Booting processor 3/4 APIC 0x3
Initializing CPU#3
Calibrating delay using timer specific routine.. 4576.74 BogoMIPS (lpj=9153487)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 3/3 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
x86 PAT enabled: cpu 3, old 0x7040600070406, new 0x1040600010406
AMD Phenom(tm) 9600 Quad-Core Processor stepping 02
checking TSC synchronization [CPU#0 -> CPU#3]: passed.
Brought up 4 CPUs
CPU0 attaching sched-domain:
 domain 0: span f
  groups: 1 2 4 8
  domain 1: span f
   groups: f
CPU1 attaching sched-domain:
 domain 0: span f
  groups: 2 4 8 1
  domain 1: span f
   groups: f
CPU2 attaching sched-domain:
 domain 0: span f
  groups: 4 8 1 2
  domain 1: span f
   groups: f
CPU3 attaching sched-domain:
 domain 0: span f
  groups: 8 1 2 4
  domain 1: span f
   groups: f
net_namespace: 120 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: Using configuration type 1
ioremap: addr 77e7afc0, size 40
ACPI: EC: Look up EC in DSDT
ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap: addr 77e7ade1, size 3
ioremap: addr 77e7af04, size 1
ioremap: addr 77e7af04, size 1
ioremap: addr 77e7af04, size 1
ioremap: addr 77e7af04, size 1
ioremap: addr 77e7af04, size 1
ioremap: addr 77e7af04, size 1
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: If "acpi_osi=Linux" works better,
Please send dmidecode to linux-acpi@vger.kernel.org
ioremap: addr c040310a, size f6
ioremap: addr c040310a, size f6
ioremap: addr c040310a, size f6
ioremap: addr c040310a, size f6
ioremap: addr c040318a, size 76
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ioremap: addr c0403104, size fc
ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap: addr 77e7ade1, size 3
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:14.4
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKB] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.
ioremap: addr 77e7985c, size f4
ioremap: addr 77e79950, size 32
ioremap: addr 77e79ec6, size c0
ioremap: addr 77e79f86, size 7a
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
ioremap: addr 77e7af74, size 48
ioremap: addr 77e7af75, size 47
ioremap: addr 77e7af76, size 46
ioremap: addr 77e7af77, size 45
ioremap: addr 77e7af78, size 44
ioremap: addr 77e7af79, size 43
ioremap: addr 77e7af7a, size 42
ioremap: addr 77e7af7b, size 41
ioremap: addr 77e7af7c, size 40
ioremap: addr 77e7af7d, size 3f
ioremap: addr 77e7af7e, size 3e
ioremap: addr 77e7af7f, size 3d
ioremap: addr 77e7af80, size 3c
ioremap: addr 77e7af81, size 3b
ioremap: addr 77e7af82, size 3a
ioremap: addr 77e7af83, size 39
ioremap: addr 77e7af84, size 38
ioremap: addr 77e7af85, size 37
ioremap: addr 77e7af86, size 36
ioremap: addr 77e7af87, size 35
ioremap: addr 77e7af88, size 34
ioremap: addr 77e7af89, size 33
ioremap: addr 77e7af8a, size 32
ioremap: addr 77e7af8b, size 31
ioremap: addr 77e7af8c, size 30
ioremap: addr 77e7af8d, size 2f
ioremap: addr 77e7af8e, size 2e
ioremap: addr 77e7af8f, size 2d
ioremap: addr 77e7af90, size 2c
ioremap: addr 77e7af91, size 2b
ioremap: addr 77e7af92, size 2a
ioremap: addr 77e7af93, size 29
ioremap: addr 77e7af94, size 28
ioremap: addr 77e7af95, size 27
ioremap: addr 77e7af96, size 26
ioremap: addr 77e7af97, size 25
ioremap: addr 77e7af98, size 24
ioremap: addr 77e7af99, size 23
ioremap: addr 77e7af9a, size 22
ioremap: addr 77e7af9b, size 21
ioremap: addr 77e7af9c, size 20
ioremap: addr 77e7af9d, size 1f
ioremap: addr 77e7af9e, size 1e
ioremap: addr 77e7af9f, size 1d
ioremap: addr 77e7afa0, size 1c
ioremap: addr 77e7afa1, size 1b
ioremap: addr 77e7afa2, size 1a
ioremap: addr 77e7afa3, size 19
ioremap: addr 77e7afb4, size 8
ioremap: addr 77e7afb5, size 7
ioremap: addr 77e7afb6, size 6
ioremap: addr 77e7afb7, size 5
ioremap: addr 77e7afb4, size 8
ioremap: addr 77e7afb5, size 7
ioremap: addr 77e7afb6, size 6
ioremap: addr 77e7afb7, size 5
ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap: addr 77e7af04, size 1
ioremap: addr 77e7ade1, size 3
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
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: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
Time: tsc clocksource has been installed.
system 00:01: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:01: iomem range 0xfee00000-0xfee00fff could not be reserved
system 00:08: ioport range 0x1080-0x1080 has been reserved
system 00:08: ioport range 0x220-0x22f has been reserved
system 00:08: ioport range 0x40b-0x40b has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
system 00:08: ioport range 0x4d6-0x4d6 has been reserved
system 00:08: ioport range 0x530-0x537 has been reserved
system 00:08: ioport range 0xc00-0xc01 has been reserved
system 00:08: ioport range 0xc14-0xc14 has been reserved
system 00:08: ioport range 0xc50-0xc52 has been reserved
system 00:08: ioport range 0xc6c-0xc6c has been reserved
system 00:08: ioport range 0xc6f-0xc6f has been reserved
system 00:08: ioport range 0xcd4-0xcd5 has been reserved
system 00:08: ioport range 0xcd6-0xcd7 has been reserved
system 00:08: ioport range 0xcd8-0xcdf has been reserved
system 00:08: ioport range 0x8000-0x805f has been reserved
system 00:08: ioport range 0xf40-0xf47 has been reserved
system 00:08: ioport range 0x87f-0x87f has been reserved
system 00:09: iomem range 0xe0000-0xfffff could not be reserved
system 00:09: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:09: iomem range 0x0-0xfff could not be reserved
PCI: Bridge: 0000:00:01.0
  IO window: 9000-9fff
  MEM window: c0000000-c00fffff
  PREFETCH window: c8000000-cfffffff
PCI: Bridge: 0000:00:14.4
  IO window: 2000-2fff
  MEM window: c0100000-c01fffff
  PREFETCH window: disabled.
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: MSI quirk detected. MSI deactivated.
ioremap_nocache: addr c0400000, size 1000
iounmap: addr c0400000, size 1000
ioremap_nocache: addr c0401000, size 1000
iounmap: addr c0401000, size 1000
ioremap_nocache: addr c0402000, size 1000
iounmap: addr c0402000, size 1000
Boot video device is 0000:01:05.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
ACPI: Processor [C000] (supports 8 throttling states)
ioremap: addr c0403104, size fc
ioremap: addr c0403184, size 7c
ioremap: addr 77e7ade2, size 2
ioremap: addr 77e7ade2, size 2
ioremap: addr 77e7ade2, size 2
ioremap: addr 77e7ade2, size 2
ioremap: addr 77e7ade2, size 2
ioremap: addr 77e7ade2, size 2
ioremap: addr 77e7ade2, size 2
ioremap: addr 77e7ade1, size 3
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: module loaded
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 16 (level, low) -> IRQ 16
ioremap_nocache: addr c0100000, size 80
3c59x: Donald Becker and others.
0000:02:04.0: 3Com PCI 3c905C Tornado at ffffc2000030e000.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ATIIXP: IDE controller (0x1002:0x4376 rev 0x80) at  PCI slot 0000:00:14.1
ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16
ATIIXP: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1060-0x1067, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0x1068-0x106f, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
Probing IDE interface ide1...
hdc: SONY DVD-ROM DDU1615, ATAPI CD/DVD-ROM drive
hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hdc: UDMA/33 mode selected
ide1 at 0x170-0x177,0x376 on irq 15
Probing IDE interface ide0...
hdc: ATAPI 40X DVD-ROM drive, 254kB Cache
Uniform CD-ROM driver Revision: 3.20
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
sata_sil 0000:00:12.0: version 2.3
ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
ioremap_nocache: addr c0403000, size 200
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
ACPI: PCI interrupt for device 0000:00:12.0 disabled
sata_sil: probe of 0000:00:12.0 failed with error -12
Fusion MPT base driver 3.04.06
Copyright (c) 1999-2007 LSI Corporation
Fusion MPT SAS Host driver 3.04.06
ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0402000, size 1000
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:13.2: irq 19, io mem 0xc0402000
ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0400000, size 1000
ohci_hcd 0000:00:13.0: OHCI Host Controller
ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:13.0: irq 19, io mem 0xc0400000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
ACPI: PCI Interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 19
ioremap_nocache: addr c0401000, size 1000
ohci_hcd 0000:00:13.1: OHCI Host Controller
ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:13.1: irq 19, io mem 0xc0401000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 4 ports detected
USB Universal Host Controller Interface driver v3.0
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
piix4_smbus 0000:00:14.0: Found 0000:00:14.0 device
piix4_smbus 0000:00:14.0: Using Interrupt SMI# for SMBus.
piix4_smbus 0000:00:14.0: SMBREV = 0x0
piix4_smbus 0000:00:14.0: SMBA = 0x1050
i2c-adapter i2c-0: adapter [SMBus PIIX4 adapter at 1050] registered
i2c-dev: adapter [SMBus PIIX4 adapter at 1050] registered as minor 0
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
ACPI: PCI Interrupt 0000:00:14.5[B] -> GSI 17 (level, low) -> IRQ 17
ioremap_nocache: addr c0403800, size 100
swapper:1 conflicting cache attribute c0403000-c0404000 uncached<->default
AC'97 space ioremap problem
ACPI: PCI interrupt for device 0000:00:14.5 disabled
ATI IXP AC97 controller: probe of 0000:00:14.5 failed with error -5
ALSA device list:
  No soundcards found.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
powernow-k8: Found 1 AMD Phenom(tm) 9600 Quad-Core Processor processors (4 cpu cores) (version 2.20.00)
powernow-k8:    0 : fid 0x0 did 0x0 (2300 MHz)
powernow-k8:    1 : fid 0x0 did 0x0 (1150 MHz)
VFS: Cannot open root device "sda1" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
1600    4194302 hdc driver: ide-cdrom
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)




^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-18 16:10                         ` Andreas Herrmann3
@ 2008-01-18 17:13                           ` Pallipadi, Venkatesh
  2008-01-18 17:33                             ` Balbir Singh
  0 siblings, 1 reply; 50+ messages in thread
From: Pallipadi, Venkatesh @ 2008-01-18 17:13 UTC (permalink / raw)
  To: Andreas Herrmann3
  Cc: Ingo Molnar, Siddha, Suresh B, ak, ebiederm, rdreier, torvalds,
	gregkh, airlied, davej, tglx, hpa, akpm, arjan, Barnes, Jesse,
	davem, linux-kernel

 

>-----Original Message-----
>From: Andreas Herrmann3 [mailto:andreas.herrmann3@amd.com] 
>Sent: Friday, January 18, 2008 8:11 AM
>To: Pallipadi, Venkatesh
>Cc: Ingo Molnar; Siddha, Suresh B; ak@muc.de; 
>ebiederm@xmission.com; rdreier@cisco.com; 
>torvalds@linux-foundation.org; gregkh@suse.de; 
>airlied@skynet.ie; davej@redhat.com; tglx@linutronix.de; 
>hpa@zytor.com; akpm@linux-foundation.org; arjan@infradead.org; 
>Barnes, Jesse; davem@davemloft.net; linux-kernel@vger.kernel.org
>Subject: Re: [patch 0/4] x86: PAT followup - Incremental 
>changes and bug fixes
>
>On Thu, Jan 17, 2008 at 03:04:10PM -0800, Venki Pallipadi wrote:
>>
>> Below is another potential fix for the problem here. Going 
>through ACPI
>> ioremap usages, we found at one place the mapping is cached 
>for possible
>> optimization reason and not unmapped later. Patch below always unmaps
>> ioremap at this place in ACPICA.
>
>The patch does not fix the problem. The conflicting cache 
>attributes are
>still there.
>

Andreas,

Could you also try the patch Suresh Siddha sent out yesterday. That
covers the case where the attribute was not getting removed even after
unmap was called.

Thanks,
Venki

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-18 17:13                           ` Pallipadi, Venkatesh
@ 2008-01-18 17:33                             ` Balbir Singh
  0 siblings, 0 replies; 50+ messages in thread
From: Balbir Singh @ 2008-01-18 17:33 UTC (permalink / raw)
  To: Pallipadi, Venkatesh
  Cc: Andreas Herrmann3, Ingo Molnar, Siddha, Suresh B, ak, ebiederm,
	rdreier, torvalds, gregkh, airlied, davej, tglx, hpa, akpm,
	arjan, Barnes, Jesse, davem, linux-kernel

* Pallipadi, Venkatesh <venkatesh.pallipadi@intel.com> [2008-01-18 09:13:10]:

> 
> 
> >-----Original Message-----
> >From: Andreas Herrmann3 [mailto:andreas.herrmann3@amd.com] 
> >Sent: Friday, January 18, 2008 8:11 AM
> >To: Pallipadi, Venkatesh
> >Cc: Ingo Molnar; Siddha, Suresh B; ak@muc.de; 
> >ebiederm@xmission.com; rdreier@cisco.com; 
> >torvalds@linux-foundation.org; gregkh@suse.de; 
> >airlied@skynet.ie; davej@redhat.com; tglx@linutronix.de; 
> >hpa@zytor.com; akpm@linux-foundation.org; arjan@infradead.org; 
> >Barnes, Jesse; davem@davemloft.net; linux-kernel@vger.kernel.org
> >Subject: Re: [patch 0/4] x86: PAT followup - Incremental 
> >changes and bug fixes
> >
> >On Thu, Jan 17, 2008 at 03:04:10PM -0800, Venki Pallipadi wrote:
> >>
> >> Below is another potential fix for the problem here. Going 
> >through ACPI
> >> ioremap usages, we found at one place the mapping is cached 
> >for possible
> >> optimization reason and not unmapped later. Patch below always unmaps
> >> ioremap at this place in ACPICA.
> >
> >The patch does not fix the problem. The conflicting cache 
> >attributes are
> >still there.
> >
> 
> Andreas,
> 
> Could you also try the patch Suresh Siddha sent out yesterday. That
> covers the case where the attribute was not getting removed even after
> unmap was called.
>

An easy way for you to figure out if our patch will solve your problem
is this, look for any quirks for your device in drivers/pci/quirks.c
and or architecture specific quirks file. If you see your device in
there, then our patch is likely to solve your problem.

-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-17 21:38               ` H. Peter Anvin
@ 2008-01-24 20:22                 ` Eric W. Biederman
  2008-01-24 21:36                   ` H. Peter Anvin
  0 siblings, 1 reply; 50+ messages in thread
From: Eric W. Biederman @ 2008-01-24 20:22 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Siddha, Suresh B, Ingo Molnar, Andreas Herrmann3,
	Venki Pallipadi, ak, ebiederm, rdreier, torvalds, gregkh,
	airlied, davej, tglx, akpm, arjan, jesse.barnes, davem,
	linux-kernel

"H. Peter Anvin" <hpa@zytor.com> writes:

> Siddha, Suresh B wrote:
>>
>> But then, this will cause an attribute conflicit. Old one was specifying
>> WB in PAT (ioremap with noflags) and the new ioremap specifies UC.
>>
>> As Linus mentioned, main problem is to figure out the correct attribute
>> for ioremap() which doesn't specify the actual attribute to be used.
>>
>> One mechanism to fix the issue generically (somewhat atleast) is to use
>> MTRR's and figure out the default MTRR attribute for that physical address
>> and use it for ioremap().
>>
>
> This is the matrix the CPU uses when combining MTRR and PAT behaviour. It
> probably makes sense to mimic:
>
>    | WB  WT  WC  UC
> ---+---------------
> WB | WB  WT  WC  UC
> WT | WT  WT  UC  UC
> WC | WC  UC  WC  UC
> UC | UC  UC  UC  UC
>
> With the current PAT encoding:
>
> WB = 00
> WT = 01
> WC = 10
> UC = 11
>
> ... this is simply a bitwise OR.  This makes sense, since one of the bits denies
> delaying writes (WT, UC), and the other denies delaying reads (WC, UC).

Almost.  There is a specific case and important where MTRR UC + page table WC == WC.

But yes.  For ioremap where we are WB + MTRR == MTRR we need to request the
same attributes as the e820 map, to get the attribute checking correct.

Eric

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes
  2008-01-24 20:22                 ` Eric W. Biederman
@ 2008-01-24 21:36                   ` H. Peter Anvin
  0 siblings, 0 replies; 50+ messages in thread
From: H. Peter Anvin @ 2008-01-24 21:36 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Siddha, Suresh B, Ingo Molnar, Andreas Herrmann3,
	Venki Pallipadi, ak, rdreier, torvalds, gregkh, airlied, davej,
	tglx, akpm, arjan, jesse.barnes, davem, linux-kernel

Eric W. Biederman wrote:
>>
>>    | WB  WT  WC  UC
>> ---+---------------
>> WB | WB  WT  WC  UC
>> WT | WT  WT  UC  UC
>> WC | WC  UC  WC  UC
>> UC | UC  UC  UC  UC
>>
>> With the current PAT encoding:
>>
>> WB = 00
>> WT = 01
>> WC = 10
>> UC = 11
>>
>> ... this is simply a bitwise OR.  This makes sense, since one of the bits denies
>> delaying writes (WT, UC), and the other denies delaying reads (WC, UC).
> 
> Almost.  There is a specific case and important where MTRR UC + page table WC == WC.
> 
> But yes.  For ioremap where we are WB + MTRR == MTRR we need to request the
> same attributes as the e820 map, to get the attribute checking correct.
> 

True; however, that shouldn't be followed for the case of conflicting 
attempts at mapping.

Now, I *believe* it is safe to have some mappings UC and some WC.  This 
is also something to keep in mind (there are legitimate applications for 
that particular form of aliasing, too.)  If so, we may not want to thump 
at those.

	-hpa

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2008-01-24 21:42 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-16  2:39 [patch 0/4] x86: PAT followup - Incremental changes and bug fixes venkatesh.pallipadi
2008-01-16  2:39 ` [patch 1/4] x86: PAT followup - Do not fold two bits in _PAGE_PCD venkatesh.pallipadi
2008-01-16  2:39 ` [patch 2/4] x86: PAT followup - Remove KERNPG_TABLE from pte entry venkatesh.pallipadi
2008-01-16  8:14   ` Mika Penttilä
2008-01-16 18:17     ` Pallipadi, Venkatesh
2008-01-17  0:18     ` Venki Pallipadi
2008-01-16  2:39 ` [patch 3/4] x86: PAT followup - Remove reserved pages mapping to zero page and not map them venkatesh.pallipadi
2008-01-16  2:39 ` [patch 4/4] x86: PAT followup - use ioremap for devmem read of reserved regions venkatesh.pallipadi
2008-01-16  7:33   ` Ingo Molnar
2008-01-16  7:29 ` [patch 0/4] x86: PAT followup - Incremental changes and bug fixes Ingo Molnar
2008-01-16 18:57 ` Andreas Herrmann
2008-01-16 19:05   ` Pallipadi, Venkatesh
2008-01-16 19:37   ` Pallipadi, Venkatesh
2008-01-16 20:24   ` Ingo Molnar
2008-01-16 20:33   ` Venki Pallipadi
2008-01-16 22:01     ` Andi Kleen
2008-01-16 22:14       ` Pallipadi, Venkatesh
2008-01-16 22:29         ` Andi Kleen
2008-01-17 19:12     ` Andreas Herrmann3
2008-01-17 19:54       ` Andreas Herrmann3
2008-01-17 20:36       ` Ingo Molnar
2008-01-17 20:33         ` H. Peter Anvin
2008-01-17 20:56           ` Ingo Molnar
2008-01-17 20:57           ` Linus Torvalds
2008-01-17 20:44         ` Ingo Molnar
2008-01-17 21:03         ` Andreas Herrmann3
2008-01-17 21:13           ` Ingo Molnar
2008-01-17 21:22             ` Ingo Molnar
2008-01-17 21:31             ` Siddha, Suresh B
2008-01-17 21:38               ` H. Peter Anvin
2008-01-24 20:22                 ` Eric W. Biederman
2008-01-24 21:36                   ` H. Peter Anvin
2008-01-17 21:42               ` Ingo Molnar
2008-01-17 22:06                 ` Andreas Herrmann3
2008-01-17 22:05                   ` H. Peter Anvin
2008-01-17 22:15                   ` Ingo Molnar
2008-01-17 22:52                     ` Andreas Herrmann3
2008-01-17 23:04                       ` Venki Pallipadi
2008-01-17 23:24                         ` Andreas Herrmann3
2008-01-17 23:42                           ` Pallipadi, Venkatesh
2008-01-18 16:10                         ` Andreas Herrmann3
2008-01-18 17:13                           ` Pallipadi, Venkatesh
2008-01-18 17:33                             ` Balbir Singh
2008-01-18  4:25               ` Andi Kleen
2008-01-17 21:42             ` Andreas Herrmann3
2008-01-17 22:13               ` Ingo Molnar
2008-01-17 22:16               ` Andreas Herrmann3
2008-01-17 22:26               ` Andreas Herrmann3
2008-01-17 22:35                 ` Ingo Molnar
2008-01-17 23:06                   ` Andreas Herrmann3

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).