From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754989Ab2CQGhs (ORCPT ); Sat, 17 Mar 2012 02:37:48 -0400 Received: from mailbackup.inode.at ([213.229.60.24]:36297 "EHLO mailbackup.inode.at" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752826Ab2CQGhn (ORCPT ); Sat, 17 Mar 2012 02:37:43 -0400 Message-ID: <4F6430F7.70207@reinelt.co.at> Date: Sat, 17 Mar 2012 07:36:39 +0100 From: Michael Reinelt User-Agent: Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.8.0.7) Gecko/20061013 Thunderbird/1.5.0.7 Mnenhy/0.7.4.666 MIME-Version: 1.0 To: lkml Subject: MTRR cleanup does not kick in Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781