Date: Mon, 03 Nov 2014 00:34:15 -0800 From: Xin Li <delphij@delphij.net> To: Bruce Evans <brde@optusnet.com.au>, d@delphij.net Cc: "src-committers@freebsd.org" <src-committers@freebsd.org>, Ian Lepore <ian@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, Mark R V Murray <mark@grondar.org>, Konstantin Belousov <kostikbel@gmail.com> Subject: Re: svn commit: r273958 - head/sys/dev/random Message-ID: <54573E07.5040505@delphij.net> In-Reply-To: <20141103115402.H3149@besplex.bde.org> References: <201411020201.sA221unt091493@svn.freebsd.org> <720EB74E-094A-43F3-8B1C-47BC7F6FECC3@grondar.org> <1414934579.17308.248.camel@revolution.hippie.lan> <6FB65828-6A79-4BDE-A9F7-BC472BA538CE@grondar.org> <CAJ-VmomeOwE3LOpehhJ__G=FCoBDRXrrn%2BSfjwPFODts6YYHNQ@mail.gmail.com> <20141102192057.GB53947@kib.kiev.ua> <29A795E1-19E2-49E4-9653-143D3F6F3F12@grondar.org> <20141102194625.GC53947@kib.kiev.ua> <751CD860-95B9-4F68-AE69-976B42823AD0@grondar.org> <54568E41.8030305@delphij.net> <20141102201331.GE53947@kib.kiev.ua> <545693B4.8030602@delphij.net> <1414961583.1200.27.camel@revolution.hippie.lan> <5456A47E.2030405@delphij.net> <5456A69C.6040902@delphij.net> <20141103115402.H3149@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------070009050000080809030508 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 11/2/14 5:13 PM, Bruce Evans wrote: > % - % - KASSERT(random_adaptor != NULL, ("No active random > adaptor in %s", __func__)); % } % % void > > Lots of style bugs (long lines, use of the __func__ obfuscation, > and general verboseness). What would you recommend doing for cases like this? Do we just do KASSERT without the __func__ and rely on ddb to provide the information in backtrace or something else? Speaking for long lines -- I usually use the MTA's default so the diff won't wrap. style(9) is a little bit vague here, what should new code appear like? > % @@ -256,11 +258,15 @@ random_adaptor_read(struct cdev *dev > __unused, str % /* Let the entropy source do any post-read > cleanup. */ % (random_adaptor->ra_read)(NULL, 1); % % - > free(random_buf, M_ENTROPY); % + if (nbytes != > uio->uio_resid && (error == ERESTART || % + error == > EINTR) ) % + error = 0; /* Return partial read, not > error. */ > > This adjustment has no effect. Upper layers already do it for > these 2 errors and one more. Other cases remain broken. > > It is simpler to do nothing. Let upper layers get it right or > wrong. Doesn't matter much either way. Will remove these two portions of the change. > % + > > More style bugs. Extra blank line here. Space bereofe parentheses > above. > > % } % - % sx_sunlock(&random_adaptors_lock); % % + > free(random_buf, M_ENTROPY); % + > > Extra blank lines are sprinkled randomly. Mostly added, but one > was removed. There is an extra blank line after the sx_slock() that > separates it from the blocks(s) of code that it locks; the removed > one used the same style. Will change the code to consistently use no blank line after sx_slock() and before sx_sunlock() if that's correct, can you confirm? Cheers, -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJUVz4HAAoJEJW2GBstM+nsZnkP/0PDU6SvwEG94w/csmWiWRuE IhhmH3oKz+LAzsU7pGUPpyE+UqWaMhRod6CHH9Io7EaJmZ9gsoMD29KWSdrYhWmS eMuZIt/vNkHGd+4SpFMUVq15s1gmRO2AK7wev6PZ1lOeqlJQtEkelnwaO7gWZdyp yWjdBW3MOOuVPR/kj0qF7Nx3nuCPkixO/SldXbMOeM0ofKhZw2DkiJmjSDx17Mk7 q/x2cuui4+nDxyJleFeLDpZqI+zaII/2yGly8OMzmhOsaAUtQrhxFM5I8Py/E85t yIK6U01tuRu1pVMNtqY1EgFqEkzRAr/kWG/wHZOuiITNroGye5J+u9VLaBVgCmQF hJW2Wthq2qFaWX2oqlSamHSss1Mt048iIzIzQd7GhwRYb6Be5IGPaqI2QOyKAYeE ojHvddkL30xIVLwM9qkFmIiyOvaC4gi/dSc6cbSEEYarTLqsIUZlJ1Xx5X5OK9y9 sAsIIo+0v4njB/cv9x4e5aeDXsRU1ABFHk4IUb7hBv2/Um9FRTuVKyKDWiEm4mRV U/uDxRDIFc0KAFj0bEtJXyeB/GsGsYqlba63Z978QQUvtlk7Rjtq8hDBks+I6CcC Hb8UOttzY+jS/XDxphNw5eXeg6rgy0v6isLqSAJvmwnyrXCUPJF5oMYxUla3lYrc QzxqUTKnPyyid4Hl+7n9 =ixEW -----END PGP SIGNATURE----- --------------070009050000080809030508 Content-Type: text/x-patch; name="random-style.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="random-style.diff" Index: sys/dev/random/random_adaptors.c =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 --- sys/dev/random/random_adaptors.c (revision 274006) +++ sys/dev/random/random_adaptors.c (working copy) @@ -210,7 +210,6 @@ random_adaptor_read(struct cdev *dev __unused, str random_buf =3D malloc(PAGE_SIZE, M_ENTROPY, M_WAITOK); =20 sx_slock(&random_adaptors_lock); - KASSERT(random_adaptor !=3D NULL, ("No active random adaptor in %s", __= func__)); =20 /* Let the entropy source do any pre-read setup. */ @@ -234,15 +233,15 @@ random_adaptor_read(struct cdev *dev __unused, str (random_adaptor->ra_read)(NULL, 0); } =20 + /* + * The read-rate stuff is a rough indication of the instantaneous + * read rate, used to increase the use of 'live' entropy sources + * when lots of reads are done. + */ mtx_lock(&random_read_rate_mtx); - - /* The read-rate stuff is a rough indication of the instantaneous read = rate, - * used to increase the use of 'live' entropy sources when lots of read= s are done. - */ nbytes =3D (uio->uio_resid + 32 - 1)/32; /* Round up to units of 32 */ random_adaptor_read_rate_cache +=3D nbytes*32; random_adaptor_read_rate_cache =3D MIN(random_adaptor_read_rate_cache, = 32); - mtx_unlock(&random_read_rate_mtx); =20 if (error =3D=3D 0) { @@ -257,11 +256,6 @@ random_adaptor_read(struct cdev *dev __unused, str =20 /* Let the entropy source do any post-read cleanup. */ (random_adaptor->ra_read)(NULL, 1); - - if (nbytes !=3D uio->uio_resid && (error =3D=3D ERESTART || - error =3D=3D EINTR) ) - error =3D 0; /* Return partial read, not error. */ - } sx_sunlock(&random_adaptors_lock); =20 @@ -296,11 +290,9 @@ random_adaptor_write(struct cdev *dev __unused, st #ifdef RANDOM_DEBUG printf("random: %s %zd\n", __func__, uio->uio_resid); #endif - random_buf =3D malloc(PAGE_SIZE, M_ENTROPY, M_WAITOK); =20 sx_slock(&random_adaptors_lock); - KASSERT(random_adaptor !=3D NULL, ("No active random adaptor in %s", __= func__)); =20 nbytes =3D uio->uio_resid; @@ -317,15 +309,9 @@ random_adaptor_write(struct cdev *dev __unused, st KASSERT(random_adaptor !=3D NULL, ("No active random adaptor in %s", __func__)); } - sx_sunlock(&random_adaptors_lock); =20 - if (nbytes !=3D uio->uio_resid && (error =3D=3D ERESTART || - error =3D=3D EINTR) ) - error =3D 0; /* Partial write, not error. */ - free(random_buf, M_ENTROPY); - return (error); } =20 @@ -339,7 +325,6 @@ random_adaptor_poll(struct cdev *dev __unused, int #endif =20 sx_slock(&random_adaptors_lock); - KASSERT(random_adaptor !=3D NULL, ("No active random adaptor in %s", __= func__)); =20 if (events & (POLLIN | POLLRDNORM)) { @@ -348,7 +333,6 @@ random_adaptor_poll(struct cdev *dev __unused, int else selrecord(td, &rsel); } - sx_sunlock(&random_adaptors_lock); =20 return (events); --------------070009050000080809030508--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54573E07.5040505>