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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EAC5FC433EF for ; Thu, 7 Apr 2022 13:27:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239606AbiDGN3Z (ORCPT ); Thu, 7 Apr 2022 09:29:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35882 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238108AbiDGN3Z (ORCPT ); Thu, 7 Apr 2022 09:29:25 -0400 Received: from muru.com (muru.com [72.249.23.125]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 157991017EB for ; Thu, 7 Apr 2022 06:27:25 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by muru.com (Postfix) with ESMTPS id C8B2E8125; Thu, 7 Apr 2022 13:25:00 +0000 (UTC) Date: Thu, 7 Apr 2022 16:27:22 +0300 From: Tony Lindgren To: Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= Cc: Greg Kroah-Hartman , Jiri Slaby , Johan Hovold , linux-serial@vger.kernel.org, kernel@pengutronix.de, Steffen Trumtrar , linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, regressions@lists.linux.dev Subject: Re: [PATCH] serial: 8250: Return early in .start_tx() if there are no chars to send Message-ID: References: <20220217211839.443039-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220217211839.443039-1-u.kleine-koenig@pengutronix.de> Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org Hi, * Uwe Kleine-König [700101 02:00]: > From: Steffen Trumtrar > > Don't start the whole chain for TX if there is no data to send. This is > mostly relevant for rs485 mode as there might be rts-before-send and > rts-after-send delays involved. > > Signed-off-by: Steffen Trumtrar > Signed-off-by: Uwe Kleine-König > --- > Hello, > > a few other drivers have such an early exit already (imx, stm32-usart). > I wonder if it applies to all UART drivers that there is nothing to do > in .start_tx() if the circ buffer is empty and there is no x_char to > send. In this case it would be more sensible to ensure in serial_core > that .start_tx() is only ever called if there is something to do. This patch seems to cause a runtime PM regression in v5.18-rc1 where 8250 is never idled for omaps. Looks like the return added here is not paired with put for the serial8250_rpm_get_tx() call above? Regards, Tony #regzbot ^introduced 932d596378b0 > drivers/tty/serial/8250/8250_port.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c > index 3b12bfc1ed67..5d4668f12f71 100644 > --- a/drivers/tty/serial/8250/8250_port.c > +++ b/drivers/tty/serial/8250/8250_port.c > @@ -1657,6 +1657,9 @@ static void serial8250_start_tx(struct uart_port *port) > > serial8250_rpm_get_tx(up); > > + if (!port->x_char && uart_circ_empty(&port->state->xmit)) > + return; > + > if (em485 && > em485->active_timer == &em485->start_tx_timer) > return; > > base-commit: 754e0b0e35608ed5206d6a67a791563c631cec07 > -- > 2.34.1 > 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1151DC433EF for ; Thu, 7 Apr 2022 13:28:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JvbUx918GjqNfqm15EiQ41qWlOK5Nh4HdyFqJ1ccmek=; b=gkbenBQghRO4o9 legw3LVVnTv96tapaRfjweU13+urI2YGOaN8vgtqoHj+o4SBSUElb2jyEDEl6LTEIxqWsCArQbkbr GzIjICAR8rWF1EO4vWmApalKSmD+U1H5doxN6x8BCQyUBNNbhx7ioLBzCGiV1QGlF6KoxO20fKHzA l9d3drtCJjLTRgqUusF19ziPNB69873BV0zUnTzl3BeAfTgBZUuK0CKM4BW+N0GkodvSnz/lOULMX cr0OWWAq/0Vo/i5ZVLmg1090huxIXK9U/G2FLHeztOrh1zaimC96W0/K2jAchzkXIXwunLllCFoOe oANeQZkikQSTAnQD1ZpQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncSAd-00C8HG-Hw; Thu, 07 Apr 2022 13:27:31 +0000 Received: from muru.com ([72.249.23.125]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncSAZ-00C8G7-HP for linux-arm-kernel@lists.infradead.org; Thu, 07 Apr 2022 13:27:28 +0000 Received: from localhost (localhost [127.0.0.1]) by muru.com (Postfix) with ESMTPS id C8B2E8125; Thu, 7 Apr 2022 13:25:00 +0000 (UTC) Date: Thu, 7 Apr 2022 16:27:22 +0300 From: Tony Lindgren To: Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= Cc: Greg Kroah-Hartman , Jiri Slaby , Johan Hovold , linux-serial@vger.kernel.org, kernel@pengutronix.de, Steffen Trumtrar , linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, regressions@lists.linux.dev Subject: Re: [PATCH] serial: 8250: Return early in .start_tx() if there are no chars to send Message-ID: References: <20220217211839.443039-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220217211839.443039-1-u.kleine-koenig@pengutronix.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220407_062727_652016_3F91EE12 X-CRM114-Status: GOOD ( 20.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgoqIFV3ZSBLbGVpbmUtS8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+ IFs3MDAxMDEgMDI6MDBdOgo+IEZyb206IFN0ZWZmZW4gVHJ1bXRyYXIgPHMudHJ1bXRyYXJAcGVu Z3V0cm9uaXguZGU+Cj4gCj4gRG9uJ3Qgc3RhcnQgdGhlIHdob2xlIGNoYWluIGZvciBUWCBpZiB0 aGVyZSBpcyBubyBkYXRhIHRvIHNlbmQuIFRoaXMgaXMKPiBtb3N0bHkgcmVsZXZhbnQgZm9yIHJz NDg1IG1vZGUgYXMgdGhlcmUgbWlnaHQgYmUgcnRzLWJlZm9yZS1zZW5kIGFuZAo+IHJ0cy1hZnRl ci1zZW5kIGRlbGF5cyBpbnZvbHZlZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTdGVmZmVuIFRydW10 cmFyIDxzLnRydW10cmFyQHBlbmd1dHJvbml4LmRlPgo+IFNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVp bmUtS8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+Cj4gLS0tCj4gSGVsbG8s Cj4gCj4gYSBmZXcgb3RoZXIgZHJpdmVycyBoYXZlIHN1Y2ggYW4gZWFybHkgZXhpdCBhbHJlYWR5 IChpbXgsIHN0bTMyLXVzYXJ0KS4KPiBJIHdvbmRlciBpZiBpdCBhcHBsaWVzIHRvIGFsbCBVQVJU IGRyaXZlcnMgdGhhdCB0aGVyZSBpcyBub3RoaW5nIHRvIGRvCj4gaW4gLnN0YXJ0X3R4KCkgaWYg dGhlIGNpcmMgYnVmZmVyIGlzIGVtcHR5IGFuZCB0aGVyZSBpcyBubyB4X2NoYXIgdG8KPiBzZW5k LiBJbiB0aGlzIGNhc2UgaXQgd291bGQgYmUgbW9yZSBzZW5zaWJsZSB0byBlbnN1cmUgaW4gc2Vy aWFsX2NvcmUKPiB0aGF0IC5zdGFydF90eCgpIGlzIG9ubHkgZXZlciBjYWxsZWQgaWYgdGhlcmUg aXMgc29tZXRoaW5nIHRvIGRvLgoKVGhpcyBwYXRjaCBzZWVtcyB0byBjYXVzZSBhIHJ1bnRpbWUg UE0gcmVncmVzc2lvbiBpbiB2NS4xOC1yYzEgd2hlcmUKODI1MCBpcyBuZXZlciBpZGxlZCBmb3Ig b21hcHMuCgpMb29rcyBsaWtlIHRoZSByZXR1cm4gYWRkZWQgaGVyZSBpcyBub3QgcGFpcmVkIHdp dGggcHV0IGZvciB0aGUKc2VyaWFsODI1MF9ycG1fZ2V0X3R4KCkgY2FsbCBhYm92ZT8KClJlZ2Fy ZHMsCgpUb255CgojcmVnemJvdCBeaW50cm9kdWNlZCA5MzJkNTk2Mzc4YjAKCj4gIGRyaXZlcnMv dHR5L3NlcmlhbC84MjUwLzgyNTBfcG9ydC5jIHwgMyArKysKPiAgMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84 MjUwX3BvcnQuYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfcG9ydC5jCj4gaW5kZXgg M2IxMmJmYzFlZDY3Li41ZDQ2NjhmMTJmNzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy90dHkvc2Vy aWFsLzgyNTAvODI1MF9wb3J0LmMKPiArKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUw X3BvcnQuYwo+IEBAIC0xNjU3LDYgKzE2NTcsOSBAQCBzdGF0aWMgdm9pZCBzZXJpYWw4MjUwX3N0 YXJ0X3R4KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCj4gIAo+ICAJc2VyaWFsODI1MF9ycG1fZ2V0 X3R4KHVwKTsKPiAgCj4gKwlpZiAoIXBvcnQtPnhfY2hhciAmJiB1YXJ0X2NpcmNfZW1wdHkoJnBv cnQtPnN0YXRlLT54bWl0KSkKPiArCQlyZXR1cm47Cj4gKwo+ICAJaWYgKGVtNDg1ICYmCj4gIAkg ICAgZW00ODUtPmFjdGl2ZV90aW1lciA9PSAmZW00ODUtPnN0YXJ0X3R4X3RpbWVyKQo+ICAJCXJl dHVybjsKPiAKPiBiYXNlLWNvbW1pdDogNzU0ZTBiMGUzNTYwOGVkNTIwNmQ2YTY3YTc5MTU2M2M2 MzFjZWMwNwo+IC0tIAo+IDIuMzQuMQo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=