From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: Re: [PATCH] xen: credit2: clear bit instead of skip step in runq_tickle() Date: Wed, 18 Jan 2017 12:05:26 +0100 Message-ID: <1484737526.7492.74.camel@citrix.com> References: <148469943088.19533.8330155575788944646.stgit@Solace.fritz.box> <2f67b539-463c-ab71-1299-62f521d3e9b6@citrix.com> <587F51C402000078001312AE@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0037461801018508197==" Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cTo3d-0006RS-8L for xen-devel@lists.xenproject.org; Wed, 18 Jan 2017 11:05:37 +0000 In-Reply-To: <587F51C402000078001312AE@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich , George Dunlap Cc: George Dunlap , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org --===============0037461801018508197== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="=-Q1GC4vbVBMw9ucI3bS9G" --=-Q1GC4vbVBMw9ucI3bS9G Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2017-01-18 at 03:30 -0700, Jan Beulich wrote: > > > > On 18.01.17 at 11:21, wrote: > > On 18/01/17 00:30, Dario Faggioli wrote: > > >=C2=A0 > > > --- a/xen/common/sched_credit2.c > > > +++ b/xen/common/sched_credit2.c > > > @@ -985,7 +985,7 @@ runq_tickle(const struct scheduler *ops, > > > struct csched2_vcpu *new, s_time_t now) > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0cpumask_andnot(&mask, &rqd->active, &rq= d->idle); > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0cpumask_andnot(&mask, &mask, &rqd->tick= led); > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0cpumask_and(&mask, &mask, new->vcpu->cp= u_hard_affinity); > > > -=C2=A0=C2=A0=C2=A0=C2=A0if ( cpumask_test_cpu(cpu, &mask) ) > > > +=C2=A0=C2=A0=C2=A0=C2=A0if ( __cpumask_test_and_clear_cpu(cpu, &mask= ) ) > >=20 > > Since we're micro-optimizing -- isn't test-and-clear a locked > > operation? > > =C2=A0Would that be more expensive than the if() statement below? >=20 > cpumask_test_and_clear_cpu() is, but __cpumask_test_and_clear_cpu() > isn't. >=20 As Jan said. And, FWIW, I personally like how the code looks after this patch better, even leaving aside performance. I find it cleaner (probably because dislike 'continue'), and more in line with what we do in the rest of the file. Thanks and Regadrs, Dario --=20 <> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) --=-Q1GC4vbVBMw9ucI3bS9G Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCAAGBQJYf0v2AAoJEBZCeImluHPujloP/0/6XNaB0jRQieczVN6qJy+X wqyIfTlt8GKF2XPhNoQ9nOZzCazGB82nhZO3LaDA4IYdwzaM3RH44JGsFi4hOeaR bvh067QfrSuggeN8uADvVzn2lxucpOnzWscn3ODSn79eYPF6M+xa+KsixZrXsYJB iF8zOQ/Xh2SDSSptpYwdBnHWCnUqOor7Ky/huRY7zFzFC9fHuAwswkASCAKm+TOS 5KsnOPtefL6yB5DOEyawugGFte/rqge6dnoH71jwovoM9g/NrqZLrTQkjYNoAHso yN0HHmWJL1KH3/EXi/50Cyw5AXdLApqdTL1DmWeUJBnnpD4hClSMDhj2jEV2Amrb WVUpyCAz96ZtRWPTCZblYTcOyU7h4GCZyJDpyymLGMNLjDQdFxifPAO1uYfbLjFa V0ExEcuorgF0puYI64KMR3Ywd0imcZ8aduGYnF4f1DkNIp0GsaFwNyB18ZcoHS/e Auvs0anKGbNtNyw7VqGpOPwUCdpWLaAQTue22kJuaqiXoLWYWLJh/nFksBx6zxZQ GrNy8XdIInZygu3ZoFk65QgCYgXg/GfmskzImlJy9UxsZt9LKLRDi/TJHGlcXbyI VE0TvE5bmo49i/Qn1cjS7D8uF1MaQhfj93QqAfGoybcCgtJl8Klb9QhQxL0eYrLK 2qcTM7suW/ygCwEr5Tok =sTx6 -----END PGP SIGNATURE----- --=-Q1GC4vbVBMw9ucI3bS9G-- --===============0037461801018508197== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg== --===============0037461801018508197==--