From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 58F151DDD5; Mon, 19 Feb 2024 14:31:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.197 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708353110; cv=none; b=V3EGEvzHoOdySDZeqousIvQ55ZF8yz0JAsE4B7EPl2wrFxIug6TYDVsTXItGeX59ty8I4VHnxSkq8AGsH6c6jfa4GrntW9WvOWiqMHpwrtNHzV+zmDTlQG7CeU7G/5Ye92nG+6Vlqkr99Zs7ZXdryyLQyMmxkw5SDCNoPsHwmoo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708353110; c=relaxed/simple; bh=hKfqt+6AH9WiehjZH1IaTO+O21L0m+AX+DTUgObkBAY=; h=Mime-Version:Content-Type:Date:Message-Id:Subject:Cc:To:From: References:In-Reply-To; b=TXtWzg/yICbzsBN49fh6U8KD0zvgyQhbOw9OSVOtPuwyQ42indSK83PcpB0dD2VzKcDkBlxTlCQdf8e7f4vQU7Jvi1M8667WB+EBfXeI6ovrr5yF0N9DAW/+PdMyZUy1kGLH72TTBA/qy1x+e3VEKvm0i7nbboZklhW/jyAnCWc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=kC7uVdmQ; arc=none smtp.client-ip=217.70.183.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="kC7uVdmQ" Received: by mail.gandi.net (Postfix) with ESMTPSA id 9F9441C0012; Mon, 19 Feb 2024 14:31:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1708353106; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hKfqt+6AH9WiehjZH1IaTO+O21L0m+AX+DTUgObkBAY=; b=kC7uVdmQuKOY2GZO7/+U8nGkDmIS2gUMSAn6I3uoBiu8m1t7O7ruLaNdalx34aTxFThyby 4xEjQzka7TB8XMIdmRxWxQw3OWpVgOT5vk695IlP4IdxkXuFPU4ApdZhDB5Kl+CVQpr+RC ZVvauYyA3BM0jtZ8FruNvEisL5LZS9HTI5K9Sa6dgtv2w/u3zzhXJBYg9iPSh+l2eXSZJn 3GvZd2GHfFANPZX8zWkS4LXroL2RmFjaem7TJvuJaX7ZRN/WCZfspHigpm5MWOb8kbXvhz jo71SgSyaCFgtWRj/NFHARZzLGnwwSOQ8EVbfHSHGPu9KBuRop9FCd/wV0uXpA== Precedence: bulk X-Mailing-List: linux-i2c@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Mon, 19 Feb 2024 15:31:45 +0100 Message-Id: Subject: Re: [PATCH 07/13] i2c: nomadik: support short xfer timeouts using waitqueue & hrtimer Cc: "Andi Shyti" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "Thomas Bogendoerfer" , , , , , , "Gregory Clement" , "Vladimir Kondratiev" , "Thomas Petazzoni" , "Tawfik Bayouk" To: "Linus Walleij" From: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: aerc 0.15.2 References: <20240215-mbly-i2c-v1-0-19a336e91dca@bootlin.com> <20240215-mbly-i2c-v1-7-19a336e91dca@bootlin.com> In-Reply-To: X-GND-Sasl: theo.lebrun@bootlin.com Hello, On Mon Feb 19, 2024 at 3:19 PM CET, Linus Walleij wrote: > On Thu, Feb 15, 2024 at 5:52=E2=80=AFPM Th=C3=A9o Lebrun wrote: > > > Replace the completion by a waitqueue for synchronization from IRQ > > handler to task. For short timeouts, use hrtimers, else use timers. > > Usecase: avoid blocking the I2C bus for too long when an issue occurs. > > > > The threshold picked is one jiffy: if timeout is below that, use > > hrtimers. This threshold is NOT configurable. > > > > Implement behavior but do NOT change fetching of timeout. This means th= e > > timeout is unchanged (200ms) and the hrtimer case will never trigger. > > > > A waitqueue is used because it supports both desired timeout approaches= . > > See wait_event_timeout() and wait_event_hrtimeout(). An atomic boolean > > serves as synchronization condition. > > > > Signed-off-by: Th=C3=A9o Lebrun > > Part of me want to go and fix completions to handle hrtimer timeouts > for submicrosecond timeouts, BUT I realized that this is a bit thick > request for a simple driver, so just a suggestion for something we could > do one day. This is fine with me. > Reviewed-by: Linus Walleij Indeed having to switch to another abstraction because we desire another timeout method is nonsensical. Completion supporting hrtimeouts would make sense. As you said though, this is too much for a simple driver. Thanks, -- Th=C3=A9o Lebrun, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ------------------------------------------------------------------------ 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 34DFAC48BF8 for ; Mon, 19 Feb 2024 14:32:08 +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:References:From:To:Cc: Subject:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lj/mG2bXxBtaRpwh6PhFRGNoVVbg9HojDy2hKN24hFQ=; b=jCXgMUdp/rN54h +jwvzo5sHib5eSd0dNYzNKLxvdw4SMazt0iJkrS0+Ma+y9q3uOPMSG4ea39LGG7/NkguQttOFwnbK 8gnA79uiNzil+HvAC6D3f5/Z8sbyL3ODWxmcs7dWokfoMA54mRS34FM8AHRUlZOerTONWUo/GM2j4 83aRy17QC0lgTFQIkS/97XLgCMPxGYGT4QDRyLB2Ph7SmkvoWBKEdFLqyB/s5gWQhgHKqclv4zIHL 7gRO17L2IPyfiFNDToCwmzlQQPmctAmXD1ECeJpvT2Pz5wpQMTAhFZqhI3+NO0cgb6mXnjtnl+qdt Q3MHkvv0SeE0DppGfA3Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rc4gS-0000000Aqaw-2kj8; Mon, 19 Feb 2024 14:31:52 +0000 Received: from relay5-d.mail.gandi.net ([217.70.183.197]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rc4gP-0000000AqZr-1rDf for linux-arm-kernel@lists.infradead.org; Mon, 19 Feb 2024 14:31:51 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9F9441C0012; Mon, 19 Feb 2024 14:31:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1708353106; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hKfqt+6AH9WiehjZH1IaTO+O21L0m+AX+DTUgObkBAY=; b=kC7uVdmQuKOY2GZO7/+U8nGkDmIS2gUMSAn6I3uoBiu8m1t7O7ruLaNdalx34aTxFThyby 4xEjQzka7TB8XMIdmRxWxQw3OWpVgOT5vk695IlP4IdxkXuFPU4ApdZhDB5Kl+CVQpr+RC ZVvauYyA3BM0jtZ8FruNvEisL5LZS9HTI5K9Sa6dgtv2w/u3zzhXJBYg9iPSh+l2eXSZJn 3GvZd2GHfFANPZX8zWkS4LXroL2RmFjaem7TJvuJaX7ZRN/WCZfspHigpm5MWOb8kbXvhz jo71SgSyaCFgtWRj/NFHARZzLGnwwSOQ8EVbfHSHGPu9KBuRop9FCd/wV0uXpA== Mime-Version: 1.0 Date: Mon, 19 Feb 2024 15:31:45 +0100 Message-Id: Subject: Re: [PATCH 07/13] i2c: nomadik: support short xfer timeouts using waitqueue & hrtimer Cc: "Andi Shyti" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "Thomas Bogendoerfer" , , , , , , "Gregory Clement" , "Vladimir Kondratiev" , "Thomas Petazzoni" , "Tawfik Bayouk" To: "Linus Walleij" From: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: aerc 0.15.2 References: <20240215-mbly-i2c-v1-0-19a336e91dca@bootlin.com> <20240215-mbly-i2c-v1-7-19a336e91dca@bootlin.com> In-Reply-To: X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240219_063149_638388_491B42CA X-CRM114-Status: GOOD ( 17.52 ) 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 SGVsbG8sCgpPbiBNb24gRmViIDE5LCAyMDI0IGF0IDM6MTkgUE0gQ0VULCBMaW51cyBXYWxsZWlq IHdyb3RlOgo+IE9uIFRodSwgRmViIDE1LCAyMDI0IGF0IDU6NTLigK9QTSBUaMOpbyBMZWJydW4g PHRoZW8ubGVicnVuQGJvb3RsaW4uY29tPiB3cm90ZToKPgo+ID4gUmVwbGFjZSB0aGUgY29tcGxl dGlvbiBieSBhIHdhaXRxdWV1ZSBmb3Igc3luY2hyb25pemF0aW9uIGZyb20gSVJRCj4gPiBoYW5k bGVyIHRvIHRhc2suIEZvciBzaG9ydCB0aW1lb3V0cywgdXNlIGhydGltZXJzLCBlbHNlIHVzZSB0 aW1lcnMuCj4gPiBVc2VjYXNlOiBhdm9pZCBibG9ja2luZyB0aGUgSTJDIGJ1cyBmb3IgdG9vIGxv bmcgd2hlbiBhbiBpc3N1ZSBvY2N1cnMuCj4gPgo+ID4gVGhlIHRocmVzaG9sZCBwaWNrZWQgaXMg b25lIGppZmZ5OiBpZiB0aW1lb3V0IGlzIGJlbG93IHRoYXQsIHVzZQo+ID4gaHJ0aW1lcnMuIFRo aXMgdGhyZXNob2xkIGlzIE5PVCBjb25maWd1cmFibGUuCj4gPgo+ID4gSW1wbGVtZW50IGJlaGF2 aW9yIGJ1dCBkbyBOT1QgY2hhbmdlIGZldGNoaW5nIG9mIHRpbWVvdXQuIFRoaXMgbWVhbnMgdGhl Cj4gPiB0aW1lb3V0IGlzIHVuY2hhbmdlZCAoMjAwbXMpIGFuZCB0aGUgaHJ0aW1lciBjYXNlIHdp bGwgbmV2ZXIgdHJpZ2dlci4KPiA+Cj4gPiBBIHdhaXRxdWV1ZSBpcyB1c2VkIGJlY2F1c2UgaXQg c3VwcG9ydHMgYm90aCBkZXNpcmVkIHRpbWVvdXQgYXBwcm9hY2hlcy4KPiA+IFNlZSB3YWl0X2V2 ZW50X3RpbWVvdXQoKSBhbmQgd2FpdF9ldmVudF9ocnRpbWVvdXQoKS4gQW4gYXRvbWljIGJvb2xl YW4KPiA+IHNlcnZlcyBhcyBzeW5jaHJvbml6YXRpb24gY29uZGl0aW9uLgo+ID4KPiA+IFNpZ25l ZC1vZmYtYnk6IFRow6lvIExlYnJ1biA8dGhlby5sZWJydW5AYm9vdGxpbi5jb20+Cj4KPiBQYXJ0 IG9mIG1lIHdhbnQgdG8gZ28gYW5kIGZpeCBjb21wbGV0aW9ucyB0byBoYW5kbGUgaHJ0aW1lciB0 aW1lb3V0cwo+IGZvciBzdWJtaWNyb3NlY29uZCB0aW1lb3V0cywgQlVUIEkgcmVhbGl6ZWQgdGhh dCB0aGlzIGlzIGEgYml0IHRoaWNrCj4gcmVxdWVzdCBmb3IgYSBzaW1wbGUgZHJpdmVyLCBzbyBq dXN0IGEgc3VnZ2VzdGlvbiBmb3Igc29tZXRoaW5nIHdlIGNvdWxkCj4gZG8gb25lIGRheS4gVGhp cyBpcyBmaW5lIHdpdGggbWUuCj4gUmV2aWV3ZWQtYnk6IExpbnVzIFdhbGxlaWogPGxpbnVzLndh bGxlaWpAbGluYXJvLm9yZz4KCkluZGVlZCBoYXZpbmcgdG8gc3dpdGNoIHRvIGFub3RoZXIgYWJz dHJhY3Rpb24gYmVjYXVzZSB3ZSBkZXNpcmUgYW5vdGhlcgp0aW1lb3V0IG1ldGhvZCBpcyBub25z ZW5zaWNhbC4gQ29tcGxldGlvbiBzdXBwb3J0aW5nIGhydGltZW91dHMgd291bGQKbWFrZSBzZW5z ZS4gQXMgeW91IHNhaWQgdGhvdWdoLCB0aGlzIGlzIHRvbyBtdWNoIGZvciBhIHNpbXBsZSBkcml2 ZXIuCgpUaGFua3MsCgotLQpUaMOpbyBMZWJydW4sIEJvb3RsaW4KRW1iZWRkZWQgTGludXggYW5k IEtlcm5lbCBlbmdpbmVlcmluZwpodHRwczovL2Jvb3RsaW4uY29tCgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1h cm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0t a2VybmVsCg==