summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-08-23 08:56:42 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-08-23 08:56:42 +0000
commita1c97a0fd2bddb650b41de22f0fc2c36b6336e4c (patch)
tree008bac863ca3e34d5ad405da5552a6a800118e21
parentda2c85fecb85698e813dceb2b4756c0d39a5cf73 (diff)
downloadATCD-a1c97a0fd2bddb650b41de22f0fc2c36b6336e4c.tar.gz
*** empty log message ***
-rw-r--r--TAO/docs/Options.html17
-rw-r--r--TAO/threadpool-changes90
2 files changed, 97 insertions, 10 deletions
diff --git a/TAO/docs/Options.html b/TAO/docs/Options.html
index 95e9b985b5a..969ab823447 100644
--- a/TAO/docs/Options.html
+++ b/TAO/docs/Options.html
@@ -933,17 +933,26 @@ superseded by <code><A HREF="#-ORBReactorType">-ORBReactorType</A></code>.
<TD><CODE>-ORBSchedPolicy</CODE> <EM>policy</EM></TD>
<TD><a name="-ORBSchedPolicy"></a>
Specify the scheduling policy used for the priority mapping
- computations.
+ computations and to specify the scheduling policy used when
+ creating RTCORBA threads.
Priority mappings map the CORBA priority range (from 0 to 32767)
into the native OS priority range, but in some operating systems
the range depends on the scheduling policy used.
- Using this option the user can set the scheduling policy, valid
- values as <B>SCHED_OTHER</B>, <B>SCHED_FIFO</B> and
- <B>SCHED_RR</B>, notice that in some operating systems some of
+ Valid values are <B>SCHED_OTHER</B>, <B>SCHED_FIFO</B> and
+ <B>SCHED_RR</B>. Default to <B>SCHED_OTHER</B>. Note that in
+ some operating systems some of
the scheduling policies require super user privileges.
</TD>
</TR>
<TR>
+ <TD><CODE>-ORBScopePolicy</CODE> <EM>scope</EM></TD>
+ <TD><a name="-ORBScopePolicy"></a>
+ Specify the scheduling scope used when creating RTCORBA threads.
+ Valid values are: <B>PROCESS</B> and <B>SYSTEM</B>. Defaults to
+ <B>PROCESS</B>.
+ </TD>
+</TR>
+<TR>
<TD><CODE>-ORBPriorityMapping</CODE> <EM>mapping_type</EM></TD>
<TD><a name="-ORBPriorityMapping"></a>
Select the priority mapping to use.
diff --git a/TAO/threadpool-changes b/TAO/threadpool-changes
index 71d11e6f270..8f903ab737b 100644
--- a/TAO/threadpool-changes
+++ b/TAO/threadpool-changes
@@ -181,6 +181,10 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
<allow_borrowing> are disabled since we do not support
them.
+ - (create_dynamic_threads): In addition to the default flags
+ (THR_NEW_LWP and THR_JOINABLE), add in flags to set the
+ scope and scheduling policies when creating RT threads.
+
* tao/RTCORBA/RT_Protocols_Hooks.cpp
(set_default_server_protocol_policy): Don't include all the
protocols that the ORB knows about in the default server
@@ -199,6 +203,21 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
- (Initializer): Removed.
+ - (init): Handle the scheduling policy variable in terms of
+ THR_SCHED_* values instead of ACE_SCHED_* values since
+ ACE_OS::thr_create expects THR_SCHED_* values.
+
+ However, ACE_Sched_Params::priority_min() and
+ ACE_Sched_Params::priority_max() expect ACE_SCHED_*
+ values. Therefore, a conversion from THR_SCHED_* values
+ to ACE_SCHED_* values is done in
+ TAO_RT_ORBInitializer::pre_init().
+
+ Also, added the ability for the user to specify the
+ scheduling scope of the RT threads through the new
+ ORBScopePolicy option. The option supports the PROCESS
+ and SYSTEM scopes with PROCESS being the default.
+
* tao/RTCORBA/RT_ORB.cpp:
- (TAO_RT_ORB): Cache the <tp_manager> from the
@@ -208,6 +227,9 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
RT_Thread_Lane_Resources_Manager_Factory with the service
configurator.
+ - (TAO_RT_CORBA_Priority_Normalizer): Removed since it was no
+ longer needed.
+
* tao/RTCORBA/RT_Mutex.cpp (try_lock): Make sure that
mutex::tryacquire() returning -1 with errno == EBUSY is not
flagged as an error.
@@ -224,6 +246,21 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
TAO_RT_Default_Endpoint_Selector so that we are sure to
take private connection into account.
+ * tao/RTCORBA/Direct_Priority_Mapping.cpp:
+ * tao/RTCORBA/Linear_Priority_Mapping.cpp:
+
+ - Removed special code in the constructors that was added to
+ handle incorrect priorities reported by
+ ACE_Sched_Params::priority_min() and
+ ACE_Sched_Params::priority_max(). This code was not
+ needed after Joe's fixes.
+
+ - Changed <policy_> type from int to long.
+
+ * tao/RTCORBA/RT_ORBInitializer.cpp (pre_init): Set the
+ scheduling policy and scope policy into ORB Parameters.
+ Also, converted THR_SCHED_* values into ACE_SCHED_* values.
+
* tao/RTCORBA/RTCORBA.cpp:
- (init): Removed: functionality moved to the constructor.
@@ -304,6 +341,9 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
- (poa_extension_initializer): Removed since it was no longer
needed.
+ - (TAO_CORBA_Priority_Normalizer): Removed since it was no
+ longer needed.
+
- (resource_factory_from_service_config_,
client_factory_from_service_config_,
server_factory_from_service_config_):
@@ -323,6 +363,9 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
* tao/ORB.cpp (create_stub_object): Removed unused method. In
addition, stub creation really belongs to the POA.
+ * tao/param.cpp: Added the scheduling policy and scope policy
+ for RTCORBA threads created by the ORB.
+
* tao/Tagged_Profile.cpp (extract_object_key):
* tao/IIOP_Transport.cpp (set_bidir_context_info):
@@ -587,10 +630,6 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
Removed Reactor_Per_Priority.
- * tests/RTCORBA/check_supported_priorities.cpp: Common check
- used by several RT tests to make sure multiple priorities
- are supported.
-
* tests/RTCORBA/Policy_Combinations: New test added that
combines and tests several RT policies in different ways.
@@ -630,6 +669,41 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
With Lanes YES CLIENT_PROPAGATED
With Lanes YES SERVER_DECLARED
+ * tests/RTCORBA/Linear_Priority: This is a test for the Linear
+ Priority mapping in TAO. In addition, this test combines
+ and tests several RT policies in different ways. This test
+ can also be used for testing the different scheduling
+ policies (e.g., FIFO, RR, OTHER) by using the ORBSchedPolicy
+ and ORBScopePolicy options in svc.conf file.
+
+ - The server can be setup to use bands or no bands and
+ thread lanes or no lanes.
+
+ - The client can be setup to use bands or no bands and
+ different invocation priorities. It creates a thread for
+ each invocation priority and issues multiple requests to
+ the server from each thread.
+
+ - The following policy combinations are tested in this
+ example:
+ __________________________________________________
+
+ Server-side Thread Client-side Multi-priority
+ Bands Lanes Bands Clients
+ __________________________________________________
+
+ NO NO NO NO
+ YES NO NO NO
+ NO YES NO NO
+ YES YES NO NO
+ NO NO YES NO
+ NO YES YES NO
+ NO NO NO YES
+ YES NO NO YES
+ YES YES NO YES
+ NO NO YES YES
+ NO YES YES YES
+
* tests/RTCORBA/Thread_Pool:
- server.cpp: Associated the thread pools with POAs.
@@ -758,8 +832,9 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
- README: Updated to reflect changes in the test.
- * tests/RTCORBA/check_supported_priorities.cpp: New file for
- checking support for multiple priority levels.
+ * tests/RTCORBA/check_supported_priorities.cpp: Common check
+ used by several RT tests to make sure multiple priorities
+ are supported.
* tests/RTCORBA/RTCORBA_tests.dsw:
* tests/RTCORBA/Makefile:
@@ -812,3 +887,6 @@ Fri Aug 17 18:08:37 2001 Irfan Pyarali <irfan@cs.wustl.edu>
Updated RTCORBA documentation to reflect new thread-pool
support.
+
+ * docs/Options.html: Added documentation for new
+ -ORBScopePolicy option. \ No newline at end of file