You are not logged in.

#1 2024-12-04 15:08:41

pvtvega
Member
Registered: 2024-11-25
Posts: 75

[SOLVED] Confusion about kernel 6.12 and nvidia_drm.modeset parameter

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)

Offline

#2 2024-12-04 15:26:56

seth
Member
Registered: 2012-09-03
Posts: 59,328

Re: [SOLVED] Confusion about kernel 6.12 and nvidia_drm.modeset parameter

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 roll

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

#3 2024-12-04 15:57:22

pvtvega
Member
Registered: 2024-11-25
Posts: 75

Re: [SOLVED] Confusion about kernel 6.12 and nvidia_drm.modeset parameter

Thanks for the response.

seth wrote:

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.

seth wrote:

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?

Offline

#4 2024-12-04 18:27:35

loqs
Member
Registered: 2014-03-06
Posts: 18,101

Re: [SOLVED] Confusion about kernel 6.12 and nvidia_drm.modeset parameter

pvtvega wrote:

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

#5 2024-12-05 17:03:31

pvtvega
Member
Registered: 2024-11-25
Posts: 75

Re: [SOLVED] Confusion about kernel 6.12 and nvidia_drm.modeset parameter

Marking as solved. Thanks for the explainers guys.

Offline

Board footer

Powered by FluxBB