Re: [expert] enable SMP
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
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
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
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
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
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
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
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
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