blob: 0b2c8fa658619d9599e25ec718db3b29418b4855 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# $Id$
This note documents results of my attempts to very carefully examine
behaviour of Timeouts in TAO on real-time OS (such as Linux with RT
patches) and to obtain a precise understand of behavior of timeouts.
I would like to document expected behavior precisely for each types of
timeouts.
I tested with min_timeout = 20msec and max_timout = 40 msec. This gives:
TimeBase::TimeT mid_value =
// convert from msec to "TimeT" (0.1 usec units)
10000 * (min_timeout + max_timeout) / 2;
CORBA::Any any_orb;
any_orb <<= mid_value; // 30 msec
CORBA::Any any_thread;
any_thread <<= mid_value + 10000; // midvalue + 1 msec = 31 msec
CORBA::Any any_object;
any_object <<= mid_value + 20000; // midvalue + 2 msec = 32 msec
Given this, exactly how many timeout at the ORB, thread, and object
level should I expect to observe?
If we assume communications to take some small delta_t value as compared
to 20-40msec intervals, I am expecting:
0 out of 21 timeouts with no TIMEOUT policy
10 out of 20 timeouts with ORB TIMEOUT policy = 30 msec
9 out of 20 timeouts with Thread TIMEOUT policy = 31 msec
8 out of 20 timeouts with object TIMEOUT policy = 32 msec
There are 21 calls with "no timeout" rather than 20 due to the extra
call to the server at the end just before the call to "shutdown" method.
This results in a total of 27 timeouts and 54 w/o timeouts.
Running this on Linux kernel 2.6.14Uniproc PREEMPT (Ingo Molnar patches)
the actual values match precisely. (The client.cpp is modified to track
each type of invocation separately.)
in_time_count[none]= 21 timeout_count[none]= 0
in_time_count[orb]= 10 timeout_count[orb]= 10
in_time_count[thread]= 11 timeout_count[thread]= 9
in_time_count[object]= 12 timeout_count[object]= 8
For a total of 27 timeouts and 54 w/o timeouts.
However, when I run the test of Linux 2.4.21-37.EL I observe
12 timeouts and 69 w/o timeout, since this is a non RT kernel. Thus,
please be aware of this issue when this test is run.
Gautam H. Thaker
Lockheed Martin Advanced Technology Labs
gthaker@atl.lmco.com
May 2006
|