You are not logged in.
Hello, this isn't a technical support issue. In this thread I am looking to learn about how the nvidia_drm module behaves in kernel 6.12. If this is the wrong category for this, my apologies.
_________
The 6.12 version of the kernel appears to have patched out the ability to skip the simple-framebuffer device registration at boot when the
nvidia_drm.modeset=1
parameter is set in the kernel command line. This also meant that the
nvidia_drm.fbdev=1
parameter could be set so that the proprietary Nvidia driver could manage the framebuffer device.
Now, even when the Nvidia parameters are set as above, I still see a simple-framebuffer device registered at boot:
Dec 03 20:25:16 keith-pc kernel: simple-framebuffer simple-framebuffer.0: [drm] Registered 1 planes with drm panic
Dec 03 20:25:16 keith-pc kernel: [drm] Initialized simpledrm 1.0.0 for simple-framebuffer.0 on minor 0
Dec 03 20:25:16 keith-pc kernel: simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
In a GitLab bug report (https://gitlab.archlinux.org/archlinux/ … /issues/94) a user reports session freezes when switching to TTY. I have not experienced this. My system boots to TTY by default, and I manually start a graphical session after login. So far the graphical session, and any applications I run within that session, have behaved normally with no noticeable performance changes.
My questions are:
1) Do I need to be adjusting these parameters to avoid performance issues with my Nvidia GPU?
2) What are the implications of having a fb device managed by simple-framebuffer while the nvidia_drm.modeset=1 and nvidia_drm.febdev=1 parameters are enabled?
3) I would be interested in getting a systems level explanation of how these two fb devices are interacting and how the kernel manages them both? I don't have an intuitive understanding of this. I've included my nvidia_drm boot logs as well for completeness below.
Dec 03 20:25:16 keith-pc kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
Dec 03 20:25:17 keith-pc kernel: [drm] Initialized nvidia-drm 0.0.0 for 0000:01:00.0 on minor 1
Dec 03 20:25:17 keith-pc kernel: nvidia 0000:01:00.0: vgaarb: deactivate vga console
Dec 03 20:25:17 keith-pc kernel: fbcon: nvidia-drmdrmfb (fb0) is primary device
Dec 03 20:25:17 keith-pc kernel: nvidia 0000:01:00.0: [drm] fb0: nvidia-drmdrmfb frame buffer device
Thank you in advance. I've learned a ton from reading and participating on these forums so far.
Last edited by pvtvega (2024-12-05 17:03:21)
Online
Ideally, the nvidia_drm.fbdev takes over from the simpledrm device and the latter disappears and you notice nothing about this.
But nvidia_drm.fbdev=1 has never reliably worked for all users and so people end up with black screens or running their system on the simpledrm device (check glxinfo or your xorg log)
I suspect that the performance hinges on the nvidia generation, where newer do better than older GPUs - the legacy drivers 340/390/470xx and iirc 525 don't support the fbdev at all what means your only chance to block the simpledrm device is w/ "initcall_blacklist=simpledrm_platform_driver_init" but that seems to be to late as well - ie. they're fucked.
If your system runs ok (you start w/ the simplydumb device, the nvidia fbdev takes over, the simpledrm device disappears and your GUI runs on the nvidia GPU and there's no other symptoms notably when switching framebuffers, ie. ctrl+alt+f3 etc) you're good - this is also how the simpledrm device - on good days - interacts with the in-tree drivers (i915, amdgpu, nouveau)
If not: for all we can tell you can only resort to the LTS kernel until this gets sorted out.
The simpledrm device exists to handle the early boot phase and, I believe more importantly, to allow a wayland session despite your GPU drivers are screwed so fedora users don't have to use the console or, worse, X11 in order to fix their system
From a competent arch user perspective, the thing should be mostly bloat that gets in the way and glosses over issues you should rather be addressing.
Unless you're super pumped about extremely early kms before even the initramfs loaded.
Offline
Thanks for the response.
no other symptoms notably when switching framebuffers
So I have not tried to switch from a graphical session to a TTY. Only from TTY to graphical session. Will have to try this evening and see if I experience the same issues as others.
Ideally, the nvidia_drm.fbdev takes over from the simpledrm device
If simpledrm is meant for handling early boot, and then passing off management of the framebuffer device to my NVIDIA GPU, why does traditional installation of the proprietary NVIDIA drivers involve specifying the kernel parameters at boot? Why not just let simpledrm do its thing and then let my GPU take over when my user session begins?
Online
If simpledrm is meant for handling early boot, and then passing off management of the framebuffer device to my NVIDIA GPU, why does traditional installation of the proprietary NVIDIA drivers involve specifying the kernel parameters at boot? Why not just let simpledrm do its thing and then let my GPU take over when my user session begins?
See the commit message in https://github.com/archlinux/linux/comm … 5db2af7cb8 for the long explanation.
Offline
Marking as solved. Thanks for the explainers guys.
Online