Dedicated core 1 to NIC functionality
authorKevin Klues <klueska@ros-dev.(none)>
Thu, 1 Apr 2010 00:37:23 +0000 (17:37 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:39 +0000 (17:35 -0700)
kern/arch/i686/ne2k.c
kern/src/process.c

index c4a429d..0d49ff9 100644 (file)
@@ -199,7 +199,7 @@ void ne2k_setup_interrupts() {
        // Kernel based interrupt stuff
        register_interrupt_handler(interrupt_handlers, KERNEL_IRQ_OFFSET + ne2k_irq, ne2k_interrupt_handler, (void *)0);
        
-       ioapic_route_irq(ne2k_irq, 6);  
+       ioapic_route_irq(ne2k_irq, 1);  
        
        SET_PAGE_0();
 
index 285788a..53c73ff 100644 (file)
@@ -182,11 +182,12 @@ void proc_init(void)
        pid_hash = create_hashtable(100, __generic_hash, __generic_eq);
        spin_unlock(&pid_hash_lock);
        schedule_init();
-       /* Init idle cores.  core 0 is not idle, all others are (for now) */
+       /* Init idle cores. Core 0 is the management core, and core 1 is
+     * dedicated to the NIC currently */
        spin_lock(&idle_lock);
-       num_idlecores = num_cpus - 1;
+       num_idlecores = num_cpus - 2;
        for (int i = 0; i < num_idlecores; i++)
-               idlecoremap[i] = i + 1;
+               idlecoremap[i] = i + 2;
        spin_unlock(&idle_lock);
        atomic_init(&num_envs, 0);
 }