Intel Xe Enabling SR-IOV PF By Default, Marking Driver As "Broken" For Non-4K Kernels
- Reference: 0001567153
- News link: https://www.phoronix.com/news/Intel-Xe-Linux-6.17-PF-4K
- Source link:
Sent out today were the drm-xe-next-fixes for the week as primarily some "fixes" to the Intel Xe driver but two items in particular worth calling out.
First up, SR-IOV PF mode is now being enabled by default. The [2]commit enabling Physical Function (PF) by default for Single Root I/O Virtualization (SR-IOV) explains:
"We already claim official support for SR-IOV PF/VF modes on PTL and BMG platforms, but by default we start the Xe driver on those platforms in non-virtualized mode (native) since we still have max_vfs modparam set to disable creation of the VFs.
It's time to let the Xe driver support SR-IOV PF mode by default. We were already testing this on our CI, which was relying on the patch that was enabling it for CONFIG_DRM_XE_DEBUG used by our CI."
The "max_vfs" module parameter for the Xe driver does remain for those wanting to limit the number of Virtual Functions (VFs) that can be managed.
The other notable change with the drm-xe-next-fixes pull is marking the Xe driver as "BROKEN" when the kernel page size is not 4KB. This primarily is around ARM Linux systems where [3]16K or 64K page sizes can yield nice gains on ARM64 .
The Intel Xe driver was designed to be more friendly to non-x86 based architectures given that Intel now produces discrete GPUs compared to the days of just having integrated graphics attached to their x86/x86_64 processors. While the Intel Xe driver is working better for other CPU architectures, it still has assumptions in place around being a 4K kernel page size. Thus is failing on AArch64 systems with 16K or 64K pages as well as on LoongArch systems with a 16K page size or also POWER with larger page sizes.
By gating the Xe driver behind "BROKEN" on non-4K page sizes, building this driver for unsupported configurations will no longer happen. That patch is also marked for back-porting to the Linux 6.8 kernels and newer. Hopefully in time though the Xe graphics driver will be adapted to better work with non-4K kernels.
See [4]this pull request for more details on these fixes going into Linux 6.17 Git soon.
[1] https://www.phoronix.com/news/Linux-6.17-GPU-Drivers
[2] https://gitlab.freedesktop.org/drm/xe/kernel/-/commit/df9bdd4381be100a778c63a5dd810dc82b8c2705
[3] https://www.phoronix.com/review/ampereone-64k-linux611
[4] https://lore.kernel.org/dri-devel/aJNXnIAp2Cq-2pZj@intel.com/T/#u
Jumbotron