Re: [expert] enable SMP

2000-03-06 Thread Bill Beauchemin

On Sun, 5 Mar 2000, John D. Kim wrote:

 Make sure you have RTC option enabled and APMD disabled.
 
 On Sun, 5 Mar 2000, Bill Beauchemin wrote:
 


Yep been there done that.


  Im having a bit of a problem trying to compile 2.2.13 for smp. My machine
  is a dual 166 ppro w/160m ram on a intel mother board that has the AIC7870
  controller on board. I also am running a Intel EE pro100 nic. The problem
  is as soon as it shows both cpu's during startup it crashes. 
 

Bill Beauchemin
Sunnyvale MDC Control Center
GlobalCenter
(a Global Crossing company)
888-541-9888





Re: [expert] enable SMP

2000-03-06 Thread Bill Beauchemin

Oh just ot add I useed 2.2.14 this morning with the same results.

Bill Beauchemin
Sunnyvale MDC Control Center
GlobalCenter
(a Global Crossing company)
888-541-9888





Re: [expert] enable SMP

2000-03-06 Thread John Aldrich

On Mon, 06 Mar 2000, you wrote:

 Whats the patch? How do you do the noapic at lilo? What the hell is APIC?
 
Ok. Here's the patch. It's for kernel  2.3.45. You need to
install THAT kernel, and then patch it with the attached
patch (my apologies to the list for sending a binary...)

I'm not sure WHAT APIC is, but to use it at LILO, just type
"boot image name noapic", i.e. "linux noapic" and hit
enter.
John

--- linux/include/asm-i386/pgtable.h.orig3	Mon Feb 14 09:59:19 2000
+++ linux/include/asm-i386/pgtable.h	Mon Feb 14 09:59:22 2000
@@ -130,7 +130,8 @@
  * area for the same reason. ;)
  */
 #define VMALLOC_OFFSET	(8*1024*1024)
-#define VMALLOC_START	(((unsigned long) high_memory + VMALLOC_OFFSET)  ~(VMALLOC_OFFSET-1))
+#define VMALLOC_START	(((unsigned long) high_memory + 2*VMALLOC_OFFSET-1)  \
+		~(VMALLOC_OFFSET-1))
 #define VMALLOC_VMADDR(x) ((unsigned long)(x))
 #define VMALLOC_END	(FIXADDR_START)
 
--- linux/arch/i386/mm/init.c.orig3	Mon Feb 14 09:46:02 2000
+++ linux/arch/i386/mm/init.c	Mon Feb 14 09:56:57 2000
@@ -307,27 +307,30 @@
 	pmd_t *pmd;
 	pte_t *pte;
 	int i, j, k;
-	unsigned long vaddr;
-	unsigned long end = (unsigned long)__va(max_low_pfn*PAGE_SIZE);
+	unsigned long vaddr, end;
 
-	pgd_base = swapper_pg_dir;
+	end = (unsigned long)__va(max_low_pfn*PAGE_SIZE) - 1;
 
-	vaddr = PAGE_OFFSET;
-	i = __pgd_offset(vaddr);
+	i = __pgd_offset(PAGE_OFFSET);
+	pgd_base = swapper_pg_dir;
 	pgd = pgd_base + i;
 
