[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171218164449.dtdgk2bvnl4nbjcm@hirez.programming.kicks-ass.net>
Date: Mon, 18 Dec 2017 17:44:49 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Crt Mori <cmo@...exis.com>
Cc: Jonathan Cameron <jic23@...nel.org>,
Ingo Molnar <mingo@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Kees Cook <keescook@...omium.org>,
Rusty Russell <rusty@...tcorp.com.au>,
Ian Abbott <abbotti@....co.uk>,
Larry Finger <Larry.Finger@...inger.net>,
Niklas Soderlund <niklas.soderlund+renesas@...natech.se>,
Thomas Gleixner <tglx@...utronix.de>,
Krzysztof Kozlowski <krzk@...nel.org>,
Masahiro Yamada <yamada.masahiro@...ionext.com>,
linux-kernel@...r.kernel.org, linux-iio@...r.kernel.org
Subject: Re: [PATCH v6 1/3] lib: Add strongly typed 64bit int_sqrt
On Mon, Dec 18, 2017 at 04:05:44PM +0100, Crt Mori wrote:
> There is no option to perform 64bit integer sqrt on 32bit platform.
> Added stronger typed int_sqrt64 enables the 64bit calculations to
> be performed on 32bit platforms. Although int_sqrt() is a rough
> approximation, the same algorithm is used in int_sqrt64() as good
> enough on 32bit platform.
You clearly haven't read a recent version of the file you're patching.
Please take a moment to do so now.
> +/**
> + * int_sqrt64 - strongly typed int_sqrt function
> + * @x: 64bit integer of which to calculate the sqrt
> + */
> +u64 int_sqrt64(u64 x)
Please explain how the result of sqrt(u64) can be larger than u32.
Also, I expect that this fact could be exploited to optimize this for
32bit archs if one were so inclined.
> +{
> + u64 b, m, y = 0;
> +
> + if (x <= 1)
> + return x;
> +
> + m = 1ULL << (64 - 2);
> + while (m != 0) {
> + b = y + m;
> + y >>= 1;
> +
> + if (x >= b) {
> + x -= b;
> + y += m;
> + }
> + m >>= 2;
> + }
> + return y;
> +}
so yeah, no, please try again after reading the current file.
Powered by blists - more mailing lists