From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yrjan Skrimstad Subject: Re: [PATCH] drm/amd/powerplay/smu7_hwmgr: replace blocking delay with non-blocking Date: Tue, 4 Jun 2019 22:21:49 +0200 Message-ID: <20190604202149.GA20116@obi-wan> References: <20190530000819.GA25416@obi-wan> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190530000819.GA25416@obi-wan> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: David Airlie , linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org, Alex Deucher , Evan Quan , Rex Zhu , Christian =?iso-8859-1?Q?K=F6nig?= List-Id: amd-gfx.lists.freedesktop.org T24gVGh1LCBNYXkgMzAsIDIwMTkgYXQgMDI6MDg6MjFBTSArMDIwMCwgWXJqYW4gU2tyaW1zdGFk IHdyb3RlOgo+IFRoaXMgZHJpdmVyIGN1cnJlbnRseSBjb250YWlucyBhIHJlcGVhdGVkIDUwMG1z IGJsb2NraW5nIGRlbGF5IGNhbGwKPiB3aGljaCBjYXVzZXMgZnJlcXVlbnQgbWFqb3IgYnVmZmVy IHVuZGVycnVucyBpbiBQdWxzZUF1ZGlvLiBUaGlzIHBhdGNoCj4gZml4ZXMgdGhpcyBpc3N1ZSBi eSByZXBsYWNpbmcgdGhlIGJsb2NraW5nIGRlbGF5IHdpdGggYSBub24tYmxvY2tpbmcKPiBzbGVl cCBjYWxsLgoKSSBzZWUgdGhhdCBJIGhhdmUgbm90IGV4cGxhaW5lZCB0aGlzIGJ1ZyB3ZWxsIGVu b3VnaCwgYW5kIEkgaG9wZSB0aGF0IGlzCnRoZSByZWFzb24gZm9yIHRoZSBsYWNrIG9mIHJlcGxp ZXMgb24gdGhpcyBwYXRjaC4gSSB3aWxsIGhlcmUgYXR0ZW1wdCB0bwpleHBsYWluIHRoZSBzaXR1 YXRpb24gYmV0dGVyLgoKVG8gc3RhcnQgd2l0aCBzb21lIGhhcmR3YXJlIGRlc2NyaXB0aW9uIEkg YW0gaGVyZSB1c2luZyBhbiBBTUQgUjkgMzgwCkdQVSwgYW4gQU1EIFJ5emVuIDcgMTcwMCBFaWdo dC1Db3JlIFByb2Nlc3NvciBhbmQgYW4gQU1EIFgzNzAgY2hpcHNldC4KSWYgYW55IG1vcmUgaGFy ZHdhcmUgb3Igc29mdHdhcmUgc3BlY2lmaWNhdGlvbnMgYXJlIG5lY2Vzc2FyeSwgcGxlYXNlCmFz ay4KClRoZSBidWcgaXMgYXMgZm9sbG93czogV2hlbiBwbGF5aW5nIGF1ZGlvIEkgd2lsbCByZWd1 bGFybHkgaGF2ZSBtYWpvcgphdWRpbyBpc3N1ZXMsIHNpbWlsYXIgdG8gdGhhdCBvZiBhIHNraXBw aW5nIENELiBUaGlzIGlzIHJlcG9ydGVkIGJ5ClB1bHNlQXVkaW8gYXMgc2NoZWR1bGluZyBkZWxh eXMgYW5kIGJ1ZmZlciB1bmRlcnJ1bnMgd2hlbiBydW5uaW5nClB1bHNlQXVkaW8gdmVyYm9zZWx5 IGFuZCB0aGVzZSBzY2hlZHVsaW5nIGRlbGF5cyBhcmUgYWx3YXlzIGp1c3QgdW5kZXIKNTAwbXMs IHR5cGljYWxseSBhcm91bmQgNDkwbXMuIFRoaXMgbWFrZXMgbGlzdGVuaW5nIHRvIGFueSBtdXNp YyBxdWl0ZQp0aGUgaG9ycmlibGUgZXhwZXJpZW5jZSBhcyBQdWxzZUF1ZGlvIGNvbnN0YW50bHkg d2lsbCBhdHRlbXB0IHRvIHJld2luZAphbmQgY2F0Y2ggdXAuIEl0IGlzIG5vdCBhIGdyZWF0IHNp dHVhdGlvbiwgYW5kIHNlZW1zIHRvIG1lIHRvIHF1aXRlCmNsZWFybHkgYmUgYSBjYXNlIHdoZXJl IHJlZ3VsYXIgdXNlciBzcGFjZSBiZWhhdmlvdXIgaGFzIGJlZW4gYnJva2VuLgoKSSB3YW50IHRv IG5vdGUgdGhhdCB0aGlzIGF1ZGlvIHByb2JsZW0gd2FzIG5vdCBzb21ldGhpbmcgSSBleHBlcmll bmNlZAp1bnRpbCByZWNlbnRseSwgaXQgaXMgdGhlcmVmb3JlIGEgbmV3IGJ1Zy4KCkkgaGF2ZSBi aXNlY3RlZCB0aGUga2VybmVsIHRvIGZpbmQgb3V0IHdoZXJlIHRoZSBwcm9ibGVtIG9yaWdpbmF0 ZWQgYW5kCmZvdW5kIHRoZSBmb2xsb3dpbmcgY29tbWl0OgoKIyBmaXJzdCBiYWQgY29tbWl0OiBb ZjU3NDJlYzM2NDIyYTM5YjU3ZjAyNTZlNDg0N2Y2MWIzYzQzMmY4Y10gZHJtL2FtZC9wb3dlcnBs YXk6IGNvcnJlY3QgcG93ZXIgcmVhZGluZyBvbiBmaWppCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2Vz IGEgYmxvY2tpbmcgZGVsYXkgKG1kZWxheSkgb2YgNTAwbXMsIHdoZXJlYXMgdGhlCm9sZCBiZWhh dmlvdXIgd2FzIGEgc21hbGxlciBibG9ja2luZyBkZWxheSBvZiBvbmx5IDFtcy4gVGhpcyBzZWVt cyB0byBtZQp0byBiZSB2ZXJ5IGN1cmlvdXMgYXMgdGhlIHNjaGVkdWxpbmcgZGVsYXlzIG9mIFB1 bHNlQXVkaW8gYXJlIGFsd2F5cwphbG1vc3QgNTAwbXMuIEkgaGF2ZSB0aGVyZWZvcmUgd2l0aCB0 aGUgcHJldmlvdXMgcGF0Y2ggcmVwbGFjZWQgdGhlCnNjaGVkdWxpbmcgZGVsYXkgd2l0aCBhIG5v bi1ibG9ja2luZyBzbGVlcCAobXNsZWVwKS4KClRoZSByZXN1bHRzIG9mIHRoZSBwYXRjaCBzZWVt cyBwcm9taXNpbmcgYXMgSSBoYXZlIHlldCB0byBlbmNvdW50ZXIgYW55Cm9mIHRoZSBvbGQgPDUw MG1zIHNjaGVkdWxpbmcgZGVsYXlzIHdoZW4gdXNpbmcgaXQgYW5kIEkgaGF2ZSBhbHNvIG5vdApl bmNvdW50ZXJlZCBhbnkga2VybmVsIGxvZyBtZXNzYWdlcyByZWdhcmRpbmcgc2xlZXBpbmcgaW4g YW4gYXRvbWljCmNvbnRleHQuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D26DC282CE for ; Tue, 4 Jun 2019 20:21:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DD4942070D for ; Tue, 4 Jun 2019 20:21:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726454AbfFDUV6 (ORCPT ); Tue, 4 Jun 2019 16:21:58 -0400 Received: from mail.skrimstad.net ([139.162.145.221]:35832 "EHLO mail.skrimstad.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725933AbfFDUV5 (ORCPT ); Tue, 4 Jun 2019 16:21:57 -0400 Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by mail.skrimstad.net (Postfix) with ESMTPA id 7C155DE701; Tue, 4 Jun 2019 20:21:52 +0000 (UTC) Date: Tue, 4 Jun 2019 22:21:49 +0200 From: Yrjan Skrimstad To: dri-devel@lists.freedesktop.org Cc: Rex Zhu , Evan Quan , Alex Deucher , Christian =?iso-8859-1?Q?K=F6nig?= , "David (ChunMing) Zhou" , David Airlie , Daniel Vetter , amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm/amd/powerplay/smu7_hwmgr: replace blocking delay with non-blocking Message-ID: <20190604202149.GA20116@obi-wan> References: <20190530000819.GA25416@obi-wan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190530000819.GA25416@obi-wan> Authentication-Results: mail.skrimstad.net; auth=pass smtp.auth=yrjan@skrimstad.net smtp.mailfrom=yrjan@skrimstad.net X-Spamd-Bar: / Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 30, 2019 at 02:08:21AM +0200, Yrjan Skrimstad wrote: > This driver currently contains a repeated 500ms blocking delay call > which causes frequent major buffer underruns in PulseAudio. This patch > fixes this issue by replacing the blocking delay with a non-blocking > sleep call. I see that I have not explained this bug well enough, and I hope that is the reason for the lack of replies on this patch. I will here attempt to explain the situation better. To start with some hardware description I am here using an AMD R9 380 GPU, an AMD Ryzen 7 1700 Eight-Core Processor and an AMD X370 chipset. If any more hardware or software specifications are necessary, please ask. The bug is as follows: When playing audio I will regularly have major audio issues, similar to that of a skipping CD. This is reported by PulseAudio as scheduling delays and buffer underruns when running PulseAudio verbosely and these scheduling delays are always just under 500ms, typically around 490ms. This makes listening to any music quite the horrible experience as PulseAudio constantly will attempt to rewind and catch up. It is not a great situation, and seems to me to quite clearly be a case where regular user space behaviour has been broken. I want to note that this audio problem was not something I experienced until recently, it is therefore a new bug. I have bisected the kernel to find out where the problem originated and found the following commit: # first bad commit: [f5742ec36422a39b57f0256e4847f61b3c432f8c] drm/amd/powerplay: correct power reading on fiji This commit introduces a blocking delay (mdelay) of 500ms, whereas the old behaviour was a smaller blocking delay of only 1ms. This seems to me to be very curious as the scheduling delays of PulseAudio are always almost 500ms. I have therefore with the previous patch replaced the scheduling delay with a non-blocking sleep (msleep). The results of the patch seems promising as I have yet to encounter any of the old <500ms scheduling delays when using it and I have also not encountered any kernel log messages regarding sleeping in an atomic context.