intel / intel/compute-runtime

[GSD-13016] Sysman events are not supported with the release packages

Open
#950 2 comments 0 reactions 0 assignees View on GitHub
Component: Level Zero Sysman OS: Linux Type: Bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.