You are not logged in.
With my Mac that has a GT 750M
According to https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/ that card should use the 470 driver , not the 390 .
Please post the output of lspci -knn -d ::03xx so the exact type/model of your card can be verified.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
4194304 wrote:With my Mac that has a GT 750M
According to https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/ that card should use the 470 driver , not the 390 .
Please post the output of lspci -knn -d ::03xx so the exact type/model of your card can be verified.
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107M [GeForce GT 750M Mac Edition] [10de:0fe9] (rev a1)
Subsystem: Apple Inc. Device [106b:0130]
Kernel driver in use: nvidia
Kernel modules: nouveau
nvidia_drm is missing as I'm trying to test the 470xx drivers to see if they work, but they likely will not
Offline
They should, it's a Kepler card (GK107M is the relevant identification bit).
Nevertheless nvidia_drm would not show up on that output anyway.
Offline
i did an update that led to my system to not boot probably
pacman.log
https://0x0.st/8Ofl.txt
the day that i update and it broke the system:
14th Apr 2025 - 15th apr 2025
Journalctl
https://0x0.st/8OZq.txt
i have already tried to rebuild the aur packages with nvidia in the name
and did `nvidia-drm.modeset=1` in grub commandline
i have downgraded for now but its not visible in the logs
Last edited by ZelzalGD (2025-04-19 12:13:23)
Offline
Apr 17 15:11:23 Zelzal kernel: simple-framebuffer simple-framebuffer.0: [drm] Registered 1 planes with drm panic
Apr 17 15:11:23 Zelzal kernel: [drm] Initialized simpledrm 1.0.0 for simple-framebuffer.0 on minor 0
Apr 17 15:11:23 Zelzal kernel: fbcon: Deferring console take-over
Apr 17 15:11:23 Zelzal kernel: simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
Apr 17 15:11:23 Zelzal kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
Apr 17 15:11:23 Zelzal kernel: [drm] Initialized nvidia-drm 0.0.0 for 0000:01:00.0 on minor 1
Apr 17 15:11:23 Zelzal kernel: Failed to initialize the nv-hotplug-helper DRM client (ensure DRM kernel mode setting is enabled via nvidia-drm.modeset=1).
Apr 17 15:11:23 Zelzal kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Unloading driver
Nvidia driver doesn't cooperate well with simpledrm device .
Try adding nvidia-drm.modeset=1 to your boot command line .
(How to do that depends on your chosen bootloader.)
NOTE: do not add it to a file in /etc/modprobe.d , that is processed to late for this to work.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
If that's not it (though you want to enable kms regardless of simpledrm and crash)
Apr 17 15:11:40 Zelzal systemd-coredump[611]: Process 601 (Xorg) of user 0 dumped core.
Stack trace of thread 601:
#0 0x000071c1dde2a5e7 abort (libc.so.6 + 0x255e7)
#1 0x00005d9e2fbb4b3e OsAbort (/usr/lib/Xorg + 0x153b3e)
#2 0x00005d9e2fbb6037 FatalError (/usr/lib/Xorg + 0x155037)
#3 0x00005d9e2fbbcfd8 n/a (/usr/lib/Xorg + 0x15bfd8)
#4 0x000071c1dde42cd0 n/a (libc.so.6 + 0x3dcd0)
#5 0x000071c1dde9c624 n/a (libc.so.6 + 0x97624)
#6 0x000071c1dde42ba0 raise (libc.so.6 + 0x3dba0)
#7 0x000071c1dde2a582 abort (libc.so.6 + 0x25582)
#8 0x000071c1dde2b3bf n/a (libc.so.6 + 0x263bf)
#9 0x000071c1ddea6765 n/a (libc.so.6 + 0xa1765)
#10 0x000071c1ddea67f3 n/a (libc.so.6 + 0xa17f3)
#11 0x000071c1ddeabaaf __libc_free (libc.so.6 + 0xa6aaf)
#12 0x00005d9e2fbd038c n/a (/usr/lib/Xorg + 0x16f38c)
#13 0x00005d9e2fbdb0fa InitOutput (/usr/lib/Xorg + 0x17a0fa)
#14 0x00005d9e2fa93c69 n/a (/usr/lib/Xorg + 0x32c69)
#15 0x000071c1dde2c488 n/a (libc.so.6 + 0x27488)
#16 0x000071c1dde2c54c __libc_start_main (libc.so.6 + 0x2754c)
#17 0x00005d9e2fa952b5 _start (/usr/lib/Xorg + 0x342b5)
ELF object binary architecture: AMD x86-64
Please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General
Offline
Xorg.0.log
http://0x0.st/8OEP.txt
Offline
[ 30.520] (==) Log file: "/var/log/Xorg.0.log", Time: Sun Apr 20 13:40:01 2025
[ 30.520] (==) Using config file: "/etc/X11/xorg.conf"
[ 30.520] (==) Using config directory: "/etc/X11/xorg.conf.d"
[ 30.520] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 30.520] (EE)
[ 30.520] (EE) Backtrace:
[ 30.520] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.520] (EE) 0: /usr/lib/Xorg (?+0x0) [0x5ab77348df7c]
[ 30.521] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.521] (EE) 1: /usr/lib/libc.so.6 (?+0x0) [0x7579e1d19cd0]
[ 30.521] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.521] (EE) 2: /usr/lib/libc.so.6 (?+0x0) [0x7579e1d73624]
[ 30.521] (EE) 3: /usr/lib/libc.so.6 (gsignal+0x20) [0x7579e1d19ba0]
[ 30.521] (EE) 4: /usr/lib/libc.so.6 (abort+0x26) [0x7579e1d01582]
[ 30.521] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.522] (EE) 5: /usr/lib/libc.so.6 (?+0x0) [0x7579e1d023bf]
[ 30.522] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.522] (EE) 6: /usr/lib/libc.so.6 (?+0x0) [0x7579e1d7d765]
[ 30.522] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.522] (EE) 7: /usr/lib/libc.so.6 (?+0x0) [0x7579e1d7d7f3]
[ 30.522] (EE) 8: /usr/lib/libc.so.6 (__libc_free+0x1ff) [0x7579e1d82aaf]
[ 30.522] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.522] (EE) 9: /usr/lib/Xorg (?+0x0) [0x5ab7734a138c]
[ 30.523] (EE) 10: /usr/lib/Xorg (InitOutput+0x135a) [0x5ab7734ac0fa]
[ 30.523] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.523] (EE) 11: /usr/lib/Xorg (?+0x0) [0x5ab773364c69]
[ 30.523] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 30.523] (EE) 12: /usr/lib/libc.so.6 (?+0x0) [0x7579e1d03488]
[ 30.523] (EE) 13: /usr/lib/libc.so.6 (__libc_start_main+0x8c) [0x7579e1d0354c]
[ 30.523] (EE) 14: /usr/lib/Xorg (_start+0x25) [0x5ab7733662b5]
[ 30.523] (EE)
[ 30.523] (EE)
It seems to crash right away with a corrupted stack…
[ 30.520] Current Operating System: Linux Zelzal 6.13.5-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 27 Feb 2025 18:09:44 +0000 x86_64
You're booting some dated kernel?
and did `nvidia-drm.modeset=1` in grub commandline
And that's not reflected by the log at all, did you forget to run grub-mkconfig?
pacman -Qikk linux xorg-server nvidia-390xx-utils mesa glibc libx11
Offline
Didnt mention that the error happen after i enabled the otd daemon (opentabletdrivers)
its currently uninstalled
Offline
also the result of `pacman -Qikk linux xorg-server nvidia-390xx-utils mesa glibc libx11` : https://0x0.st/8Ol3.txt
Offline
Which of https://aur.archlinux.org/packages?K=opentabletdriver and what if you remove it?
Offline
the non git one
i already did paru -R opentabledriver
Offline
Ok.
Why are you booting a dated kernel?
It matches the "pacman -Qikk linux" output, but doesn't show up in your pacman log at all.
It 's also not the kernel in the journal you posted.
1. stop flailing around, you're creating a moving target that's neigh impossible to hit
2. perform a complete system update
3. post an updated journal - the one you posted had X11 crash (w/ intact stack) in
Apr 17 15:11:42 Zelzal systemd-coredump[626]: Process 624 (Xorg) of user 0 dumped core.
Stack trace of thread 624:
#0 0x000078d8f8ea55e7 abort (libc.so.6 + 0x255e7)
#1 0x0000617209a17b3e OsAbort (/usr/lib/Xorg + 0x153b3e)
#2 0x0000617209a19037 FatalError (/usr/lib/Xorg + 0x155037)
#3 0x0000617209a1ffd8 n/a (/usr/lib/Xorg + 0x15bfd8)
#4 0x000078d8f8ebdcd0 n/a (libc.so.6 + 0x3dcd0)
#5 0x000078d8f8f17624 n/a (libc.so.6 + 0x97624)
#6 0x000078d8f8ebdba0 raise (libc.so.6 + 0x3dba0)
#7 0x000078d8f8ea5582 abort (libc.so.6 + 0x25582)
#8 0x000078d8f8ea63bf n/a (libc.so.6 + 0x263bf)
#9 0x000078d8f8f21765 n/a (libc.so.6 + 0xa1765)
#10 0x000078d8f8f217f3 n/a (libc.so.6 + 0xa17f3)
#11 0x000078d8f8f26aaf __libc_free (libc.so.6 + 0xa6aaf)
#12 0x0000617209a3338c n/a (/usr/lib/Xorg + 0x16f38c)
#13 0x0000617209a3e0fa InitOutput (/usr/lib/Xorg + 0x17a0fa)
#14 0x00006172098f6c69 n/a (/usr/lib/Xorg + 0x32c69)
#15 0x000078d8f8ea7488 n/a (libc.so.6 + 0x27488)
#16 0x000078d8f8ea754c __libc_start_main (libc.so.6 + 0x2754c)
#17 0x00006172098f82b5 _start (/usr/lib/Xorg + 0x342b5)
ELF object binary architecture: AMD x86-64
Apr 17 15:11:42 Zelzal sddm[591]: Failed to read display number from pipe
Offline
update : my old brother deleted my arch linux systems by doing the forced `sudo rm rf /` command (thats after i made a backup for my data)
so i will install a new installation of arch linux
Offline
Hey guys,
I'm trying to install the nvidia-390 driver from AUR, and the makepkg seems to build clean, plus install the 3 packages fine, I can see them with pacman -Q, but ..
When I reboot, I do not get the nvidia driver to work, I end up on text mode. I have an Nvidia NVS 310 card, nouveau seems to work fine with it, it is just very slow, especially for some apps under Wine, etc.
What I also notice, is that there is no nvidia (gpu) module file under /lib/modules/ for the current kernel, and naturally that's what "modprobe nvidia" gives me as well.
I (re)tried the whole process with yay as well, same result.
It should be quite straightforward, what am I missing?
$ uname -a
Linux desk 6.14.4-arch1-2 #1 SMP PREEMPT_DYNAMIC Sat, 26 Apr 2025 00:06:37 +0000 x86_64 GNU/Linux
$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [NVS 310] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)
$ !find
find /lib/modules/ | grep nvidia
/lib/modules/6.14.4-arch1-2/kernel/drivers/hid/hid-nvidia-shield.ko.zst
/lib/modules/6.14.4-arch1-2/kernel/drivers/net/ethernet/nvidia
/lib/modules/6.14.4-arch1-2/kernel/drivers/net/ethernet/nvidia/forcedeth.ko.zst
/lib/modules/6.14.4-arch1-2/kernel/drivers/platform/x86/nvidia-wmi-ec-backlight.ko.zst
/lib/modules/6.14.4-arch1-2/kernel/drivers/i2c/busses/i2c-nvidia-gpu.ko.zst
/lib/modules/6.14.4-arch1-2/kernel/drivers/usb/typec/altmodes/typec_nvidia.ko.zst
$
$ sudo pacman -Q | grep nvidia
nvidia-390xx-dkms 390.157-15
nvidia-390xx-utils 390.157-15
opencl-nvidia-390xx 390.157-15
$
Last edited by mess (2025-05-03 14:39:16)
Offline
https://aur.archlinux.org/packages/nvid … nt-1022230 (doesn't currently build w/ gcc15)
Do not waste any time trying to use gcc14 - kernel and modules need to be compiled w/ the same compiler (version)
[Edit: maybe better not link the bad compiler idea ]
Last edited by seth (2025-05-02 21:31:32)
Offline
As suggested here, I downgraded the following packages:
linux-6.14.4.arch1-2
linux-headers-6.14.4.arch1-2
gcc-15.1.1+r7+gf36ec88aa85a-1
gcc-libs-15.1.1+r7+gf36ec88aa85a-1
to their previous versions:
https://archive.archlinux.org/packages/l/linux/linux-6.14.4.arch1-1-x86_64.pkg.tar.zst
https://archive.archlinux.org/packages/l/linux-headers/linux-headers-6.14.4.arch1-1-x86_64.pkg.tar.zst
https://archive.archlinux.org/packages/g/gcc/gcc-14.2.1+r753+g1cd744a6828f-1-x86_64.pkg.tar.zst
https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-14.2.1+r753+g1cd744a6828f-1-x86_64.pkg.tar.zst
This temporarily resolved the issue while waiting for a new patch.
Offline
That will break all applications that require gcc-libs 15.1 .
Use How to restore all packages to a specific date to pin everything on your system to the state they had just before the switch to gcc 15 .
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Hi, i've got same crash after update :
[ 337.502]
X.Org X Server 1.21.1.16
X Protocol Version 11, Revision 0
[ 337.503] Current Operating System: Linux LRDP-MS-7B86 6.14.4-arch1-2 #1 SMP PREEMPT_DYNAMIC Tue, 29 Apr 2025 09:23:13 +0000 x86_64
[ 337.503] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=4d58a92d-d03d-4d67-8d98-f90309b7a44e rw loglevel=3 quiet
[ 337.503]
[ 337.507] Current version of pixman: 0.46.0
[ 337.517] Before reporting problems, check [url]http://wiki.x.org[/url]
to make sure that you have the latest version.
[ 337.517] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 337.540] (==) Log file: "/home/lrdp/.local/share/xorg/Xorg.0.log", Time: Sun May 4 18:33:20 2025
[ 337.547] (==) Using config file: "/etc/X11/xorg.conf"
[ 337.553] (==) Using config directory: "/etc/X11/xorg.conf.d"
[ 337.560] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 337.561] (==) ServerLayout "Layout0"
[ 337.561] (**) |-->Screen "Screen0" (0)
[ 337.561] (**) | |-->Monitor "Monitor0"
[ 337.561] (**) | |-->Device "Device0"
[ 337.561] (**) | |-->GPUDevice "Nvidia Card"
[ 337.561] (**) |-->Input Device "Keyboard0"
[ 337.561] (**) |-->Input Device "Mouse0"
[ 337.561] (**) Allowing byte-swapped clients
[ 337.561] (==) Automatically adding devices
[ 337.561] (==) Automatically enabling devices
[ 337.561] (==) Automatically adding GPU devices
[ 337.561] (==) Automatically binding GPU devices
[ 337.562] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 337.563] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[ 337.563] Entry deleted from font path.
[ 337.564] (==) FontPath set to:
/usr/share/fonts/misc,
/usr/share/fonts/TTF,
/usr/share/fonts/OTF,
/usr/share/fonts/100dpi,
/usr/share/fonts/75dpi
[ 337.564] (==) ModulePath set to "/usr/lib/xorg/modules"
[ 337.564] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[ 337.564] (WW) Disabling Keyboard0
[ 337.564] (WW) Disabling Mouse0
[ 337.564] (II) Module ABI versions:
[ 337.564] X.Org ANSI C Emulation: 0.4
[ 337.564] X.Org Video Driver: 25.2
[ 337.564] X.Org XInput driver : 24.4
[ 337.564] X.Org Server Extension : 10.0
[ 337.565] (++) using VT number 1
[ 337.566] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
[ 337.567] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 337.567] (II) Platform probe for /sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/simple-framebuffer.0/drm/card0
[ 337.567] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 13 paused 0
[ 337.573] (--) PCI:*(38@0:0:0) 10de:1244:1043:838c rev 161, Mem @ 0xf8000000/33554432, 0xe0000000/134217728, 0xe8000000/67108864, I/O @ 0x0000e000/128, BIOS @ 0x????????/131072
[ 337.573] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[ 337.573] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[ 337.573] (II) LoadModule: "glx"
[ 337.573] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 337.581] (II) Module glx: vendor="X.Org Foundation"
[ 337.581] compiled for 1.21.1.16, module version = 1.0.0
[ 337.581] ABI class: X.Org Server Extension, version 10.0
[ 337.581] (II) LoadModule: "dri"
[ 337.581] (II) Module "dri" already built-in
[ 337.581] (II) LoadModule: "dbe"
[ 337.581] (II) Module "dbe" already built-in
[ 337.581] (II) LoadModule: "nouveau"
[ 337.581] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
[ 337.583] (II) Module nouveau: vendor="X.Org Foundation"
[ 337.583] compiled for 1.21.1.14, module version = 1.0.18
[ 337.583] Module class: X.Org Video Driver
[ 337.583] ABI class: X.Org Video Driver, version 25.2
[ 337.583] (II) NOUVEAU driver
[ 337.583] (II) NOUVEAU driver for NVIDIA chipset families :
[ 337.583] RIVA TNT (NV04)
[ 337.583] RIVA TNT2 (NV05)
[ 337.583] GeForce 256 (NV10)
[ 337.583] GeForce 2 (NV11, NV15)
[ 337.583] GeForce 4MX (NV17, NV18)
[ 337.583] GeForce 3 (NV20)
[ 337.583] GeForce 4Ti (NV25, NV28)
[ 337.583] GeForce FX (NV3x)
[ 337.583] GeForce 6 (NV4x)
[ 337.584] GeForce 7 (G7x)
[ 337.584] GeForce 8 (G8x)
[ 337.584] GeForce 9 (G9x)
[ 337.584] GeForce GTX 2xx/3xx (GT2xx)
[ 337.584] GeForce GTX 4xx/5xx (GFxxx)
[ 337.584] GeForce GTX 6xx/7xx (GKxxx)
[ 337.584] GeForce GTX 9xx (GMxxx)
[ 337.584] GeForce GTX 10xx (GPxxx)
[ 337.584] (EE) [drm] Failed to open DRM device for (null): -22
[ 337.584] (EE) [drm] Failed to open DRM device for (null): -22
[ 338.135] (EE) [drm] Failed to open DRM device for pci:0000:26:00.0: -19
[ 338.708] (EE) [drm] Failed to open DRM device for pci:0000:26:00.0: -19
[ 338.708] (EE) [drm] Failed to open DRM device for (null): -22
[ 338.708] (EE) [drm] Failed to open DRM device for (null): -22
[ 338.708] (EE) [drm] Failed to open DRM device for (null): -22
[ 338.708] (EE) No devices detected.
[ 338.708] (EE)
Fatal server error:
[ 338.709] (EE) no screens found(EE)
[ 338.709] (EE)
Please consult the The X.Org Foundation support
at [url]http://wiki.x.org[/url]
for help.
[ 338.709] (EE) Please also check the log file at "/home/lrdp/.local/share/xorg/Xorg.0.log" for additional information.
[ 338.709] (EE)
[ 338.718] (EE) Server terminated with error (1). Closing log file.
I've tried many solutions without success. Maybe I'll wait for another Kernel package or get another graphic card ?
Last edited by LRDP (2025-05-07 18:50:40)
Offline
[ 337.581] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
[ 337.583] (II) Module nouveau: vendor="X.Org Foundation"
[ 337.583] compiled for 1.21.1.14, module version = 1.0.18
[ 337.583] Module class: X.Org Video Driver
[ 337.583] ABI class: X.Org Video Driver, version 25.2
[ 337.583] (II) NOUVEAU driver
[ 337.583] (II) NOUVEAU driver for NVIDIA chipset families :
remove xf86-video-nouveau so X will use modesetting driver and veriify if that solves it.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Please use [code][/code] tags, not "quote" tags. Edit your post in this regard.
[ 337.567] (II) Platform probe for /sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/simple-framebuffer.0/drm/card0
and since this is posted in the nvidia-3900xx thread, I'd assume LRDP has nvidia-390xx-utils installed which, blacklists the nouveau kernel module, but failed to build nvidia-390xx-dkms because of gcc15
1. remove the nvidia-settings generated xorg.conf
2. post the output of
lsmod | grep -E '(nouveau|nvidia)'
dkms status
3. removing nvidia-*-utils (and regenerating the initramfs) will allow you to load the nouveau module and use it w/ the modesetting driver or xf86-video-nouveau
4. monitor the nvidia-390xx-dkms package for gcc15 patch
Offline
Here are my concerns about what dificulties we may be facing with the kernel-6.15.patch. If anyone can help with this please jump in. The ccflags-y is a simple fix, but crux of the issue is the differences between the 470 and 390 drivers in common/inc/nv-mm.h function naming convention. The issue I'm concerned with is "how do we implement the vma file locking issue fixed in Joan's 470 patch?"
From reading the comment info about the kernel no longer allowing locks from binary drivers on vma regions, I suspect the 390 driver sets the same mmap locks on vma regions the 470 driver does. I could be wrong, and this may not apply to the old get_user_pages_xxx implementation used by the 390 driver -- but I really suspect it sets the same mmap locks just by a different name.
The problem (to my best understanding) is beginning with 6.15, binary drivers (like Nvidia) can no longer hold file locks in the kernel. (don't know why but it sounds like a security measure for virtual memory areas, etc..). From the code in common/inc/nv-mm.h it looks like that code for the 390 and 470 driver both obtain and release locks of vma mmap'ed regions. What Joan did in the 470 patch was to use vm_flags_reset() to reset the flags preventing the 470 driver from acquiring a lock. He implemented that in nv-mm.h with:
static inline void nv_vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
==> calling: vm_flags_reset(vma, vma->vm_flags | flags);
==> instead of: vm_flags_set(vma, flags);
The 390 driver uses different function names and doesn't use any of those related to the change above. Instead, the 390 common/inc/nv-mm.h uses:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0)
#include <linux/mm.h>
static inline long NV_GET_USER_PAGES(unsigned long start,
unsigned long nr_pages,
int write,
int force,
struct page **pages,
struct vm_area_struct **vmas)
{
unsigned int flags = 0;
if (write)
flags |= FOLL_WRITE;
if (force)
flags |= FOLL_FORCE;
return get_user_pages(start, nr_pages, flags, pages);
}
and below:
static inline long NV_GET_USER_PAGES_REMOTE(struct task_struct *tsk,
struct mm_struct *mm,
unsigned long start,
unsigned long nr_pages,
int write,
int force,
struct page **pages,
struct vm_area_struct **vmas)
{
unsigned int flags = 0;
if (write)
flags |= FOLL_WRITE;
if (force)
flags |= FOLL_FORCE;
return get_user_pages_remote(mm, start, nr_pages, flags, pages, NULL);
}
Then at the bottom of nv-mm.h, the 390 driver users a series of short functions to mmap_read_lock(), mmap_read_unlock(), mmap_write_lock(), mmap_write_unlock(), etc...
I haven't traced it all the way though all sources, but that seems to be the very same functionality in 390 driver where the locks are obtained and released that Joan added the vm_flags_reset(vma, vma->vm_flags | flags) to prevent being obtained in the 470 driver.
Now the good news is vm_flags_reset() is provided by the kernel in linux/mm.h, so that flags function is available to both the 390 and 470 drivers. The problem is where/how to reset the flags in the 390 driver source to fix the locking problem the flags reset was used to fix in the 470 driver? Can we just not set the flags? E.g. just remove the code the sets the flags and accomplish the same thing?:
if (write)
flags |= FOLL_WRITE;
if (force)
flags |= FOLL_FORCE;
This is where I am having difficulty figuring out how to do the same thing Joan did with the 470 driver for 390 driver given the code is completely different. If anyone else has familiarity in this area, or can test and post error logs from the 6.15 kernel, it would really help. I've also spoken with one of the openSUSE driver maintainers who is also aware of the issue, but hasn't been able to test yet. (openSUSE Tumbleweed should update to the 6.15 kernel very close to when Arch does).
Anybody have any ideas on this?
David C. Rankin, J.D.,P.E.
Offline
I've not looked at the code at all, but it seems https://lists.pld-linux.org/mailman/pip … 80475.html has ported the nv_vm_flags_set and nv_vm_flags_clear functions to 390xx ?
Offline
Thanks a lot for your advises, i'll try to get a better system and give soon some news .
I apologize for my poor English (i'm a froggy french)
Offline
Hi, i'm coming back with good news : As Seth said, i've clean the system of all "nvidia" then i've installed "xf-86 nouveau", and it works ! I resumed mi I3WM without problem.
But my second screen (HDMI-I-1) shows graphic parasites or artifacts without being able to write or run an application. Maybe it's coming from "nouveau" driver ?
edit : it's solved, the screens are allright, everything is OK
Thanks for help !
Last edited by LRDP (2025-05-09 17:35:56)
Offline