On Sun, 2016-01-10 at 16:23 +0000, Luca Boccassi wrote: > On Tue, 5 Jan 2016 12:15:03 +0100 Arturo Borrero Gonzalez > <arturo.borrero.g...@gmail.com> wrote: > > Hi, > > > > I'm suffering the same issue here. > > > > best regards. > > Hi, > > Unfortunately there might not be much we can do until Nvidia releases a fix. > > The kernel module in 304 (but not in more recent releases) is using a > kernel API that has been deprecated in 4.3: > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2baa891e42d84159b693eadd44f6fe1486285bdc > > It's used in the AGP code. The new API is not a drop-in replacement > unfortunately, as it requires some state to be saved. The internal API > modules in the Nvidia kernel module do not appear to support that (see > kernel/os-mtrr.c), so we can't really patch it ourselves, as we have > no way of changing the closed-source blob that uses that API. The only > workaround would be to entirely disable MTRR, but I have no idea what > implications that will have with AGP performances, so I'm not sure > it's an acceptable workaround.
Looking at this again, it seems MTRR is only of use on old x86 hardware. Modern CPUs will use PAT instead. Given also that the current version is completely broken and unusable, I'm reconsidering and wondering if it's worth undefining MTRR if >= 4.3, until Nvidia fixes it upstream. Although it might mean lower performance (or other regressions) for users with a very old x86 CPU and an AGP GPU, it should un-break it for everyone else. Andreas, what do you think we should do? I've committed a patch to SVN (tested that the module builds on x86 and x86_64 on 3.16, 4.2, 4.3 and 4.4, but I don't have hardware to do anything beyond that unfortunately). Hopefully the next upstream patch release will fix it and we can revert it. Kind regards, Luca Boccassi
signature.asc
Description: This is a digitally signed message part