From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH] xen: avoid updating node affinity twice when removing a CPU from a cpupool Date: Thu, 12 Mar 2015 13:45:25 +0000 Message-ID: <1426167922.7023.21.camel@citrix.com> References: <20150309164901.11859.95044.stgit@Solace.station> <550058BB.7000102@eu.citrix.com> <1426089874.21405.10.camel@citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7083116186751188142==" Return-path: In-Reply-To: <1426089874.21405.10.camel@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: George Dunlap Cc: "JGross@suse.com" , "keir.xen@gmail.com" , "jtweaver@hawaii.edu" , "JBeulich@suse.com" , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org --===============7083116186751188142== Content-Language: en-US Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-U0MxUlNKk3RmqsAdim7g" --=-U0MxUlNKk3RmqsAdim7g Content-Type: multipart/mixed; boundary="=-fXi/cO2uR3X1RO82m0an" --=-fXi/cO2uR3X1RO82m0an Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2015-03-11 at 16:04 +0000, Dario Faggioli wrote: > On Wed, 2015-03-11 at 15:01 +0000, George Dunlap wrote: > > It looks like domain_update_node_affinity() is already called for each > > domain in the cpupool in cpu_disable_scheduler(). It doesn't look like > > there should be a need to call it twice. Can we just remove the call t= o > > domain_update_node_affinity() in cpupool_unassign_cpu() and not add it = back? > >=20 > Mmm.. true, actually. >=20 > I'll send a patch to that effect. >=20 Patch below, and attached. However, I think the correct thing to do would be to just revert 93be8285 "update domU's node-affinity on the cpupool_unassign_cpu() path", wouldn't it? Regards, Dario 8------------------------------------------------------------------- xen: avoid updating node affinity twice when removing a CPU from a cpupool 93be8285 ("update domU's node-affinity on the cpupool_unassign_cpu() path") introduced a call to domain_update_node_affinity() when a pCPU is removed from a cpupool, but that happens already, in cpu_disable_scheduler(). Furthermore, it causes (although only in rather awkward circumstances), the following ASSERT to trigger: (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) Assertion '!cpumask_empty(dom_cpumask)' failed at domain.c:460 (XEN) **************************************** This change, therefore, undo that. Signed-off-by: Dario Faggioli Cc: Juergen Gross Cc: George Dunlap Cc: Jan Beulich Cc: Keir Fraser diff --git a/xen/common/cpupool.c b/xen/common/cpupool.c index a758a8b..cd6aab9 100644 --- a/xen/common/cpupool.c +++ b/xen/common/cpupool.c @@ -379,12 +379,6 @@ static int cpupool_unassign_cpu(struct cpupool *c, uns= igned int cpu) atomic_inc(&c->refcnt); cpupool_cpu_moving =3D c; cpumask_clear_cpu(cpu, c->cpu_valid); - - rcu_read_lock(&domlist_read_lock); - for_each_domain_in_cpupool(d, c) - domain_update_node_affinity(d); - rcu_read_unlock(&domlist_read_lock); - spin_unlock(&cpupool_lock); =20 work_cpu =3D smp_processor_id(); --=-fXi/cO2uR3X1RO82m0an Content-Disposition: attachment; filename="xen-fix-cpupool-unassign-cpu.patch" Content-Type: text/x-patch; name="xen-fix-cpupool-unassign-cpu.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 eGVuOiBhdm9pZCB1cGRhdGluZyBub2RlIGFmZmluaXR5IHR3aWNlIHdoZW4gcmVtb3ZpbmcgYSBD UFUgZnJvbSBhIGNwdXBvb2wKCjkzYmU4Mjg1ICgidXBkYXRlIGRvbVUncyBub2RlLWFmZmluaXR5 IG9uIHRoZSBjcHVwb29sX3VuYXNzaWduX2NwdSgpCnBhdGgiKSBpbnRyb2R1Y2VkIGEgY2FsbCB0 byBkb21haW5fdXBkYXRlX25vZGVfYWZmaW5pdHkoKSB3aGVuIGEKcENQVSBpcyByZW1vdmVkIGZy b20gYSBjcHVwb29sLCBidXQgdGhhdCBoYXBwZW5zIGFscmVhZHksIGluCmNwdV9kaXNhYmxlX3Nj aGVkdWxlcigpLgoKRnVydGhlcm1vcmUsIGl0IGNhdXNlcyAoYWx0aG91Z2ggb25seSBpbiByYXRo ZXIgYXdrd2FyZApjaXJjdW1zdGFuY2VzKSwgdGhlIGZvbGxvd2luZyBBU1NFUlQgdG8gdHJpZ2dl cjoKCihYRU4pICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKFhFTikg UGFuaWMgb24gQ1BVIDA6CihYRU4pIEFzc2VydGlvbiAnIWNwdW1hc2tfZW1wdHkoZG9tX2NwdW1h c2spJyBmYWlsZWQgYXQgZG9tYWluLmM6NDYwCihYRU4pICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKClRoaXMgY2hhbmdlLCB0aGVyZWZvcmUsIHVuZG8gdGhhdC4KClNp Z25lZC1vZmYtYnk6IERhcmlvIEZhZ2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgpD YzogSnVlcmdlbiBHcm9zcyA8Skdyb3NzQHN1c2UuY29tPgpDYzogR2VvcmdlIER1bmxhcCA8Z2Vv cmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2Uu Y29tPgpDYzogS2VpciBGcmFzZXIgPGtlaXIueGVuQGdtYWlsLmNvbT4KCmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL2NwdXBvb2wuYyBiL3hlbi9jb21tb24vY3B1cG9vbC5jCmluZGV4IGE3NThhOGIu LmNkNmFhYjkgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vY3B1cG9vbC5jCisrKyBiL3hlbi9jb21t b24vY3B1cG9vbC5jCkBAIC0zNzksMTIgKzM3OSw2IEBAIHN0YXRpYyBpbnQgY3B1cG9vbF91bmFz c2lnbl9jcHUoc3RydWN0IGNwdXBvb2wgKmMsIHVuc2lnbmVkIGludCBjcHUpCiAgICAgYXRvbWlj X2luYygmYy0+cmVmY250KTsKICAgICBjcHVwb29sX2NwdV9tb3ZpbmcgPSBjOwogICAgIGNwdW1h c2tfY2xlYXJfY3B1KGNwdSwgYy0+Y3B1X3ZhbGlkKTsKLQotICAgIHJjdV9yZWFkX2xvY2soJmRv bWxpc3RfcmVhZF9sb2NrKTsKLSAgICBmb3JfZWFjaF9kb21haW5faW5fY3B1cG9vbChkLCBjKQot ICAgICAgICBkb21haW5fdXBkYXRlX25vZGVfYWZmaW5pdHkoZCk7Ci0gICAgcmN1X3JlYWRfdW5s b2NrKCZkb21saXN0X3JlYWRfbG9jayk7Ci0KICAgICBzcGluX3VubG9jaygmY3B1cG9vbF9sb2Nr KTsKIAogICAgIHdvcmtfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwo= --=-fXi/cO2uR3X1RO82m0an-- --=-U0MxUlNKk3RmqsAdim7g 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 iEYEABECAAYFAlUBmHIACgkQk4XaBE3IOsSTpQCggydx+3NEtCfDfxlP6f/ydzIC MPIAn2IEkyJpt4cysWfGrZIR5qBPbtv6 =JbK8 -----END PGP SIGNATURE----- --=-U0MxUlNKk3RmqsAdim7g-- --===============7083116186751188142== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============7083116186751188142==--