-	for (; (i  PTRS_PER_PGD)  (vaddr = end); pgd++, i++) {
+	for (; i  PTRS_PER_PGD; pgd++, i++) {
 		vaddr = i*PGDIR_SIZE;
+		if (vaddr = end)
+			break;
 #if CONFIG_X86_PAE
-		pmd = (pmd_t *) alloc_bootmem_low_pages(PAGE_SIZE);
+		pmd = (pmd_t *) alloc_bootmem_pages(PAGE_SIZE);
 		set_pgd(pgd, __pgd(__pa(pmd) + 0x1));
 #else
 		pmd = (pmd_t *)pgd;
 #endif
 		if (pmd != pmd_offset(pgd, 0))
 			BUG();
-		for (j = 0; (j  PTRS_PER_PMD)  (vaddr = end); pmd++, j++) {
+		for (j = 0; j  PTRS_PER_PMD; pmd++, j++) {
 			vaddr = i*PGDIR_SIZE + j*PMD_SIZE;
+			if (vaddr = end)
+break;
 			if (cpu_has_pse) {
 unsigned long __pe;
 
@@ -349,10 +352,10 @@
 			if (pte != pte_offset(pmd, 0))
 BUG();
 
-			for (k = 0;
-(k  PTRS_PER_PTE)  (vaddr = end);
-	pte++, k++) {
+			for (k = 0; k  PTRS_PER_PTE; pte++, k++) {
 vaddr = i*PGDIR_SIZE + j*PMD_SIZE + k*PAGE_SIZE;
+if (vaddr = end)
+	break;
 *pte = mk_pte_phys(__pa(vaddr), PAGE_KERNEL);
 			}
 		}
--- linux/arch/i386/kernel/io_apic.c.orig3	Mon Feb 14 09:34:59 2000
+++ linux/arch/i386/kernel/io_apic.c	Mon Feb 14 09:35:02 2000
@@ -1406,7 +1406,6 @@
 {
 	if (!smp_found_config)
 		return;
-	phys_cpu_present_map = 0xff;
 	setup_local_APIC();
 	setup_IO_APIC();
 	setup_APIC_clocks();



Re: [expert] enable SMP

2000-03-06 Thread minnrp01

IIRC, APIC is the part of the chipset that controls SMP.  Can you run in
SMP mode if you use noapic?

On Mon, 6 Mar 2000, John Aldrich wrote:

 On Mon, 06 Mar 2000, you wrote:
 
  Whats the patch? How do you do the noapic at lilo? What the hell is APIC?
  
 Ok. Here's the patch. It's for kernel  2.3.45. You need to
 install THAT kernel, and then patch it with the attached
 patch (my apologies to the list for sending a binary...)
 
 I'm not sure WHAT APIC is, but to use it at LILO, just type
 "boot image name noapic", i.e. "linux noapic" and hit
 enter.
   John


--- linux/include/asm-i386/pgtable.h.orig3	Mon Feb 14 09:59:19 2000
+++ linux/include/asm-i386/pgtable.h	Mon Feb 14 09:59:22 2000
@@ -130,7 +130,8 @@
  * area for the same reason. ;)
  */
 #define VMALLOC_OFFSET	(8*1024*1024)
-#define VMALLOC_START	(((unsigned long) high_memory + VMALLOC_OFFSET)  ~(VMALLOC_OFFSET-1))
+#define VMALLOC_START	(((unsigned long) high_memory + 2*VMALLOC_OFFSET-1)  \
+		~(VMALLOC_OFFSET-1))
 #define VMALLOC_VMADDR(x) ((unsigned long)(x))
 #define VMALLOC_END	(FIXADDR_START)
 
--- linux/arch/i386/mm/init.c.orig3	Mon Feb 14 09:46:02 2000
+++ linux/arch/i386/mm/init.c	Mon Feb 14 09:56:57 2000
@@ -307,27 +307,30 @@
 	pmd_t *pmd;
 	pte_t *pte;
 	int i, j, k;
-	unsigned long vaddr;
-	unsigned long end = (unsigned long)__va(max_low_pfn*PAGE_SIZE);
+	unsigned long vaddr, end;
 
-	pgd_base = swapper_pg_dir;
+	end = (unsigned long)__va(max_low_pfn*PAGE_SIZE) - 1;
 
-	vaddr = PAGE_OFFSET;
-	i = __pgd_offset(vaddr);
+	i = __pgd_offset(PAGE_OFFSET);
+	pgd_base = swapper_pg_dir;
 	pgd = pgd_base + i;
 
-	for (; (i  PTRS_PER_PGD)  (vaddr = end); pgd++, i++) {
+	for (; i  PTRS_PER_PGD; pgd++, i++) {
 		vaddr = i*PGDIR_SIZE;
+		if (vaddr = end)
+			break;
 #if CONFIG_X86_PAE
-		pmd = (pmd_t *) alloc_bootmem_low_pages(PAGE_SIZE);
+		pmd = (pmd_t *) alloc_bootmem_pages(PAGE_SIZE);
 		set_pgd(pgd, __pgd(__pa(pmd) + 0x1));
 #else
 		pmd = (pmd_t *)pgd;
 #endif
 		if (pmd != pmd_offset(pgd, 0))
 			BUG();
-		for (j = 0; (j  PTRS_PER_PMD)  (vaddr = end); pmd++, j++) {
+		for (j = 0; j  PTRS_PER_PMD; pmd++, j++) {
 			vaddr = i*PGDIR_SIZE + j*PMD_SIZE;
+			if (vaddr = end)
+break;
 			if (cpu_has_pse) {
 unsigned long __pe;
 
@@ -349,10 +352,10 @@
 			if (pte != pte_offset(pmd, 0))
 BUG();
 
-			for (k = 0;
-(k  PTRS_PER_PTE)  (vaddr = end);
-	pte++, k++) {
+			for (k = 0; k  PTRS_PER_PTE; pte++, k++) {
 vaddr = i*PGDIR_SIZE + j*PMD_SIZE + k*PAGE_SIZE;
+if (vaddr = end)
+	break;
 *pte = mk_pte_phys(__pa(vaddr), PAGE_KERNEL);
 			}
 		}
--- linux/arch/i386/kernel/io_apic.c.orig3	Mon Feb 14 09:34:59 2000
+++ linux/arch/i386/kernel/io_apic.c	Mon Feb 14 09:35:02 2000
@@ -1406,7 +1406,6 @@
 {
 	if (!smp_found_config)
 		return;
-	phys_cpu_present_map = 0xff;
 	setup_local_APIC();
 	setup_IO_APIC();
 	setup_APIC_clocks();



[expert] enable SMP

2000-03-05 Thread Bill Beauchemin

Im having a bit of a problem trying to compile 2.2.13 for smp. My machine
is a dual 166 ppro w/160m ram on a intel mother board that has the AIC7870
controller on board. I also am running a Intel EE pro100 nic. The problem
is as soon as it shows both cpu's during startup it crashes. 

Bill Beauchemin
Sunnyvale MDC Control Center
GlobalCenter
(a Global Crossing company)
888-541-9888





Re: [expert] enable SMP

2000-03-05 Thread John D. Kim

Make sure you have RTC option enabled and APMD disabled.

On Sun, 5 Mar 2000, Bill Beauchemin wrote:

 Im having a bit of a problem trying to compile 2.2.13 for smp. My machine
 is a dual 166 ppro w/160m ram on a intel mother board that has the AIC7870
 controller on board. I also am running a Intel EE pro100 nic. The problem
 is as soon as it shows both cpu's during startup it crashes. 
 
 Bill Beauchemin
 Sunnyvale MDC Control Center
 GlobalCenter
 (a Global Crossing company)
 888-541-9888
 
 
 



Re: [expert] enable SMP

2000-03-05 Thread John Aldrich

On Sun, 05 Mar 2000, you wrote:
 Im having a bit of a problem trying to compile 2.2.13 for smp. My machine
 is a dual 166 ppro w/160m ram on a intel mother board that has the AIC7870
 controller on board. I also am running a Intel EE pro100 nic. The problem
 is as soon as it shows both cpu's during startup it crashes. 
 
I had that problem too. Someone sent me a patch for a kernel, but,
not knowing enough about how to use it, I haven't yet. The solution
(that *I* found) was to boot with a "noapic" option at LILO. It
complains, but at least it boots. But I've got other problems which
keep me from booting to SMP on my Dual-200 PPro board.
John