From patchwork Sun Dec 23 10:55:28 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Borislav Petkov X-Patchwork-Id: 1906861 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id 18934DF25A for ; Sun, 23 Dec 2012 10:55:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C150EE6106 for ; Sun, 23 Dec 2012 02:55:46 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail.skyhub.de (mail.skyhub.de [78.46.96.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 6FE3FE5DD3 for ; Sun, 23 Dec 2012 02:55:31 -0800 (PST) X-Virus-Scanned: Nedap ESD1 at mail.skyhub.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alien8.de; s=alien8; t=1356260130; bh=H8U4pOQSaTgGJgNEWnHmX2MvEy6JrWiBZc6IeR4mcN4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Transfer-Encoding:In-Reply-To; b=rHtrHvP+MGZG OhW13REiZPdNAa45gkw9XdYtYpPssYZ0oN5n1x+to2FSHGjic/WTlj7FSy/7RJobVvZ Imso8+qV7lR+cTzzLiNCmgdWwSlc/qEZBPQMIjeai4+2Nq09FwgT8G/esAQ9KJcSmXR ZHmXyS14Kq8Px5MCdEC3E6ODU= Received: from mail.skyhub.de ([127.0.0.1]) by localhost (door.skyhub.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id YYjBY4032EkL; Sun, 23 Dec 2012 11:55:29 +0100 (CET) Received: from liondog.tnic (p54B7F4AC.dip.t-dialin.net [84.183.244.172]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 4C6361D9C1C; Sun, 23 Dec 2012 11:55:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alien8.de; s=alien8; t=1356260129; bh=H8U4pOQSaTgGJgNEWnHmX2MvEy6JrWiBZc6IeR4mcN4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Transfer-Encoding:In-Reply-To; b=mTPtBHN/pyBo zTEMqAKlrHILLJyLS9XJA4RnE5LR6VQjtdKkS0KCcwVZYBfrEgYJuqLpN3C6oBVsRzE 5+OKPuaVTLkugtdAYuSzXz5bu1wJyHKv1sV8h0lrV9OF8nNadxl2zTiCWnHUcQoiK1i 60MiGXvNMKGpB/HIXxWiJcwlg= Received: by liondog.tnic (Postfix, from userid 1000) id 3FA3E4B8B78; Sun, 23 Dec 2012 11:55:28 +0100 (CET) Date: Sun, 23 Dec 2012 11:55:28 +0100 From: Borislav Petkov To: Alex Deucher Subject: Re: radeon 0000:02:00.0: GPU lockup CP stall for more than 10000msec Message-ID: <20121223105527.GA6230@liondog.tnic> Mail-Followup-To: Borislav Petkov , Alex Deucher , Alex Deucher , dri-devel@lists.freedesktop.org, lkml References: <20121222203547.GA5319@liondog.tnic> <20121223002507.GA12121@liondog.tnic> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Alex Deucher , lkml , dri-devel@lists.freedesktop.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org On Sat, Dec 22, 2012 at 07:42:16PM -0500, Alex Deucher wrote: > Does booting with radeon.wb=0 help? Right, this param specification somehow didn't work here: [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-rc1 root=/dev/sda1 ro vga=0 log_bug_len=10M resume=/dev/sda2 no_console_suspend ignore_loglevel hpet=force radeon.wb=0 [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-rc1 root=/dev/sda1 ro vga=0 log_bug_len=10M resume=/dev/sda2 no_console_suspend ignore_loglevel hpet=force radeon.wb=0 [ … ] [ 6.910104] radeon: `0' invalid for parameter `wb' [ … ] [ 28.191072] radeon: `0' invalid for parameter `wb' although the whole driver blubber didn't appear on the console fterwards aso something got turned off allright. Then, I went and tried "radeon.no_wb" where the driver blubber appeared but AGP writeback was still enabled: [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-rc1 root=/dev/sda1 ro vga=0 log_bug_len=10M resume=/dev/sda2 no_console_suspend ignore_loglevel hpet=force radeon.no_wb [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-rc1 root=/dev/sda1 ro vga=0 log_bug_len=10M resume=/dev/sda2 no_console_suspend ignore_loglevel hpet=force radeon.no_wb [ … ] [ 6.382636] [drm] radeon kernel modesetting enabled. [ 6.384915] radeon 0000:02:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used) [ 6.384981] radeon 0000:02:00.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF [ 6.388137] [drm] radeon: 512M of VRAM memory ready [ 6.388181] [drm] radeon: 512M of GTT memory ready. [ 6.388509] radeon 0000:02:00.0: irq 42 for MSI/MSI-X [ 6.388570] radeon 0000:02:00.0: radeon: using MSI. [ 6.388705] [drm] radeon: irq initialized. [ 6.567811] radeon 0000:02:00.0: WB enabled ^^^^^^^^^^ [ 6.567856] radeon 0000:02:00.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0xffff8802243e5c00 [ 6.567922] radeon 0000:02:00.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c and cpu addr 0xffff8802243e5c0c [ 6.601247] [drm] Radeon Display Connectors [ 6.602427] [drm] radeon: power management initialized [ 6.722544] fbcon: radeondrmfb (fb0) is primary device [ 6.945065] radeon 0000:02:00.0: fb0: radeondrmfb frame buffer device [ 6.945100] radeon 0000:02:00.0: registered panic notifier [ 6.945159] [drm] Initialized radeon 2.27.0 20080528 for 0000:02:00.0 on minor 0 At this point, I got tired of this experimenting and went and took the big hammer :-): [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-rc1+ root=/dev/sda1 ro vga=0 log_bug_len=10M resume=/dev/sda2 no_console_suspend ignore_loglevel hpet=force radeon.no_wb no_wb [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-rc1+ root=/dev/sda1 ro vga=0 log_bug_len=10M resume=/dev/sda2 no_console_suspend ignore_loglevel hpet=force radeon.no_wb no_wb [ 6.562905] [drm] radeon kernel modesetting enabled. [ 6.565106] radeon 0000:02:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used) [ 6.565172] radeon 0000:02:00.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF [ 6.567696] [drm] radeon: 512M of VRAM memory ready [ 6.567742] [drm] radeon: 512M of GTT memory ready. [ 6.568068] radeon 0000:02:00.0: irq 42 for MSI/MSI-X [ 6.568130] radeon 0000:02:00.0: radeon: using MSI. [ 6.568269] [drm] radeon: irq initialized. [ 6.684920] radeon_wb_init: disable the goddam WB: radeon_no_wb: 0 [ 6.684967] radeon 0000:02:00.0: WB disabled ^^^^^^^^^^^ [ 6.685011] radeon 0000:02:00.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0xffff880221ea3c00 [ 6.685077] radeon 0000:02:00.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c and cpu addr 0xffff880221ea3c0c [ 6.722367] [drm] Radeon Display Connectors [ 6.723548] [drm] radeon: power management initialized [ 6.843185] fbcon: radeondrmfb (fb0) is primary device [ 7.066368] radeon 0000:02:00.0: fb0: radeondrmfb frame buffer device [ 7.066402] radeon 0000:02:00.0: registered panic notifier [ 7.066462] [drm] Initialized radeon 2.27.0 20080528 for 0000:02:00.0 on minor 0 Ok, I hope I turned off the proper WB thing (I'm assuming you meant the radeon_no_wb parameter). And I'm running with it now, will report what happens. Btw, I'm no GPU guy but why does radeon_wb_init() do all that memory allocation and cleaning if wb can be disabled with a parameter? Shouldn't it be checking the parameter, ->family, etc setting first and only do the allocations when rdev->wb.enabled remains true? Thanks. diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 49b06590001e..00214312db23 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c @@ -307,6 +307,11 @@ int radeon_wb_init(struct radeon_device *rdev) rdev->wb.use_event = true; } + if (rdev->wb.enabled) { + pr_err("%s: disable the goddam WB: radeon_no_wb: %d\n", __func__, radeon_no_wb); + rdev->wb.enabled = false; + } + dev_info(rdev->dev, "WB %sabled\n", rdev->wb.enabled ? "en" : "dis"); return 0;