From owner-freebsd-ppc@freebsd.org Fri Mar 1 21:19:12 2019 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9255D15011FB for ; Fri, 1 Mar 2019 21:19:12 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic316-21.consmr.mail.ne1.yahoo.com (sonic316-21.consmr.mail.ne1.yahoo.com [66.163.187.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 26DD391E1E for ; Fri, 1 Mar 2019 21:19:12 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: wlXP_3IVM1kk39c3jBAvbQ2snU_4bKfLFMIwgAPdcS.VwNo6ZM.RqTnO0kKxG_p rB4zu0T6hnRiSHiogb5z9M8oltnJ2TfbiOQPc1_lf5MPdR5ydMxLbUVftkG_feI1Du2upbVDdXKC 6a9pnHJ_EmM9xwxQHZiEJVWzmaJl7Ra9ObcGTkTcZ_tlEcrhDDfZ.2ciJs3u9ExVyRAvHOWO0nuo oP.AxELNOwpHSeGFjC4yAp8zAC._Vqj5wFbWXrmdAj7b4AetcmgJ.aOSPxJJBiG38Q48DkL.wgMx F8JF1hLSYMCVFeVlkWgT3YXkZ5ncLrdtQCAvI.vIqPyIXCTuMBwcc58PAdqHiXRUzvMGswqtHm8R mzuOcya28CYxmqdeXjpNbdXaQDwxcVp_vr_8.pvCfAu9X2wNvGmHga2Mgj4vHvNdUCtk7AJdvkWQ jU5GU17s9ta26D4DIkmyI3z0hlP4vw7V_HbJ8Jv_feBAWADLh4bL0Fx4Hno6YKxsvmlbmFfM.rtW Qt0_oqhLOq4M_SiKp.pwulzX59vzqusA7UKMb0oRvMbHLJx88TekCA3kC4_cDwBYR4S3JnP7uvkZ e6Dy_KN6D4d.gcckTRdDYNZv485cODO6z5vRj6Ma5bd_9j5Ow8E03QI2HgKKfVK2oyh3nA1WKaBs BPyPYInXxvxz_d1pTIP5UsNGJ.MKS5b3UorN6w9ZePPfPN9NUzzYhBri1VznMWdVE1HiKZkVy.ZI zbJKVYC3cg9oJ5BypClgzvEkP1ptbFf22Vas.zwgpvvF0kNqm77Zm_NqWrtVhlNmw88wW0WGcVUe l_lLr4JwKZr9keb..TlXUhSmUFM4_FgADWSw1IMHbOLemrNhpkaMiTyGqGw454uKW79LBAvHCXjH Sxjc8DyOCCNTxcAKiTCm98_vnekZUQlHPtYbMBQLak1GLochHRRXjgaZShta9432.DeF5NXS1NDZ 1MRjEhgP3vPeBKRsGXYN8cZTLsFBWkFC8mCY1FIZFGChyzxjlsfBNOgXAR9Sk4ZSTIpxqSTE2rIQ HweHk0l9nFCa2YbjD1V69tCzUbmT5cqiykdhh_L7H39MMmeASwDjE74LhHlo1X7ICS87YHFtL7ZW V Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.ne1.yahoo.com with HTTP; Fri, 1 Mar 2019 21:19:10 +0000 Received: from c-67-170-167-181.hsd1.or.comcast.net (EHLO [192.168.1.113]) ([67.170.167.181]) by smtp406.mail.ne1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 80f6d1e2fd7aed759a41de2e5e57562f; Fri, 01 Mar 2019 21:19:06 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: powerpc64 head -r344018 stuck sleeping problems: th->th_scale * tc_delta(th) overflows unsigned 64 bits sometimes [patched failed] From: Mark Millard In-Reply-To: <20190301194217.GB68879@kib.kiev.ua> Date: Fri, 1 Mar 2019 13:19:05 -0800 Cc: Bruce Evans , freebsd-hackers Hackers , FreeBSD PowerPC ML Content-Transfer-Encoding: 7bit Message-Id: <87D6CBD5-AE55-4EC8-8797-D8A9DC3D5A5A@yahoo.com> References: <20190228145542.GT2420@kib.kiev.ua> <20190228150811.GU2420@kib.kiev.ua> <962D78C3-65BE-40C1-BB50-A0088223C17B@yahoo.com> <28C2BB0A-3DAA-4D18-A317-49A8DD52778F@yahoo.com> <20190301112717.GW2420@kib.kiev.ua> <20190302043936.A4444@besplex.bde.org> <20190301194217.GB68879@kib.kiev.ua> To: Konstantin Belousov X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: 26DD391E1E X-Spamd-Bar: ------ X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2019 21:19:12 -0000 On 2019-Mar-1, at 11:42, Konstantin Belousov wrote: > . . . > +#ifdef _LP64 > + scale_bits = ffsl(scale); > +#else > + scale_bits = ffsll(scale); > +#endif. . . > + if (__predict_false(scale_bits + fls(delta) > 63)) { The patch from yesterday uniformly used: int fls(int mask) { int bit; if (mask == 0) return (0); for (bit = 1; mask != 1; bit++) mask = (unsigned int)mask >> 1; return (bit); } that looks for the most significant 1 bit. The new patch uses in some places: int ffsl(long mask) { int bit; if (mask == 0) return (0); for (bit = 1; !(mask & 1); bit++) mask = (unsigned long)mask >> 1; return (bit); } that looks for the least significant 1 bit. Similarly for: int ffsll(long long mask) { int bit; if (mask == 0) return (0); for (bit = 1; !(mask & 1); bit++) mask = (unsigned long long)mask >> 1; return (bit); } Was that deliberate? === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)