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=-9.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable 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 C1F89C43214 for ; Thu, 22 Jul 2021 21:57:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9C6E960C41 for ; Thu, 22 Jul 2021 21:57:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232060AbhGVVRM (ORCPT ); Thu, 22 Jul 2021 17:17:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:49724 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231336AbhGVVRL (ORCPT ); Thu, 22 Jul 2021 17:17:11 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3C3FE60EB4; Thu, 22 Jul 2021 21:57:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1626991066; bh=jxHLi9bM6Hq+3vf5t//DlAv09jjPbBHB2nQxogyaotI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=HuiSFsbPNO4Ffxt3+mAvxMTMoqe8AB3wjCAbc8L9bjtP/7VLqTomE1tbVss2cTk9C gCKzDk9iIErDPnc6i8+BAaA3ELCWYEYO7EsrsUn24BbteMEygIYJL4noaUsJY4wYkn qf8NO1SxTmEEh1Pq6PoxFm3DI5Q+y1nj0llY3dEfkWcWNB1BCWnIndCKy4eG3Dv2Ad W48MtT5N/QT03aPxC/Ds/vMsAoHLr+EhDrOJV7iB83XdqdumbmS4rMOAcquJBxyimh 7wRId4g7kklBZqE4VFXI1G24pBNqE4EdqZbD9zScKK/egZ2HwtuMep9WPFAyTD+yS8 9bCVvQp2ul+yA== Received: by pali.im (Postfix) id 9ECB3805; Thu, 22 Jul 2021 23:57:43 +0200 (CEST) Date: Thu, 22 Jul 2021 23:57:43 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Andy Shevchenko Cc: Michael Turquette , Stephen Boyd , Rob Herring , Greg Kroah-Hartman , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Vladimir Vid , Marek =?utf-8?B?QmVow7pu?= , Geert Uytterhoeven , linux-clk@vger.kernel.org, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Willy Tarreau Subject: Re: [PATCH v3 1/5] math64: New DIV_U64_ROUND_CLOSEST helper Message-ID: <20210722215743.gtwccvokecvoocmm@pali> References: <20210624224909.6350-1-pali@kernel.org> <20210717123829.5201-1-pali@kernel.org> <20210717123829.5201-2-pali@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20180716 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Monday 19 July 2021 15:47:07 Andy Shevchenko wrote: > On Sat, Jul 17, 2021 at 3:39 PM Pali Rohár wrote: > > > > Provide DIV_U64_ROUND_CLOSEST helper which uses div_u64 to perform > > division rounded to the closest integer using unsigned 64bit > > dividend and unsigned 32bit divisor. > > ... > > > +/* > > + * DIV_U64_ROUND_CLOSEST - unsigned 64bit divide with 32bit divisor rounded to nearest integer > > > + * @dividend: unsigned 64bit dividend > > Here you insist users to provide a u64 (or compatible) type. > > > + * @divisor: unsigned 32bit divisor > > + * > > + * Divide unsigned 64bit dividend by unsigned 32bit divisor > > + * and round to closest integer. > > + * > > + * Return: dividend / divisor rounded to nearest integer > > + */ > > +#define DIV_U64_ROUND_CLOSEST(dividend, divisor) \ > > > + ({ u32 _tmp = (divisor); div_u64((u64)(dividend) + _tmp / 2, _tmp); }) > > Here is the casting to u64. Why? (Yes, I have read v1 discussion and I > just want to continue it here). See also Willy's response: https://lore.kernel.org/lkml/20210625155008.GB16901@1wt.eu/ Macro does not enforce type as opposite to function. There is no compile time check for correct type and neither compile time warning if smaller typed value is passed. And e.g. passing constant with explicit ULL suffix or casting external constant to 64bit type is impractical. 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=-7.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 B30C9C4338F for ; Thu, 22 Jul 2021 21:59:18 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 760AF60C41 for ; Thu, 22 Jul 2021 21:59:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 760AF60C41 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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=3YSOJN7ljDEDU8OSiGGWj6qvsyTcpVcw8N8b5e3NUWg=; b=bRp0GPBVL98RPE dMVPbulg9ebVkd4rI0svB5Ri3eOO5MRHCXokLoL/Y/SC6akaX1yuOYpOregaKyVZNjm7E4ISGWXxh RHxJ1eYfp0D3OFJXMspLxgAbrwXYAjZRKrzLHu030fwG06AHRJSGI89MAwbC2ymYtl9uZQXImvyaG Km7CkiZleug1Z8Ovvexj0hKSU+/G2TGzlt/eGGmILqUz+A1EwwPr/6oaxEVeS+Y89thfJBxy+GjlY eqRZUBK+hJUbq//jMQHsk9d0V5md8a6gairfg2p6v5hmAdELvNnjUSBj9i8rydqNxxVRup7kYN63Z TqGzuCJI8RQ2s7mhu8Zg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m6ghT-002pqi-2E; Thu, 22 Jul 2021 21:57:51 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m6ghO-002ppw-Ld for linux-arm-kernel@lists.infradead.org; Thu, 22 Jul 2021 21:57:48 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3C3FE60EB4; Thu, 22 Jul 2021 21:57:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1626991066; bh=jxHLi9bM6Hq+3vf5t//DlAv09jjPbBHB2nQxogyaotI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=HuiSFsbPNO4Ffxt3+mAvxMTMoqe8AB3wjCAbc8L9bjtP/7VLqTomE1tbVss2cTk9C gCKzDk9iIErDPnc6i8+BAaA3ELCWYEYO7EsrsUn24BbteMEygIYJL4noaUsJY4wYkn qf8NO1SxTmEEh1Pq6PoxFm3DI5Q+y1nj0llY3dEfkWcWNB1BCWnIndCKy4eG3Dv2Ad W48MtT5N/QT03aPxC/Ds/vMsAoHLr+EhDrOJV7iB83XdqdumbmS4rMOAcquJBxyimh 7wRId4g7kklBZqE4VFXI1G24pBNqE4EdqZbD9zScKK/egZ2HwtuMep9WPFAyTD+yS8 9bCVvQp2ul+yA== Received: by pali.im (Postfix) id 9ECB3805; Thu, 22 Jul 2021 23:57:43 +0200 (CEST) Date: Thu, 22 Jul 2021 23:57:43 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Andy Shevchenko Cc: Michael Turquette , Stephen Boyd , Rob Herring , Greg Kroah-Hartman , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Vladimir Vid , Marek =?utf-8?B?QmVow7pu?= , Geert Uytterhoeven , linux-clk@vger.kernel.org, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Willy Tarreau Subject: Re: [PATCH v3 1/5] math64: New DIV_U64_ROUND_CLOSEST helper Message-ID: <20210722215743.gtwccvokecvoocmm@pali> References: <20210624224909.6350-1-pali@kernel.org> <20210717123829.5201-1-pali@kernel.org> <20210717123829.5201-2-pali@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210722_145746_776552_1D21942C X-CRM114-Status: GOOD ( 13.78 ) 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 T24gTW9uZGF5IDE5IEp1bHkgMjAyMSAxNTo0NzowNyBBbmR5IFNoZXZjaGVua28gd3JvdGU6Cj4g T24gU2F0LCBKdWwgMTcsIDIwMjEgYXQgMzozOSBQTSBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwu b3JnPiB3cm90ZToKPiA+Cj4gPiBQcm92aWRlIERJVl9VNjRfUk9VTkRfQ0xPU0VTVCBoZWxwZXIg d2hpY2ggdXNlcyBkaXZfdTY0IHRvIHBlcmZvcm0KPiA+IGRpdmlzaW9uIHJvdW5kZWQgdG8gdGhl IGNsb3Nlc3QgaW50ZWdlciB1c2luZyB1bnNpZ25lZCA2NGJpdAo+ID4gZGl2aWRlbmQgYW5kIHVu c2lnbmVkIDMyYml0IGRpdmlzb3IuCj4gCj4gLi4uCj4gCj4gPiArLyoKPiA+ICsgKiBESVZfVTY0 X1JPVU5EX0NMT1NFU1QgLSB1bnNpZ25lZCA2NGJpdCBkaXZpZGUgd2l0aCAzMmJpdCBkaXZpc29y IHJvdW5kZWQgdG8gbmVhcmVzdCBpbnRlZ2VyCj4gCj4gPiArICogQGRpdmlkZW5kOiB1bnNpZ25l ZCA2NGJpdCBkaXZpZGVuZAo+IAo+IEhlcmUgeW91IGluc2lzdCB1c2VycyB0byBwcm92aWRlIGEg dTY0IChvciBjb21wYXRpYmxlKSB0eXBlLgo+IAo+ID4gKyAqIEBkaXZpc29yOiB1bnNpZ25lZCAz MmJpdCBkaXZpc29yCj4gPiArICoKPiA+ICsgKiBEaXZpZGUgdW5zaWduZWQgNjRiaXQgZGl2aWRl bmQgYnkgdW5zaWduZWQgMzJiaXQgZGl2aXNvcgo+ID4gKyAqIGFuZCByb3VuZCB0byBjbG9zZXN0 IGludGVnZXIuCj4gPiArICoKPiA+ICsgKiBSZXR1cm46IGRpdmlkZW5kIC8gZGl2aXNvciByb3Vu ZGVkIHRvIG5lYXJlc3QgaW50ZWdlcgo+ID4gKyAqLwo+ID4gKyNkZWZpbmUgRElWX1U2NF9ST1VO RF9DTE9TRVNUKGRpdmlkZW5kLCBkaXZpc29yKSAgICAgICBcCj4gCj4gPiArICAgICAgICh7IHUz MiBfdG1wID0gKGRpdmlzb3IpOyBkaXZfdTY0KCh1NjQpKGRpdmlkZW5kKSArIF90bXAgLyAyLCBf dG1wKTsgfSkKPiAKPiBIZXJlIGlzIHRoZSBjYXN0aW5nIHRvIHU2NC4gV2h5PyAoWWVzLCBJIGhh dmUgcmVhZCB2MSBkaXNjdXNzaW9uIGFuZCBJCj4ganVzdCB3YW50IHRvIGNvbnRpbnVlIGl0IGhl cmUpLgoKU2VlIGFsc28gV2lsbHkncyByZXNwb25zZTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv bGttbC8yMDIxMDYyNTE1NTAwOC5HQjE2OTAxQDF3dC5ldS8KCk1hY3JvIGRvZXMgbm90IGVuZm9y Y2UgdHlwZSBhcyBvcHBvc2l0ZSB0byBmdW5jdGlvbi4KClRoZXJlIGlzIG5vIGNvbXBpbGUgdGlt ZSBjaGVjayBmb3IgY29ycmVjdCB0eXBlIGFuZCBuZWl0aGVyIGNvbXBpbGUgdGltZQp3YXJuaW5n IGlmIHNtYWxsZXIgdHlwZWQgdmFsdWUgaXMgcGFzc2VkLgoKQW5kIGUuZy4gcGFzc2luZyBjb25z dGFudCB3aXRoIGV4cGxpY2l0IFVMTCBzdWZmaXggb3IgY2FzdGluZyBleHRlcm5hbApjb25zdGFu dCB0byA2NGJpdCB0eXBlIGlzIGltcHJhY3RpY2FsLgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=