Hi, I have a multi-threaded application that communicates with a kernel module using netlink sockets. One of the threads in user mode application works as a server and kernel module works as a client. Roughly the kernel code is as follows: -------------------------8<------------------------------------------------8<------------------------------------- timeout = 3500; netlink_unicast(); __set_current_state(TASK_INTERRUPTIBLE); wait: timeout = schedule_timeout(timeout); __set_current_state(TASK_RUNNING); if (!timeout) { printk(KERN_ERR "No response received\n"); return -1; } if (message_status != UPDATED) { printk(KERN_ERR "Somebody woke us up before we got a reply. Time left %d\n", timeout); __set_current_state(TASK_INTERRUPTIBLE); goto wait; } -------------------------8<------------------------------------------------8<------------------------------------- The message_status variable is updated in the netlink callback when the user mode application replies to this message. So basically the idea is to send a message and then wait at max timeout jiffies for the reply. Now, using gdb, if I add a break point in any function that is called by netlink server thread in user mode, the break point is never hit and the kernel log is flooded with messages like -------------------------8<------------------------------------------------8<------------------------------------- Somebody woke us up before we got a reply. Time left 3499 Somebody woke us up before we got a reply. Time left 3499 Somebody woke us up before we got a reply. Time left 3499 Somebody woke us up before we got a reply. Time left 3499 .. .. Somebody woke us up before we got a reply. Time left 3498 -------------------------8<------------------------------------------------8<------------------------------------- Until I finally get -------------------------8<------------------------------------------------8<------------------------------------- No response received -------------------------8<------------------------------------------------8<------------------------------------- What is causing the kernel thread to wake up from the timeout and how should I debug the user mode code? -- Best Regards, Ranjan PS: I am using 2.6.32-71.el6.x86_64 on RHEL 6.0 _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies