RTX Configuration 1 - Basic Setup

The following settings are basic to using RTX and must be configured. Some settings are supported by the installer wizard that installs WMX3.

RTX Core Assignment

RTX operation requires a dedicated core for real-time processing.

To assign RTX cores to the system, use the following RTX utility.

C:\Program Files\IntervalZero\Common\bin\RTX64ActivationGUI.exe

../_images/WMXDOC_SUPPORT_SPEC_RTXCONFIG_COREASSIGN_image0.png

Core allocation should consider the following:

  • The number of cores required for WMX3 (1 is sufficient as a minimum, + User usage (if any)).

  • The number of cores allowed by the RTX license (for the standard WMX3 product, RTX3.x version: 1, RTX4.x version: 2. It depends on the purchase specification.)

  • Avoiding L2 cache conflicts between RTX cores and Windows cores.

  • Avoiding assignment RTX cores to Efficient-cores, assign to Performance-cores.

  • If there are too many Windows cores relative to the RTX cores, set the unused cores appropriately; if there are too many Windows cores, overload the front side bus (bus connecting the CPU cores to RAM, a limited resource that is much slower than the CPU cores) with Windows cores, RTX cores may cause access delays from RTX cores to main memory.

RTX HAL Timer and Startup Type

RTX works in a specific HAL (Hardware Abstract Layer) timer context.

WMX3, which uses the RTX-API, cannot operate with real-time precision beyond at least RTX’s HAL timer.

Optimize HAL Timer for the communication cycle to be set for the platform module. If the communication cycle is not changed from the default (1ms) or longer, HALTimer 100us (default) is appropriate, so no change is necessary.

Communication Cycle

HAL Timer

Remarks

1ms or longer

100us

500us

50us

250us

20us

The HAL Timer combo box allows text entry. 25us is more optimal for 250us cycle.

125us

10us

5us is better but will overload Winodows system

Startup Type is the RTX startup type.

If set to “Auto” startup, the RTX subsystem will start with Windows startup. It is recommended to “Manual” this setting to avoid system instability and problems with the system not booting.

The following shows how to set up each RTX version.

RTX3.x:

To configure RTX HAL Timer and Startup Type, use the following RTX utility.

C:\Program Files\IntervalZero\RTX64\bin\RTX64ControlPanel.exe -> “Configure the RTSS Subsystem” -> “Change internal system behavior”

../_images/WMXDOC_SUPPORT_SPEC_RTXCONFIG_HAL_image0.png

RTX4.x:

To configure RTX HAL Timer and Startup Type, use the following RTX utility.

C:\Program Files\IntervalZero\RTX64\bin\RTX64ControlPanel.exe -> “Configure the RTSS Subsystem” -> “Change Internal System Behavior”

../_images/WMXDOC_SUPPORT_SPEC_RTXCONFIG_HAL_image1.png

RTX Memory Assignment

RTX operation requires a dedicated memory space for real-time processing.

In RTX3.x, all memory is managed in one pool. In RTX4.x, on the other hand, each pool is managed by its own pool size. The following table shows the typical values for WMX3; if you have a special WMX3 feature that consumes a lot of memory or if you want to run user applications in RTX space, you will need to add them to the memory sizes below.

The following shows how to set up each RTX version.

RTX3.x:

To assign memory space, use the following RTX utility.

C:\Program Files\IntervalZero\RTX64\bin\RTX64ControlPanel.exe -> “Configure the RTSS Subsystem” -> “Configure Memory Allocation Behavior”

Parameter

Recommended Value

Remarks

Memory Allocation

Request from local memory pool (deterministic)

“Request from windows” may impair deterministic behavior.

Local memory pool size (killobytes)

524,288[kByte]

Auto Expand

Enable

Auto Expand Size (killobytes)

102,400[kByte]

../_images/WMXDOC_SUPPORT_SPEC_RTXCONFIG_MEMASSIGN_image0.png

