Files
TheRock/rocm-systems/projects/cuid/docs/conceptual/cuid_file.rst
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

94 lines
3.6 KiB
ReStructuredText

.. meta::
:description: The CUID file help non-privileged users access the derived CUIDs.
:keywords: CUID file, non-privileged users, sharing derived CUID, access derived CUID
.. _cuid-file:
***********
CUID files
***********
To help non-privileged users access the derived CUIDs generated by privileged applications or users, these CUIDs are stored in CUID files. In daemon mode, Inter-Process Communication (IPC) can be utilized to share derived CUIDs with non-privileged users. However, the CUID files retain information in both daemon and non-daemon modes.
Two files, one for unprivileged users and another containing sensitive device information for privileged users, are stored in the ``/tmp`` or ``tmpfs`` directory. These files are updated by a daemon, boot script, or a cron job.
CUID file format
==================
Here's a sample CUID file for your reference:
.. code-block:: shell
[GPU:0]
derived_cuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
vendor_id=1022
device_id=1974
pci_class=0004
revision_id=01
unit_id=0002
device_node=/sys/class/drm/renderD128
last_update=1753987166
[CPU:0]
derived_cuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
vendor_id=1022
device_id=1974
revision_id=01
family=0019
model=0074
unit_id=0004
package_id=0
last_update=6980d761
[NIC:0]
derived_cuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
vendor_id=1414
device_id=0003
pci_class=0005
revision_id=10
device_node=/sys/class/net/enp131s0
last_update=1753987166
[PLATFORM]
derived_cuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
vendor_id=1573
last_update=1753987166
**Attributes associating the derived CUID with the device:**
Depending on the device type, different device attributes (present in the CUID file) serve as keys for associating the derived CUID with the device. The following list mentions those attributes as per the given device type:
- **GPU:** The ``device_node`` links the derived CUID to the hardware.
- **CPU:** The ``package_id`` identifies the physical CPU package, which is akin to a socket ID. CPUs will also display a ``device_node`` which represents the representative logical CPU for that package (currently selected as the lowest APIC ID seen for the socket). The derived CUID is associated with the physical CPU package, not the logical CPU core.
- **NIC:** The ``device_node`` links the derived CUID to the network device.
- **PLATFORM:** The platform doesn't necessitate a key for association. Therefore, only the derived CUID is listed.
The attribute ``last_update`` represents the Unix timestamp for the last modification of the device's ``derived_cuid``.
Privileged CUID file with primary CUIDs
========================================
The privileged CUID file is accessible only to the privileged users, because in addition to the information present in the CUID file, the privileged CUID file contains the primary CUID and some sensitive device information- primarily the serial number (labeled as hardware fingerprint). Privileged users can use this privileged CUID file to see the mapping between the ``primary_cuid`` and the ``derived_cuid``.
Here is a sample privileged CUID file:
.. code-block:: shell
[GPU:0]
primary_cuid=YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY
derived_cuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
hardware_fingerprint=ZZZZZZZZ
vendor_id=1022
device_id=1974
pci_class=0004
revision_id=01
unit_id=0002
device_node=/sys/class/drm/renderD128
last_update=1753987166
.. note::
The privileged file contains sensitive information. To safeguard the ``primary_cuid`` and sensitive device information, ensure that access to the file is restricted.