Re: [expert] enable SMP

2000-03-06 Thread John Aldrich

On Mon, 06 Mar 2000, you wrote:
> 
> IIRC, APIC is the part of the chipset that controls SMP.  Can you run in
> SMP mode if you use noapic?
> 
Yep. Sure can. 
John



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
> " 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 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
" 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 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 Bill Beauchemin




On Sun, 5 Mar 2000, John Aldrich wrote:

> 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
> 
Funny you mentioned the APIC. here is the last couple of lines during the
boot proceses.

Kernel Panic. Kernel compiled for PPro+ assumes local APIC without
read-before write bug

In Swapper task Not Syncing.


It stops right there.

Whats the patch? How do you do the noapic at lilo? What the hell is APIC?




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





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-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



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
> 
> 
> 



[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