MTRR cleanup does not kick in
From: Michael Reinelt
Date: Sat Mar 17 2012 - 02:38:19 EST
Hi there,
I am (again) suffering from:
kernel: mtrr: no more MTRRs available
kernel: [drm] MTRR allocation failed. Graphics performance may suffer.
kernel is vanilla 3.2.11
I know that this *used* to work, but I had to specify mtrr_gran_size=16M mtrr_chunk_size=128M on the kernel command line.
Now, with the current kernel, I could not find *any* MTRR cleanup debug messages at all.
I debugged a bit, and probably found the cause:
arch/x86/kernel/cpu/mtrr/cleanup.c:mtrr_need_cleanup(void)
/* Check if we only had WB and UC */
if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
num_var_ranges - num[MTRR_NUM_TYPES])
return 0;
This one kicks in, and disables the MTRR cleanup, resulting in all 10 MTRR registers in use, and no more MTRRs available
for DRM.
I disabled this check, and now the MTRR cleaner works fine, even finding a optimal value for my system with only 9
registers, leaving one available for DRM.
maybe the mtrr_need_cleanup() function should take nr_mtrr_spare_reg into account?
regards, Michael
PS please keep me on CC as I'm not subscribed. thanks!
--
Michael Reinelt <michael@xxxxxxxxxxxxx>
http://home.pages.at/reinelt
GPG-Key 0xDF13BA50
ICQ #288386781
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/