Skip site navigation (1)Skip section navigation (2)
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>