Ankita Garg wrote:
Hi,

There is a testcase called 'pthread_kill_latency' under the rt-test suite on the the RT Wiki:

http://www.kernel.org/pub/linux/kernel/people/dvhart/realtime/tests/rt-test-0.3.tar.bz2

Description of the testcase: The test measures the latency involved in sending a signal to a thread using pthread_kill. Two threads are created, receiver thread (thread1) and sender thread (thread2). Before sending the signal, it waits for thread1 to initialize (thread1 waits by calling sigwait), notes the time and
send pthread_kill signal to thread1. thread1 notes the time it receives the
signal. The maximum and the minimum latency is reported. This is repeated
about 10000 times.

I'm looking at the source. The receiver thread runs with realtime priority (it's created with create_fifo_thread), but the sender thread (thread2) doesn't (create_other_thread). The sender does:

       /* Record the time just before sending the signal */
       begin = rt_gettime();
/**** The sender can get preempted by anything right here ! ****/
       if ((ret = pthread_kill(PTHREADOF(target_thread), SIGNALNUMBER))) {
           printf("pthread_kill returned %d\n", ret);
       }

Can this explain it?

Michal

-
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to