Changing Internal System Behavior

You can configure various RTSS Subsystem behaviors from the Change Internal System Behavior control panel page. See below for complete descriptions of the available settings.

NOTE: Some changes to the RTX64 Control Panel require a restart of the RTSS Subsystem. If the Subsystem needs to be restarted you will see a warning icon at the bottom of the page.

ClosedAccessing the Internal System Behavior options

The method you use to access these control panel options will depend on the operating system you are running.

To open the control panel in Windows 10 and Windows 8.1:

  1. From the Windows Apps menu, navigate to the RTX64 Runtime section and click the Control Panel tile.
  2. Click Configure the RTSS Subsystem > Change internal system behavior.

To open the control panel in Windows 7:

  1. Click the Start menu and then choose Control Panel.
  2. In the Windows control panel, select the System and Security category, and then click RTX64.
  3. Click Configure the RTSS Subsystem > Change internal system behavior.

 

Sections in this Topic:

Changing the Startup Type

Changing the HAL Timer Period

Changing the default Thread Time Quantum used by the Subsystem

Modifying the behavior of the Subsystem on TerminateThread calls

Modifying the Subsystem's use of Priority Inversion

Configuring Intel RDT (CAT/MBA) Model Settings

 

Changing the Startup Type

NOTE: This setting requires Windows Administrator privileges.

To change the Startup Type:

Select a Startup Type:

NOTE: On machines running Windows 10 or Windows 8.1, you must disable the Fast startup option when RTX64 is set to Automatic startup. To do this, follow the steps below:

  1. Open the Windows Control Panel in Small icons view.
  2. Click Power Options.
  3. Select Choose what the power button does.
  4. In the System Settings page, select Change settings that are currently unavailable.
  5. Under Shutdown, deselect Turn on fast startup.

Changing the HAL Timer Period

The RTX64 HAL Timer is the primary timer that the RTX64 Subsystem uses for all internal synchronization, timers and wait functionality . The default value for the subsystem HAL Timer Period is 100 microseconds. This value can be as low as 1 microsecond or as large as 1,000 microseconds.

This value can have an impact on the responsiveness of your subsystems and applications. Application timers can only have periods as small as the subsystem's HAL timer period or a multiple of it. For example if the HAL timer period is 50 you can create a timer with a period of 50, 100, 200, but not of 130. A value of 130 would be rounded up to 150.

NOTE: Use caution when setting the HAL timer period below 20 microseconds. If the HAL timer period is set too low it can inversely impact performance or cause your system to hang. Fully test the timer period you set with your real-time application on all systems on which you will deploy to verify that the hardware can accomplish the compilations required in the period set.

To change the HAL Timer Period:

  1. Select a period from the HAL timer period (microseconds) drop-down menu. The available values are:
  • 1000, 500, 200, 100 (default), 50, 20, 10, 5, 2, 1

If you have configured a custom HAL timer period not listed in the drop down menu, you can type it in.

  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all of the changes first and then restart RTX64 when you are finished.

Changing the Default Thread Time Quantum used by the Subsystem

RTX64 is configured to run the highest-priority thread, either until completion or until it yields. There is no round robin within a given priority level. To change this behavior and have RTX64 provide time slices within a priority level, set the default time quantum for all RTSS threads.

NOTE: If the thread time quantum value is less than the HAL timer period, RTX64 will set the interval to the same value as the HAL timer period. If the thread time quantum interval is greater than the HAL timer period, RTX64 will modulo up the HAL timer period. The thread time quantum interval must be a multiple of the HAL timer period.

To change the default Thread Time Quantum used by the Subsystem:

  1. Enter a positive integer value in the Time quantum (microseconds) box. A value of 0 (default) means that threads run to completion.

NOTE: An RTSS application can set its own Time Quantum through the use of RTAPI functions.

  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all of the changes first and then restart RTX64 when you are finished.

Modifying the Behavior of the Subsystem on TerminateThread Calls

The TerminateThread function causes an RTSS thread to exit. You can configure RTX64 to not free the memory used for an RTSS thread's stack when the thread is terminated. This is a useful setting when developing and debugging your applications.

To modify the behavior of the Subsystem on TerminateThread calls:

  1. Check the box for Free the Stack on TerminateThread calls to free the memory used for an RTSS thread's stack when that thread is terminated. If you do not want the memory to be freed, uncheck this box. The memory will be freed when the Subsystem stops.
  2. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all of the changes first and then restart RTX64 when you are finished.

Modifying the Subsystem's use of Priority Inversion

RTX64 thread scheduling behavior settings provide the option of selecting a priority inversion protocol. Priority inversion protocols are explained in the section on Thread Scheduling.

To modify the Subsystem's use of Priority Inversion:

  1. Check the box for Use priority inversion to utilize a tiered-demotion priority inversion protocol. Uncheck this box to disable priority inversion in the Subsystem.
  2. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all of the changes first and then restart RTX64 when you are finished.

Configuring Intel® Resource Director Technology (RDT) Settings

These settings allow you to enable/disable Intel® Resource Director Technology (RDT) performance optimization and configure the available RDT modes for Cache Allocation Technology (CAT) and Memory Bandwidth Allocation (MBA):

RDT uses Class of Service (CLOS) to configure the L3/L2 cache size and memory throttle (delay). As a matter of RTX64 policy for extensibility, CLOS 0 is considered and configured as the highest priority CLOS, followed by CLOS 1, and so on.

For more information, see Optimizing Performance with Intel Resource Director Technology (RDT).

NOTE: These options will be unavailable if the system hardware does not support Intel® RDT performance optimization.

To enable/disable Intel RDT performance optimization:

  1. Choose an option:
  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all of the changes first and then restart RTX64 when you are finished.

To change the CAT/MBA modes:

NOTE: RDT performance optimization must be enabled in order to change CAT/MBA modes.

  1. Choose a Cache Allocation Technology (CAT) mode:
  1. Choose a Memory Bandwidth Allocation (MBA) mode:

NOTE: Because the MBA controller is provided per core (the maximum of the delay values of the per-thread CLOS applies to the core), we recommend that you disable Hyper-Threading in the system BIOS when MBA is set to Priority-based.

  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all of the changes first and then restart RTX64 when you are finished.

Related Topics: