Release Notes for RTX64 3.6
Key Features
General
- Added support for Windows 10 October Feature Update version 1809 and Long Term Servicing Channel (LTSC) version 2019. (7507)
Configuration
- Added a Subsystem validation feature that validates the RTSS boot configuration and warns when changes to the RTSS boot configuration will cause conflicts with existing ideal processor and affinity mask assignments. (7250)
Tools and Utilities
- Upgraded the Percepio Tracealyzer diagnostic tool to version 4, which includes:
- Revamped UI with added docking support for windows/views.
- A welcome page with a list of recent sessions.
- Improved Trace View to support common functionality in both vertical and horizontal views.
- Support for intervals and state machines.
- Query-based Finder window.
- The ability for Tracealyzer to display application pathnames for Windows proxy processes. (5414)
- Made improvements to monitoring and the Monitor utility:
- Added support for monitor session files (
.monx
). (5465) - Changed the open session dialog to open a file (
.monx
,.mev
) rather than a folder. (7492) - Added functionality to RTX64 Monitor and the RTX64 Control Panel that allows you to check all or clear all events. (6275, 7575)
- Added functionality to RTX64 Monitor that allows you to pause a monitoring session. The Control Panel displays a Monitoring paused status when the current session is in a paused state. (7479, 7480)
- Added new monitoring events:
- Watchdog Reset – represents an instance where a watchdog timer reset occurs on certain cores. (6967)
- Heap Re-Allocate – represents a successful call to real-time API HeapReAlloc. (6552)
- Thread Open – represents the instance a real-time thread is opened. (5914)
- CLOS Set – represents a change in Class of Service (CLOS) of a thread. (6807)
- Added support for enabling/disabling monitor event generation by product component. Currently, this is only controls event generation for the RT-TCP/IP Stack. (2798)
- Added functionality that allows you to toggle inclusion of network-related events in a monitoring session. This can either be done on a persistent level, through the Control Panel, or on a transient (per session) level, through RTX64 Monitor. (7567)
Application Development
- Added support for Visual Studio 2017 version 15.9. (7652)
SDK
Real-Time
- Increased the maximum number of objects supported by RtWaitForMultipleObjects from 16 to 64. (7371)
- Added new Real-Time functions and enumerations to support enabling/disabling of monitor event generation by product component (2798):
- RtMonitorGetEnabledComponents – retrieves the transient configuration of RTX64 product components that currently have monitoring event generation enabled.
- RtMonitorEnableComponents – transiently enables the generation of monitor events by one or more RTX64 product components.
- RT_MONITOR_COMPONENT – an enumeration that represents RTX64 product components that can have their monitoring event generation enabled/disabled transiently.
- Added new Real-Time functions and structures to support setting event types and custom event types as triggers to start monitoring:
- RtMonitorSetCustomTriggers – transiently sets the custom event types that will trigger the start of a monitoring session.
- RtMonitorSetTriggers – transiently sets the event types that will trigger the start of a monitoring session.
- RT_MONITOR_CUSTOM_TRIGGER_CONTROL – Transiently associates trigger values to custom monitoring event types.
- RT_MONITOR_TRIGGER_CONTROL – Transiently associates trigger values to monitoring event types.
- Added new Real-Time function, RtMonitorChangeState, which allows you to transition between monitoring states.
- Added a new Real-Time function RtMonitorSetEvents , which enables or disables a collection of events during a monitoring session.
- Added constants to Real-Time enumeration RTX64_MONITOR_CONTROL_OP:
- MONITOR_CONTROL_ENABLE_COMPONENTS – transiently toggles generation of monitoring events by one or more RTX64 product components.
- MONITOR_CONTROL_GET_ENABLED_COMPONENTS – retrieves the transient configuration of RTX64 product components that currently have monitoring event generation enabled.
- MONITOR_CONTROL_PAUSE – pauses collection of monitoring events during the current session without having to create a new session file.
- MONITOR_CONTROL_RESUME – resumes the monitoring session from a Paused state.
Managed Code Framework
- Added new class MonitorEventThreadOpen under IntervalZero.RTX64.Monitor, which represents the instance a real-time thread is opened. This occurs when a real-time process calls OpenThread. (5914)
- Added new class MonitorEventHeapReAlloc under IntervalZero.RTX64.Monitor, which represents a successful call to HeapReAlloc. (6552)
- Added new class MonitorEventWatchdogReset under IntervalZero.RTX64.Monitor, which represents an instance where a watchdog timer reset occurs on certain cores. (6967)
- Added new class MonitorEventCLOSSet under IntervalZero.RTX64.Monitor, which allows you to set a new Class Of Service (CLOS) for a thread. (6807)
- Added new method GetEventReader to the EventReader class under IntervalZero.RTX64.Monitor, which opens a monitor session file (.monx) or a monitor event file (.mev), which opens the Event Reader session. (5465)
- Added new methods and enumerations to class IntervalZero.RTX64.Monitor.Subsystem to support enabling/disabling of monitor event generation by product component (2798):
- GetEnabledComponents – this method returns the transient or persistent configuration specifying which product components currently have monitor event generation enabled
- EnableComponents – this method transiently or persistently enables monitor event generation for one or more product components.
- MonitorComponent – this enumeration represents the product components that can have monitor event generation enabled/disabled transiently or persistently.
- Added new method SetWindowsAndRtssProcessorsRequested to class IntervalZero.RTX64.Config.Subsystem, which atomically sets the requested number of Windows and RTSS processors. (7573)
Issues Resolved
Installation
- Resolved an issue where some RTX64 services were missing after an upgrade. (7295)
- Resolved an issue where the RTX64 Merge Module driver binaries were not attestation signed. (7635)
- Resolved an issue where the RTX64 Task Manager would not open following an upgrade. (7675)
Activation and Configuration
- Resolved an issue were the RTX64 services would sometimes fail to start on a reboot when unable to properly query Windows Management Instrumentation (WMI). (7116)
RT-TCP/IP Stack and Drivers
- Resolved an issue where the RT-TCP/IP Stack timed-out when enabling third party drivers that had been built with older versions of RTX64. (7568)
Tools and Utilities
- Resolved an issue where the Monitor Utility and Control Panel would incorrectly display Monitoring Status as Disabled when Monitoring was enabled but the Subsystem was stopped. (5374)
- Resolved an issue where the Restart option was enabled on Subsystem-specific and RT-TCP/IP Stack-specific Control Panel pages when those components were in the process of restarting. (7350)
- Resolved an issue where pressing the Enter key during a search in the Control Panel would open the first page in the list of search results. (7377)
- Resolved an issue where the Activation and Configuration utility did not work correctly with previous versions of RTX64, reporting error unable to load DLL RtUtility.dll. (7472)
- Resolved an issue where the RTX64ActivationUtil.exe command line utility did not validate affinity mask or ideal processor assignments when RTSS processors were changed. (7736)
- Resolved an issue where the Activation and Configuration utility displayed third party applications that were no longer installed. (7204)
- Resolved an issue where RTX64Server sometimes crashed due to licensing issues. (6544)
Application Development
- Resolved an issue where threads that didn't support Thread-Local Storage (TLS) were being added to the list of TLS threads. In some instances, this resulted in a Green Screen on shutdown. (7579)
- Resolved an issue where a Thread Local Storage (TLS) handle could lock an RT-TCP/IP Stack or Network Abstraction Layer (NAL) process. (7563)
SDK
Real-Time
- Resolved an issue where Real-Time function RtEnumProcessModules didn’t set a last error value. (7237)
Native Framework
- Resolved an issue where RtfwSetProcessorConfiguration did not validate the requested number of RTSS processors didn’t exceed the number of licensed RTSS processors. (6703)
Samples
- Resolved an issue where running the MulticoreResponseTimeMeasurements (mSRTM) Sample with /p resulted in an access violation error. (6782)
Notes
General
- Members of RTX64Users cannot stop the RT-TCP/IP Stack. (1386)
Installation
- IntervalZero cross-signs INF files with a SHA-2 certificate, which requires Windows patch KB3033929 on Windows 7 systems. If this patch is not already installed, the RTX64 Runtime will install the patch automatically. Installation of this patch requires a reboot before the RTX64 installation can complete. (6905)
- The Repair feature of the RTX64 SDK installer has been removed. (7412)
Tools and Utilities
- Monitor event Shutdown Handler Call has been deprecated and will be removed from a future release. (5038)
- When the Stack Ideal Processor and/or the Stack Timer Processor value is invalid, the value(s) are automatically reset to their default setting when you navigate to the Configure RT-TCP/IP Stack Performance page in the Control Panel. You are then prompted to restart the RT-TCP/IP Stack. (7731)
NOTE: This behavior may occur elsewhere in the Control Panel with other settings. Please contact Support if similar issues are encountered.
SDK
- When RtCreateProcess is called by a Windows application linked to RTX64, it will return ERROR_NOT_SUPPORTED when parameter dwCreationFlags is set to CREATE_SUSPENDED.
- Managed Code support for the following APIs has been deprecated:
- RtGetTimer (5204, 1306)
- AttachShutdownHandlers (6892)
- Enum IntervalZero.RTX64.RTAPI.Threading.Clock4 (6788)
- Method IntervalZero.RTX64.RTAPI.RTSSEnvironment.EnableInterrupts (7239)
- Method IntervalZero.RTX64.RTAPI.RTSSEnvironment.DisableInterrupts (7239)
- Enum IntervalZero.RTX64.RTAPI.IO.InterruptMode (7239)
- Enum IntervalZero.RTX64.RTAPI.IO.InterruptDisposition (7239)
- Class IntervalZero.RTX64.RTAPI.IO.RTInterruptHandler (6891)
Samples
- The Release and Debug build configurations were not supported in the RDTPerformance sample have been removed from that sample. (7469)
Known Issues
Subsystem
- Starvation timeout does not occur if there are processes on the same core running timers/interrupts with a higher priority than that of the potential runaway thread. The RT-TCP/IP Stack is an example of such a process. If the Stack is running, and a tight loop of a normal priority is running on the same core, starvation timeout will not occur, as the context switch is still occurring to one of the Stack timers. To avoid this problem, run the tight loop on a different core than the one on which the process with the timer/interrupt is run. (7410)
Tools and Utilities
- An unhandled exception occurs when a Windows user who does not have Administrator privileges attempts to restart the Subsystem through the RTX64 Control Panel. (7465)
SDK
- The Visual Studio compiler generates a C4564 warning when the compiler warning level is set to 4 and when using C++/CLI managed code where values are not explicitly specified for default parameters. (4967)
-
The VSIX package for Visual Studio 2017 15.8 support (RTX64VSSupport.vsix) fails to install on German editions of Windows 10 version 1809. To work around this issue, install Visual Studio 2017 15.9. (7535)