Date: Mon, 20 May 2019 18:38:07 +0300 From: Lev Serebryakov <lev@FreeBSD.org> To: freebsd-fs@freebsd.org, freebsd-hackers@FreeBSD.org, Alexander Motin <mav@FreeBSD.org> Subject: Commit r345200 (new ARC reclamation threads) looks suspicious to me. Message-ID: <55989579-a228-498e-2842-453cad6f315f@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --2otz2YBkNKpHdJOidjhGzRvIgUzq6EAGT Content-Type: multipart/mixed; boundary="vr8o0Z3UyUbX9pqkufPdmsagmN2NSX6yY"; protected-headers="v1" From: Lev Serebryakov <lev@FreeBSD.org> Reply-To: lev@FreeBSD.org To: freebsd-fs@freebsd.org, freebsd-hackers@FreeBSD.org, Alexander Motin <mav@FreeBSD.org> Message-ID: <55989579-a228-498e-2842-453cad6f315f@FreeBSD.org> Subject: Commit r345200 (new ARC reclamation threads) looks suspicious to me. --vr8o0Z3UyUbX9pqkufPdmsagmN2NSX6yY Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable I'm looking at last commit to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c' (r345200) and have one question. Is it Ok for two threads to communicate via simple global variable? Now new code has (line 315): static boolean_t arc_adjust_needed =3D B_FALSE; And after that some threads run code like this: mutex_enter(&arc_adjust_lock); arc_adjust_needed =3D B_TRUE; mutex_exit(&arc_adjust_lock); zthr_wakeup(arc_adjust_zthr); And thread `arc_adjust_zthr` has code like this (line 4874): return (arc_adjust_needed); This variable is not atomic. It is not updated and/or read in atomic way. What code gives guarantees that `arc_adjust_zthr` will detect this change? I don't see any. Am I wrong? --=20 // Lev Serebryakov --vr8o0Z3UyUbX9pqkufPdmsagmN2NSX6yY-- --2otz2YBkNKpHdJOidjhGzRvIgUzq6EAGT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEE+W0coLX0MYtnSzMK6rA8WL/cR48FAlziyd9fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY5 NkQxQ0EwQjVGNDMxOEI2NzRCMzMwQUVBQjAzQzU4QkZEQzQ3OEYACgkQ6rA8WL/c R48yvxAApPXpt46m0ejunWWcU6ul4k4m+c0UvPn3AbQuS6DB1gHcAY4lOyTe0XTy xOsl3JJD3CYyK3IGjFt29WqrPSbZzRGR7Jxew/mS9alJztElkCVGfPZccJkf2sJo WxBwJAv0zERVJM6tlml3E+8gjS0IJje0Own2zSHUOorv6c+uXQhQQTC1G+EYdEnY lmghAf105yi8ur0HSCadp0jSlGZ+RWLc/RDldQMCPnNdLLl8xKjAxnaOSCPsaOXn vDZ5OWinQBtCQtMk4eBhFxXhWiBUzOEYMYYy6PJWfmVMfsIodrx8Vakx2J4GeVXl lLPuvc0Xiftp94ya6C7FdIUiuxktDixo0571EFMNQqUrJTxTAVOtKkCC4KCzEnZt Eb3f8Uk0Mrdn2GW0ML/0Dr0jzXw6SzyaApsH9LO1twCAtVj6VTGJA1j9yTHljbeS D7CusKEETGuE8/We/ni7V7x2sLAsXH5HyLBdYVwNRGRLFWdEIINH6yNZnHS893+K ZzWLWfnsOHPXyLNcoLtNiXKnvVS1cLDlOzGcMBG0MvGY1ua0An7r2RYX2HdJhbw2 GIgNu/hiG9v/v91RazB9rZvNijAk7QBasf14qsnFQg9hDp6QSXyGQjXFxOkJC1Pr 3UzrtIpEgpZ8Ls+uQtFOT+vZJEBQNNuZ5d7H4vbU2lUj7LajMJw= =176T -----END PGP SIGNATURE----- --2otz2YBkNKpHdJOidjhGzRvIgUzq6EAGT--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55989579-a228-498e-2842-453cad6f315f>