From: Suresh <sur...@in...> - 2005-04-26 09:57:08
|
Hi I brought up uml with smp support. I used the vanilla kernel 2.4.20 and the patch uml-patch-2.4.20-1.bz2. I wrote a small kernel module. This module registers to netfilter hooks. and the netfilter callback function has the following callback functionality. if(smp_processor_id() == 0) spin_lock(&mylock); printk("the packet received on the smp %d\r\n,smp_processor_id()); return NF_ACCEPT; I am acquiring the lock when the smp_processor_id ==0 and, I am never releasing the lock. This lock is never acquired by any other processor. For the first packet that is recieved on the processor 0, the lock is acquired and not released. For the next packet that is received on the processor 0, the lock is again tried to be acquired. So it will spin on that lock. If the ping is continuing, then I expected that other processors would be processing the ping request. Only processor 0 would be spinning and other processors would be processing. But the uml hanged, the backtrace in the gdb shows process state of the cpu0. Is there any bug in my approach??? I would also like to know, what other processors are doing in the uml functionality. I could not understand how this can be done. Kindly show me the pointers. regards Suresh Suresh |