RTX4.x:

To assign memory space, use the following RTX utility.

C:\Program Files\IntervalZero\RTX64\bin\RTX64ControlPanel.exe -> “Configure the RTSS Subsystem” -> “Manage memory”

Parameter

Recommended Value

Remarks

Memory Allocation

Request from local memory pool (deterministic)

“Request from windows” may impair deterministic behavior.

Process memory allocation space Minimum size (External)

217,088[kByte]

Memory usage by C-Runtime libs (new, malloc, realloc, calloc, etc.) Memory usage by RtAllocateLocalMemory(Ex) Memory usage by HeapAlloc/HeapReAlloc Memory usage by VirtualAlloc Memory usage by RtAllocateLockedMemory

Process memory allocation space Minimum size (Internal)

102,400[kByte]

Memory usage by RtCreateProcess stack RtCreateThreads stack

Process memory Auto Expand

Enable

If memory is insufficient, the pool is automatically expanded from the initial value.

Process memory Auto Expand Size (killobytes)

102,400[kByte]

System Process memory allocation space Minimum size (External)

102,088[kByte]

Memory usage by RtCreateSharedMemory

System Process memory allocation space Minimum size (Internal)

102,400[kByte]

Memory usage by RtCreateEvent, RtCreateSemaphore Memory usage by Rtss application program code body(.rtss and .rtdd size)

System Process memory Auto Expand

Enable

System Process memory Auto Expand Size (killobytes)

102,400[kByte]

If memory is insufficient, the pool is automatically expanded from the initial value.

System Process - Commit at Subsystem startup

Enable

../_images/WMXDOC_SUPPORT_SPEC_RTXCONFIG_MEMASSIGN_image1.png

For additional information of RTX4.x memory space, please refer to the following technical note of IntervalZero (the developer of RTX).

https://help.intervalzero.com/product_help/RTX64_4/Content/Topics/Application%20Development/UsingFunctionality/LocalMemory.htm

Disable RT-TCP/IP

WMX3 does not use the RTX standard RT-TCP/IP stack.

The RTX startup sequence is that the RT-TCP/IP stack starts first, followed by the RTX subsystem.

In some scenarios, the RT-TCP/IP stack may not start, in which case the subsystem will not start either.

To mitigate such risks, it is strongly recommended to disable the RT-TCP/IP stack if it is not needed.

The following shows how to set up each RTX version.

RTX3.x:

To configure RT-TCP/IP stack, use the following RTX utility.

C:\Program Files\IntervalZero\RTX64\bin\RTX64ControlPanel.exe -> “Configure the RT-TCP/IP Stack” -> “Configure RT-TCP/IP Stack Behavior”

Please disable “Start the RT-TCP/IP Stack with the RTSS Subsystem”.

../_images/WMXDOC_SUPPORT_SPEC_RTXCONFIG_RTTCP_image0.png

RTX4.x:

To configure RT-TCP/IP stack, use the following RTX utility.

C:\Program Files\IntervalZero\RTX64\bin\RTX64ControlPanel.exe -> “Configure and control the network”

Please disable “Start with the Subsystem” and “Start with the NAL”.

../_images/WMXDOC_SUPPORT_SPEC_RTXCONFIG_RTTCP_image1.png

NIC Device Configuration

The RTX device driver must be assigned to the network card that WMX3 uses for communication.

Enter the following system definition file into the Specify Driver File screen to update the device driver.

C:\Program Files\IntervalZero\RTX64\inf\rtx64pnpnet.inf

When using PCI Express devices that support MSI, interrupts can be handled by MSI without requiring IRQ (interrupt line) resources.

If the device is not listed as “Only line-based” in the NIC Compatibility Table, uncheck the “Use line-based interrupt” checkbox in the device properties to apply the MSI/MSI-x interrupt method and prevent performance degradation due to interrupt contention.

../_images/WMXDOC_SETUP_RTX_TUNNING_image0.png