# nvidia-drivers and CONFIG_X86_PAE

## Gentooya

I have just installed a new kernel .config with CONFIG_PAE and CONFIG_HIGHMEM64G enabled. Now my system does not run anymore. I have also reinstalled the x11-drivers/nvidia-drivers but I still get an error from the nvidia kernel module. The kernel bug occurs right at boot time when the kernel runs up. It happens pretty much every time I boot up.

Anyone ever seen this problem and has advice how to fix this?

[   21.246540] BUG: unable to handle kernel paging request at e2bdd000

[   21.267174] IP: [<e293b9ab>] os_alloc_mem+0x7b/0xc0 [nvidia]

[   21.286127] *pdpt = 0000000000a60001 *pde = 0000000019cd5063 *pte = daa38c04dbe3aca4 

[   21.311471] Oops: 0002 [#1] SMP 

[   21.323058] Modules linked in: nvidia(P+) btusb bluetooth brcmsmac snd_hda_codec_hdmi mac802t

[   21.424316] 

[   21.430868] Pid: 4910, comm: modprobe Tainted: P           O 3.2.2-hardened-r1 #1 Hewlett-PaB

[   21.466618] EIP: 0060:[<e293b9ab>] EFLAGS: 00010286 CPU: 0

[   21.486162] EIP is at os_alloc_mem+0x7b/0xc0 [nvidia]

[   21.504260] EAX: 0000002e EBX: daa38ca4 ECX: e2bdd000 EDX: e2bdd000

[   21.526009] ESI: 00020005 EDI: daa38cc0 EBP: d9141fe8 ESP: d9ecfdfc

[   21.547789]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068

[   21.567009] Process modprobe (pid: 4910, ti=da972ae8 task=da972780 task.ti=da972ae8)

[   21.593309] Stack:

[   21.602510]  daa38ca4 daa38c04 e2905d90 daa38ca4 00020000 daa38ca4 e2327cec daa38ca4

[   21.629087]  00020000 d97f4004 e20df120 d97f4004 e2316912 daa38c04 00000000 e2315dcf

[   21.655708]  d97f4004 0000000a e2315ba2 d97f4004 00000067 00000000 d97f4004 00000000

[   21.682381] Call Trace:

[   21.693248]  [<e2905d90>] ? _nv014464rm+0x84/0x96 [nvidia]

[   21.713240]  [<e2327cec>] ? _nv004045rm+0x40/0xc4 [nvidia]

[   21.733221]  [<e2316912>] ? _nv001054rm+0xc82/0x2da9 [nvidia]

[   21.753961]  [<e2315dcf>] ? _nv001054rm+0x13f/0x2da9 [nvidia]

[   21.774654]  [<e2315ba2>] ? _nv004058rm+0x17a/0x19a [nvidia]

[   21.795043]  [<e2315ab9>] ? _nv004058rm+0x91/0x19a [nvidia]

[   21.815114]  [<e2315c1b>] ? _nv001094rm+0x59/0xce [nvidia]

[   21.834897]  [<e290fc01>] ? rm_init_rm+0x1f/0xfd [nvidia]

[   21.854254]  [<c0602b8d>] ? pci_get_class+0x6d/0x90

[   21.872045]  [<c0602b8d>] ? pci_get_class+0x6d/0x90

[   21.889944]  [<e2b561d8>] ? nvidia_init_module+0x1d8/0x85680 [nvidia]

[   21.912409]  [<c026a106>] ? notifier_call_chain+0x46/0x60

[   21.931763]  [<c02011f2>] ? tlb_vector_offset+0xc10011f2/0x40

[   21.952158]  [<c026a40d>] ? __blocking_notifier_call_chain+0x4d/0x70

[   21.974387]  [<e2b56000>] ? 0xe2b55fff

[   21.988861]  [<c027d8ac>] ? sys_init_module+0x16c/0x1bd0

[   22.008183]  [<e2b17d08>] ? __param_NVreg_EnableVia4x+0x4a970/0x834e1 [nvidia]

[   22.033267]  [<e293d2b0>] ? nvidia_exit_module+0x3e4/0x3e4 [nvidia]

[   22.055347]  [<c0a5621d>] ? sysenter_do_call+0x12/0x22

[   22.074062] Code: 63 09 00 00 83 ce 01 e8 04 5d 9b dd 89 03 89 c2 eb 10 8d b6 00 00 00 00 81 

[   22.138933] EIP: [<e293b9ab>] os_alloc_mem+0x7b/0xc0 [nvidia] SS:ESP 0068:d9ecfdfc

[   22.165429] CR2: 00000000e2bdd000

[   22.178997] ---[ end trace 4bc2ca831a0accc7 ]---

udevd-work[4850]: '/sbin/modprobe -bv pci:v000010DEd00000A6Csv0000103Csd0000172Bbc03sc00i00' un9

----------

## Hu

Your nVidia proprietary module is causing an invalid memory access.  Specifically, nv014464rm is accessing memory in a prohibited manner.  Normally, I suggest trying to reproduce with an untainted kernel.  You can probably get around this by blacklisting the load of the nVidia module, but then you will have very limited graphics support.

Did this work before you switched to a high memory kernel?  Are you sure the nVidia driver is documented to support such a kernel?

----------

## Gentooya

Yes, it worked perfectly with exactly that same kernel and a different kernel config. I have only changed CONFIG_X86_PAE, CONFIG_HIGHMEM64G and some CONFIG options that come with it.

The kernel panic only shows up since I switched on PAE. 

I really need the nvidia driver for graphics support. So blacklisting it is not an option.

Where can I find out what kernel the driver works under? It doesn't really show a list of supported kernels or anything like that anywhere?

Thanks!

----------

## Hu

If you had a different kernel configuration, then you had a different kernel.  If you cannot use the open driver, then your options are to get nVidia to fix their driver or to disable PAE.  I avoid the nVidia driver due to its frequent regressions, so I do not know where or if they document supported kernel configurations.

----------

## jamapii

Maybe you can switch to a 64bit kernel. It runs 32bit userland with no problems, at least it did so a few years ago for me.

Alternatively, if the hardware is old, switching to the nouveau driver might be a good option.

There was a time when I had enabled an IOMMU option in the kernel, and this broke graphics, but the system did not crash.

----------

## Aiken

After installing the new kernel did you reinstall the nvidia driver? I have been using CONFIG_X86_PAE and CONFIG_HIGHMEM64G with nvidia drivers. Just guessing but wondering if the nvidia driver was compiled for a non pae kernel maybe it is not happy being run on a pae + highmem64G kernel without being reinstalled.

----------

