Date: Sun, 18 Nov 2018 14:56:13 -0500 From: Allan Jude <allanjude@freebsd.org> To: Warner Losh <imp@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r340450 - head/sys/sys Message-ID: <595ff2c5-64ea-509d-481e-635499ab173d@freebsd.org> In-Reply-To: <201811151602.wAFG2E4w040161@repo.freebsd.org> References: <201811151602.wAFG2E4w040161@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --9ArUz8p4sPUVZlrBUe4qfoizrtxJ54BmJ Content-Type: multipart/mixed; boundary="hFooTVtU2E9Nogpig7yGvGeTI8dkfAzAG"; protected-headers="v1" From: Allan Jude <allanjude@freebsd.org> To: Warner Losh <imp@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <595ff2c5-64ea-509d-481e-635499ab173d@freebsd.org> Subject: Re: svn commit: r340450 - head/sys/sys References: <201811151602.wAFG2E4w040161@repo.freebsd.org> In-Reply-To: <201811151602.wAFG2E4w040161@repo.freebsd.org> --hFooTVtU2E9Nogpig7yGvGeTI8dkfAzAG Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 2018-11-15 11:02, Warner Losh wrote: > Author: imp > Date: Thu Nov 15 16:02:13 2018 > New Revision: 340450 > URL: https://svnweb.freebsd.org/changeset/base/340450 >=20 > Log: > When converting ns,us,ms to sbt, return the ceil() of the result > rather than the floor(). Returning the floor means that > sbttoX(Xtosbt(y)) !=3D y for almost all values of y. In practice, th= is > results in a difference of at most 1 in the lsb of the sbintime_t. > This difference is meaningless for all current users of these > functions, but is important for the newly introduced sysctl conversio= n > routines which implicitly rely on the transformation being idempotent= =2E > =20 > Sponsored by: Netflix, Inc >=20 This seems to break attaching for my mlxen(4), with or without r340451 I don't understand why at this point. Nov 18 19:28:12 CA-HML3-09 kernel: mlx4_core0: <mlx4_core> mem 0xfbe00000-0xfbefffff,0xfa800000-0xfaffffff irq 48 at device 0.0 numa-domain 1 on pci11 Nov 18 19:28:12 CA-HML3-09 kernel: mlx4_core: Initializing mlx4_core Nov 18 19:29:12 CA-HML3-09 kernel: mlx4_core0: command 0x4 timed out (go bit not cleared) Nov 18 19:29:12 CA-HML3-09 kernel: mlx4_core0: device is going to be rese= t Nov 18 19:29:12 CA-HML3-09 kernel: mlx4_core0: device was reset successfu= lly Nov 18 19:29:13 CA-HML3-09 kernel: mlx4_core0: QUERY_FW command failed, aborting Nov 18 19:29:13 CA-HML3-09 kernel: mlx4_core0: Failed to init fw, abortin= g. Nov 18 19:29:13 CA-HML3-09 kernel: device_attach: mlx4_core0 attach returned 5 It works fine under r340449: Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_core0: <mlx4_core> mem 0xfbe00000-0xfbefffff,0xfa800000-0xfaffffff irq 48 at device 0.0 numa-domain 1 on pci11 Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_core: Mellanox ConnectX core driver v3.4.1 (October 2017) Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_core: Initializing mlx4_core Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_core0: Unable to determine PCI device chain minimum BW Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_en mlx4_core0: Activating port:1 Nov 18 19:46:07 CA-HML3-09 kernel: mlxen0: Ethernet address: 00:02:c9:4d:6a:e8 Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_en: mlx4_core0: Port 1: Using 32 TX rings Nov 18 19:46:07 CA-HML3-09 kernel: mlxen0: link state changed to DOWN Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_en: mlx4_core0: Port 1: Using 16 RX rings Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_en: mlxen0: Using 32 TX rings Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_en: mlxen0: Using 16 RX rings Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_en: mlxen0: Initializing port Nov 18 19:46:07 CA-HML3-09 kernel: mlx4_en: mlxen0: Link Down Nov 18 19:46:07 CA-HML3-09 kernel: mlxen0: link state changed to UP > Modified: > head/sys/sys/time.h >=20 > Modified: head/sys/sys/time.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/sys/time.h Thu Nov 15 08:43:17 2018 (r340449) > +++ head/sys/sys/time.h Thu Nov 15 16:02:13 2018 (r340450) > @@ -161,6 +161,10 @@ sbttobt(sbintime_t _sbt) > * Decimal<->sbt conversions. Multiplying or dividing by SBT_1NS resu= lts in > * large roundoff errors which sbttons() and nstosbt() avoid. Millise= cond and > * microsecond functions are also provided for completeness. > + * > + * These functions return the smallest sbt larger or equal to the numb= er of > + * seconds requested so that sbttoX(Xtosbt(y)) =3D=3D y. The 1 << 32 -= 1 term added > + * transforms the >> 32 from floor() to ceil(). > */ > static __inline int64_t > sbttons(sbintime_t _sbt) > @@ -173,7 +177,7 @@ static __inline sbintime_t > nstosbt(int64_t _ns) > { > =20 > - return ((_ns * (((uint64_t)1 << 63) / 500000000)) >> 32); > + return ((_ns * (((uint64_t)1 << 63) / 500000000) + (1ull << 32) - 1) = >> 32); > } > =20 > static __inline int64_t > @@ -187,7 +191,7 @@ static __inline sbintime_t > ustosbt(int64_t _us) > { > =20 > - return ((_us * (((uint64_t)1 << 63) / 500000)) >> 32); > + return ((_us * (((uint64_t)1 << 63) / 500000) + (1ull << 32) - 1) >> = 32); > } > =20 > static __inline int64_t > @@ -201,7 +205,7 @@ static __inline sbintime_t > mstosbt(int64_t _ms) > { > =20 > - return ((_ms * (((uint64_t)1 << 63) / 500)) >> 32); > + return ((_ms * (((uint64_t)1 << 63) / 500) + (1ull << 32) - 1) >> 32)= ; > } > =20 > /*- >=20 --=20 Allan Jude --hFooTVtU2E9Nogpig7yGvGeTI8dkfAzAG-- --9ArUz8p4sPUVZlrBUe4qfoizrtxJ54BmJ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJb8cPiAAoJEBmVNT4SmAt+q7MQAIXh2bOocq8BWdYJHzRpPTwq gnhVO2nznkZecoq5BDDMDqkRPsH8X+AiCGvU79aX7TzwjwmTWpgJosP7fgH+gSaK X3S2BfFjjvqT5wpE1bS4QfV4pvyWU2xVZKMwodYdXorxKpDTN/JNtVXMxwVSus0J 2fTVzOAy1o25cxu7v9WOuydZ9hQ79LkkGKMLmSrCSQlNKgKvrxoi/+UmrTv6COBr xrkb8S3Q/yLSTVwdhFJVDq62yHb/N5bTaZ0PrHhLJHuiRXGEfVjS+NbXTO4XEGuu yUQrOmbf/OBcXVUSRe10KjgAwzDHNwrPThwX+JPRxwloCQelf2hhuuCRSJtDexZN rjbSMkCtbVa0FFLRfwmlHgmeXrTXusalXDI+ZxW+PrsB6MajJgYRkW+pEtbFqhR6 yjSmVFHDrcqRMg1RhL6v1KTTyF5fQy3RKl0Kx5QszfQShe4QvesAlmNAYcN7+TOp 2A7Y3HM4h2HKh6cNATtWFnnBfgahBb9wywg/Jc+uva1uERM+TB76gK+vuM297qPn w3N8Layfy9G4vnLK8Q6tNV2gyqzXxCmx5VlGAmQ39H0L++z1IdJptXf7j4GV1GFh /6+6/w8y4lPdb0ekR3buQGAy8LHqR/xst3km+oD4ejbKeXjH9YO8AHXBDbpDWxk5 U8oGL7G83dzV4kovhTXF =NYD6 -----END PGP SIGNATURE----- --9ArUz8p4sPUVZlrBUe4qfoizrtxJ54BmJ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?595ff2c5-64ea-509d-481e-635499ab173d>