[GSD-13016] Sysman events are not supported with the release packages
- Dominant language
- C++
- Stars
- 1.4k
- Forks
- 300
- PR merge metrics
- No merged PRs in 30d
Description
### Pre-submission Checklist
- [x] I am using the latest GPU driver version ([releases](https://github.com/intel/compute-runtime/releases))
- [x] I have searched for similar issues and found none
### GPU Hardware
Intel Arc B580
### DRI Devices Information
n/a
### GPU Detailed Information (lspci output)
n/a
### Driver Version
26.22.38646.4
### Installed GPU Driver Packages
$ dpkg --list | grep -iE "libze"
ii libze-dev 1.31.0 amd64 oneAPI Level Zero
ii libze-intel-gpu1 26.22.38646.4-0 amd64 Intel(R) Graphics Compute Runtime for oneAPI Level Zero.
ii libze1 1.31.0 amd64 oneAPI Level Zero
### Driver Installation Details
With dpkg/apt
### Linux Distribution
Ubuntu 24.04 LTS
### Other Linux Distribution
_No response_
### Kernel Version & Boot Parameters
n/a
### Actual Behavior
I installed the latest release packages to a 24.04 Ubuntu system (https://github.com/intel/compute-runtime/releases/tag/26.22.38646.4) and built the `zello_sysman` tool from the same sources.
When I run the tool against the release packages I get this behavior:
```
$ export PrintDebugMessages=1
$ export NEOReadDebugKeys=1
$ sudo -E ZELLO_SYSMAN_USE_ZESINIT=1 ./workspace/compute-runtime/build/bin/zello_sysman -E
ZES_ENABLE_SYSMAN environment variable Not Set
WARNING: Failed to request OCL Turbo Boost
WARNING: Failed to request OCL Turbo Boost
Sysman Initialization done via zesInit
libudev library instantiation failed
```
The key line being the last `libudev library instantiation failed`. The execution also takes only <1sec, while it should wait for events.
When I run the same tool against compute-runtime libraries that I built myself:
```
$ sudo -E LD_LIBRARY_PATH=./workspace/compute-runtime/build/bin ZELLO_SYSMAN_USE_ZESINIT=1 ./workspace/compute-runtime/build/bin/zello_sysman -E
ZES_ENABLE_SYSMAN environment variable Not Set
WARNING: Failed to request OCL Turbo Boost
WARNING: Failed to request OCL Turbo Boost
Sysman Initialization done via zesInit
```
No line about libudev and the execution takes 10 seconds.
When checking the binaries for udev strings:
```
$ strings /usr/lib/x86_64-linux-gnu/libze_intel_gpu.so.1 | grep -E udev
libudev library instantiation failed
:~/workspace/compute-runtime/build$ strings bin/libze_intel_gpu.so | grep -E "udev"
libudev.
libudev.
udev_monitor_new_from_netlink
udev_monitor_enable_receiving
udev_monitor_get_fd
udev_monitor_receive_device
udev_device_get_devnum
udev_device_get_action
udev_device_unref
libudev library instantiation failed
udev_monitor_filter_add_match_subsystem_devtype
udev_device_get_property_value
udev_new
udev_new
...
```
My binary has udev strings while the release binary does not. Looking at the `level_zero/tools/source/sysman/linux/udev/CMakeLists.txt` file, the compilation is conditional based on if libudev is found. Most likely the build env doesn't have libudev-dev thus the releases never support sysman events.
### Expected Behavior
Release version of compute runtime should support sysman events.
### Reproduction Rate
Always reproduces - 100%
### Steps to Reproduce
* Install compute-runtime and its dependencies
* Build zello_sysman
* Run zello_sysman
```
$ export PrintDebugMessages=1
$ export NEOReadDebugKeys=1
$ sudo -E ZELLO_SYSMAN_USE_ZESINIT=1 ./zello_sysman -E
```
* The execution should wait for events (~10sec) or stop on an event.
### Is this a regression?
- [ ] Yes, this is a regression - functionality that previously worked is now broken
### Last Known Working Driver Version
_No response_
### First Known Failing Driver Version
_No response_
### API Call Logs
_No response_
### strace Logs
_No response_
### System Logs / dmesg Output
_No response_
### Backtrace (if crash or hang occurred)
_No response_
### Source Code / Reproducer
_No response_
### Command Line / Application Details
_No response_
### oneAPI Version (if applicable)
_No response_
### Screenshots / Video
_No response_
### Additional Notes
_No response_
Contributor guide
Research direction
Start with level_zero/tools/source/sysman/linux/udev/CMakeLists.txt and the release packaging configuration, then build zello_sysman against the release libraries on Ubuntu 24.04. Compare the release and locally built binaries for libudev support and run zello_sysman with ZELLO_SYSMAN_USE_ZESINIT=1; done means release packages support sysman events and the event wait behaves like the local build.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp, linux
- Domain
- build-system, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100