Optimizing the Subsystem for Deployment

By default, the Runtime is provided for usability and is not necessarily optimized for performance. The tables below list recommended Subsystem configuration settings for deploying wRTOS Runtime with your product. You can configure these settings in wRTOS Settings or programmatically using the wRTOS Configuration and Control (RTFW) library or Managed library to improve Subsystem and application performance.

For deployment systems running Windows 10 or Windows 11, we recommend their respective Long Term Servicing Channel (LTSC) versions.

General Behavior Settings

wRTOS Settings Recommended Value for Deployment

HAL Timer Period

Your application's Timer Period must always be a multiple of the HAL Timer Period. The default HAL Timer Period is 100.

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.

The Time Quantum and Watchdog Timer settings are dependent on the HAL Timer Period. All component timers (NL2, TCP/IP, E-CAT, etc.) are also dependent.

Default time quantum for all RTSS threads

0 (disabled, all threads run to completion; default)

Note: If the thread time quantum value is less than the HAL timer period, wRTOS 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, wRTOS will modulo up the HAL timer period. The thread time quantum interval must be a multiple of the HAL timer period.

Free the Stack on a TerminateThread call

ON (free the Thread Stack on a TerminateThread call)

Use priority inversion

ON (use priority inversion; default)

Enable performance optimization with Resource Director Technology (RDT)

Note: This functionality is hardware dependent.

Optimize performance (enabled)

  • Cache Allocation Technology (CAT) mode:
  • Flat performance mode (default) – All RTSS logical processors are equally configured with all RTSS L3/L2 caches.
  • Memory Bandwidth Allocation (MBA) mode:
  • Flat performance mode (default) – All RTSS cores are configured with minimum memory delay.

Exception Handling Settings

wRTOS Settings Recommended Value for Deployment

Exception behavior

Use Structured Exception Handling; terminate process on unhandled exception (default)

Watchdog Timer Settings

wRTOS Settings Recommended Value for Deployment

Monitor for runaway threads

OFF (default)

Power Management Settings

wRTOS Settings Recommended Value for Deployment

Enable Windows idle detection

OFF (default)

Note: To eliminate jitter with RTSS timer response latency, we recommend that you disable Windows idle detection. As a result, you may see 100% CPU usage in the Windows Task Manager when the Subsystem is running. There is no side effect on Windows load balancing for this type of 100% CPU usage.

Override Windows Processor Energy/Performance Bias

ON

Note: For optimal performance when running wRTOS on a laptop, we recommend that you convert Display adapters to Microsoft Basic Display Adapter in the Windows Device Manager. If you choose not to convert display adapters, you may experience latency.

Memory Settings

See the Memory page in wRTOS Settings for more information on these settings.

User Process

wRTOS Settings Recommended Value for Deployment

Minimum size for internal MSpace (kilobytes)

This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace.

Minimum size for external MSpace (kilobytes)

This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace.

Auto expand MSpaces

OFF

Auto shrink MSpaces

OFF

Zero memory on allocation

OFF

Subsystem

wRTOS Settings Recommended Value for Deployment

Subsystem process internal MSpace minimum (kilobytes)

This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace.

Commit at Subsystem startup

OFF

System process external MSpace minimum (kilobytes)

This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace.

Note: All process shared memory and IPC object memory allocations come from this value.

Auto expand MSpaces

OFF

Auto shrink MSpaces

OFF

Network Link Layer (NL2)

wRTOS Settings Recommended Value for Deployment

NL2 external MSpace minimum (kilobytes)

This value is based on the number of enabled interfaces. The minimum value is 64 kilobytes. The default value is 1024 kilobytes.

Auto expand MSpaces

OFF

TCP/IP

wRTOS Settings Recommended Value for Deployment

External MSpace minimum (kilobytes)

The minimum size of the TCP/IP Stack process's external MSpace.

Note: This value must be at least the TCP/IP heap allocation size plus 2176 kilobytes.

Memory allocated to the TCP/IP heap (kilobytes)

3072 kilobytes

Note: This memory is allocated from the External MSpace (see above), so the TCP/IP heap size MUST be 2176 KB less than the Minimum size for external MSpace (kilobytes) value if Auto expand MSpaces is set to OFF (see below).

The required memory depends on the number of interfaces and open sockets.

Auto expand MSpaces

OFF

Monitoring Settings

wRTOS Settings Recommended Value for Deployment

Monitor applications

OFF

Process Output Settings

Real-time Process Output

wRTOS Settings Recommended Value for Deployment

Display output in console windows

ON (default)

Note: Printing to the console is not deterministic. Remove printing from deployed applications if it is not needed.

Choose how to display output

Separate console window for each process (default)

Note: This option uses more memory than printing to a single console window.

Real-time Process Logging

wRTOS Settings Recommended Value for Deployment

Log process output

OFF (default)

Remote Access Settings

wRTOS Settings Recommended Value for Deployment

Allow remote debugging connections on this computer

OFF (default)

Related Topics: