Hi, I am interested in slowing down the flow of time on a per-task basis for emulation purposes. This means that when a task calls sleep(1), it should be made to believe that it has indeed slept for 1 second, but in real time, it should be slowed down to a configurable parameter (say 10 seconds). Let the ratio of real time passed for every second of virtual time be the "time dilation" factor. >From the looks of it, it seems like intercepting all system calls from a task (using ptrace) and manipulating all timer related calls would suffice. But then, the kernel also creates timers indirectly, for e.g., in the network stack: retransmission timers, delack timers, etc. I would like to trace those indirect timers as well. One approach would be to hook into all timer calls from the TCP stack (say) and manipulate the values for the timers accordingly. The 4 main timers that I've seen are: Retransmit timer, DelAck timer, Zero Window Probe timer and KeepAlive timer. Apart from this, the packets are also timestamped and this would also have to change. Since I would like to change the timers only for certain processes.. I would like to know how to identify the pid of the process that owns a socket, from struct sock *sk. Wrapping the whole kernel inside a VM and faking the global timer interrupt would be a simpler way to go, but I would like to have a lightweight mechanism, without the hassles of setting and configuring a VM, etc. If there are other simpler approaches, please let me know! Thanks, -- Vimal -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