Подскажите, из-за чего CLONE_NEWUSER обламывает вулкан? Мой гугл мне ничего не подсказал.Вот такую ошибку выдаёт vulkaninfo, например: /var/tmp/portage/dev-util/vulkan-tools-1.1.124/work/Vulkan-Tools-119e7c3bbae122f6cc5d778d068fb91e0e85d6a9/vulkaninfo/vulkaninfo.h:797: failed with ERROR_INITIALIZATION_FAILED
Для примера glxinfo (и вообще что угодно) работает без вопросов, а вулкан не хочет. И vkcube так вообще грохнул иксы.
У тебя в FUTURES песочница с namespaces?А тесты OpenCL в той же изоляции работают?
> У тебя в FUTURES песочница с namespaces?
> А тесты OpenCL в той же изоляции работают?Только с вулканом проблемы. Проверить можно легко, эта команда фейлится:
unshare -r vulkaninfo
> unshare -r vulkaninfoУМВР. NixOS 19.09, Linux 5.4.5, RADV POLARIS11 (RX 560). Вывод vulkaninfo с и без unshare различается только полями budget.
>> unshare -r vulkaninfo
> УМВР. NixOS 19.09, Linux 5.4.5, RADV POLARIS11 (RX 560). Вывод vulkaninfo с
> и без unshare различается только полями budget.Иксы? Нет ли возможности проверить на NVIDIA? Я пробовал 430/435/440 драйвер, проблема одна. Попутно переехал на libglvnd (мало ли), но nouveau вулкан всё равно не умеет. И cuda в неймспейсе тоже работает кстати, так что проблема будто бы только у вулкана.
> Иксы?Да.
> Нет ли возможности проверить на NVIDIA?Не имею из-за нежелания пихать в ядро огромный проприетарный блоб. Рекомендую тоже отказаться, проблем будет меньше.
> Не имею из-за нежелания пихать в ядро огромный проприетарный блоб. Рекомендую тоже
> отказаться, проблем будет меньше.Хех, будто драйвера амд это не огромный проприетарный блоб. :>
И нет, отказаться не варик, мне нужен вулкан. Может быть тут есть пользователи нвидиевских карт?
> Хех, будто драйвера амд это не огромный проприетарный блоб. :>Ядерная часть драйвера AMD давно волша в апстрим ядра. Он вообще не использует проприетарных модулей, закрытой остаётся только прошивка GPU.
> И нет, отказаться не варик, мне нужен вулкан.
Для карт AMD есть три открытые реализации вулкана, одна из которых (RADV) входит в мезу и работает из коробки во всех десктопных дистрибутивах.
> Хех, будто драйвера амд это не огромный проприетарный блоб. :>Таки нет. MESA + ядро Linux вполне себе опенсорсная реализация вулкана.
> Только с вулканом проблемы. Проверить можно легко, эта команда фейлится:
> unshare -r vulkaninfoРаботает на Kubuntu 19.10, Nvidia driver 440.44.
>> Только с вулканом проблемы. Проверить можно легко, эта команда фейлится:
>> unshare -r vulkaninfo
> Работает на Kubuntu 19.10, Nvidia driver 440.44.Можно подумать разное, но от рута я тоже не могу этого сделать. Занятно…
>>> Только с вулканом проблемы. Проверить можно легко, эта команда фейлится:
>>> unshare -r vulkaninfo
>> Работает на Kubuntu 19.10, Nvidia driver 440.44.
> Можно подумать разное, но от рута я тоже не могу этого сделать.
> Занятно…А X.org у вас тоже от рута работает?
Во, ещё когда навожу курсор на элементы управления окном (свернуть/закрыть) vkcube лагает. Косяк в оконном менеджере или так и должно быть? К слову, glxgears тоже подлагивает при этом, но менее заметно. Отключение антитиринга не помогло.
Выяснил, что без иксов работает. Попутно выяснил, что без CLONE_NEWUSER,DISPLAY=:0 glxinfoиз tty выполняется, иDISPLAY=:0 vulkaninfoвыдаёт точно такую же ошибку. Это может быть связано?
vkcube сегфолтится в vkGetDeviceProcAddr (libvulkan.so)
В tty фейлится на vkCreateDevice, в неймспейсе на vkGetPhysicalDeviceSurfacePresentModesKHR.GLX в обоих случаях работает. Профиль ICD корректный.
Вулкан не может получить доступ к устройству, например в логе вот это:DEBUG: Instance Extension: VK_EXT_direct_mode_display (libGLX_nvidia.so.0) version 0.0.1
DEBUG: Instance Extension: VK_EXT_display_surface_counter (libGLX_nvidia.so.0) version 0.0.1
/tmp/portage/dev-util/vulkan-tools-9999/work/vulkan-tools-9999/vulkaninfo/vulkaninfo.h:920: failed with ERROR_INITIALIZATION_FAILEDКак должно быть:
DEBUG: Instance Extension: VK_EXT_direct_mode_display (libGLX_nvidia.so.0) version 0.0.1
DEBUG: Instance Extension: VK_EXT_display_surface_counter (libGLX_nvidia.so.0) version 0.0.1
DEBUG: Device Extension: VK_KHR_8bit_storage (libGLX_nvidia.so.0) version 0.0.1Права сравнивал, не похоже что дело в этом. Дополнительные неймспейсы расшаривал, лишних прав на бинарник навешивал. Проблема именно в CLONE_NEWUSER, поскольку другие неймспейсы насколько я могу судить, замечательно работают. И можно повесить суидный бит на unshare, чтобы создать отдельный сетевой неймспейс (setcap не работает, не хватает прав для записи в /proc/self/setgroups). Но не в моём коде, никак не могу понять в чём дело и почему unshare может успешно создать сетевой неймспейс, а я нет. Есть подозрение, что поведение под отладчиком значительно отличается. Но это всё не имеет отношения к вулкану и моим проблемам с ним. С CLONE_NEWUSER он и под unshare от рута не работает.
Хорошо, свой код я исправил, не проблема. Проблема в том что vulkan не может получить доступа к устройству. Когда он не может получить доступа к иксам, ошибка другая. Чтобы использовать вулкан вообще без иксов (что должно мне помочь), можно использовать icd профиль с egl вместо glx, но я пока получаю только сегфолты.
И мне не нравится бинарник с лишними правами (хотя бы не суидный, как того требует unshare, но это не важно), я просто хочу CLONE_NEWUSER использовать.
> И мне не нравится бинарник с лишними правами (хотя бы не суидный,
> как того требует unshare, но это не важно), я просто хочу
> CLONE_NEWUSER использовать.Ладно, пока придётся пользоваться тем, что есть, и бинарником с дополнительными capabilities. Я бы предпочёл CLONE_NEWUSER, но в нём вулкан не работает.
> Я бы предпочёл CLONE_NEWUSER, но в нём вулкан не работает.Ну так посмотри strace на чем именно обламывается. Как один из вариантов - на доступе к DRM-девайсу, opencl так тоже умеет. На эти девайсы юзеру надо права дать, иначе они не смогут туда соваться.
> libGLX_nvidia.so.0В техподдержку нвидии, пожалуйста. Это форум об открытом ПО, а не о кривых мокрописечных блобах.