From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH v3] xen: credit1: fix a race when picking initial pCPU for a vCPU Date: Fri, 19 Aug 2016 18:26:11 +0200 Message-ID: <147162397101.11630.6555683723098718425.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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 1bamca-0008BA-9K for xen-devel@lists.xenproject.org; Fri, 19 Aug 2016 16:26:16 +0000 Received: by mail-wm0-f65.google.com with SMTP id i138so4019693wmf.3 for ; Fri, 19 Aug 2016 09:26:14 -0700 (PDT) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: George Dunlap , Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org SW4gdGhlIENyZWRpdDEgaHVuayBvZiA5ZjM1OGRkZDY5NDYzICgieGVuOiBIYXZlCnNjaGVkdWxl cnMgcmV2aXNlIGluaXRpYWwgcGxhY2VtZW50IikgY3NjaGVkX2NwdV9waWNrKCkKaXMgY2FsbGVk IHdpdGhvdXQgdGFraW5nIHRoZSBydW5xdWV1ZSBsb2NrIG9mIHRoZQoodGVtcG9yYXJ5KSBwQ1BV IHRoYXQgdGhlIHZDUFUgaGFzIGJlZW4gYXNzaWduZWQgdG8KKGUuZy4sIGluIFhFTl9ET01DVExf bWF4X3ZjcHVzKS4KCkhvd2V2ZXIsIGFsdGhvdWdoICdoaWRkZW4nIGluIHRoZSBJU19SVU5RX0lE TEUoKSBtYWNybywKdGhhdCBmdW5jdGlvbiBkb2VzIGFjY2VzcyB0aGUgcnVucSAoZm9yIGRvaW5n IGxvYWQKYmFsYW5jaW5nIGNhbGN1bGF0aW9ucykuIFR3byBzY2VuYXJpb3MgYXJlIHBvc3NpYmxl OgogMSkgd2UgYXJlIG9uIGNwdSBYLCBhbmQgSVNfUlVOUV9JRExFKCkgcGVla3MgYXQgY3B1J3MK ICAgIFggb3duIHJ1bnE7CiAyKSB3ZSBhcmUgb24gY3B1IFgsIGJ1dCBJU19SVU5RX0lETEUoKSBw ZWVrcyBhdCBzb21lCiAgICBvdGhlciBjcHUncyBydW5xLgoKU2NlbmFyaW8gMikgYWJzb2x1dGVs eSByZXF1aWVzIHRoYXQgdGhlIGFwcHJvcHJpYXRlCnJ1bnEgbG9jayBpcyB0YWtlbi4gU2NlbmFy aW8gMSkgd29ya3MgZXZlbiB3aXRob3V0CnRha2luZyB0aGUgY3B1J3Mgb3duIHJ1bnEgbG9jay4g VGhhdCBpcyBhY3R1YWxseSB3aGF0CmhhcHBlbnMgd2hlbiB3aGVuIF9jc2NoZWRfcGlja19jcHUo KSBpcyBjYWxsZWQgZnJvbQpjc2NoZWRfdmNwdV9hY2N0KCkgKGluIHR1cm4sIGNhbGxlZCBieSBj c2NoZWRfdGljaygpKS4KClJhY2VzIGhhdmUgYmVlbiBvYnNlcnZlZCBhbmQgcmVwb3J0ZWQgKGJ5 IGJvdGggWGVuU2VydmVyCm93biB0ZXN0aW5nIGFuZCBPU1NUZXN0IFsxXSksIGluIHRoZSBmb3Jt IG9mCklTX1JVTlFfSURMRSgpIGZhbGxpbmcgb3ZlciBMSVNUX1BPSVNPTiwgYmVjYXVzZSB3ZSdy ZQpub3QgY3VycmVudGx5IGhvbGRpbmcgdGhlIHByb3BlciBsb2NrLCBpbgpjc2NoZWRfdmNwdV9p bnNlcnQoKSwgd2hlbiBzY2VuYXJpbyAxKSBvY2N1cnMuCgpIb3dldmVyLCBmb3IgYmV0dGVyIHJv YnVzdG5lc3MsIGZyb20gbm93IG9uIHdlIGFsd2F5cwphc2sgZm9yIHRoZSBwcm9wZXIgcnVucSBs b2NrIHRvIGJlIGhlbGQgd2hlbiBjYWxsaW5nCklTX1JVTlFfSURMRSgpICh3aGljaCBpcyBhbHNv IGJlY29taW5nIGEgc3RhdGljIGlubGluZQpmdW5jdGlvbiBpbnN0ZWFkIG9mIG1hY3JvKS4KCklu IG9yZGVyIHRvIGNvbXBseSB3aXRoIHRoYXQsIHdlIHRha2UgdGhlIGxvY2sgYXJvdW5kCnRoZSBj YWxsIHRvIF9jc2NoZWRfY3B1X3BpY2soKSBpbiBjc2NoZWRfdmNwdV9hY2N0KCkuCgpbMV0gaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTYtMDgvbXNnMDIx NDQuaHRtbAoKUmVwb3J0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+ClNpZ25lZC1vZmYtYnk6IERhcmlvIEZhZ2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRy aXguY29tPgotLS0KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNv bT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBKYW4g QmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Ci0tLQpDaGFuZ2VzIGZyb20gdjI6CiAtIGFjdHVh bGx5LCB0YWtlIHRoZSBydW5xIGxvY2sgYXJvdW5kIHRoZSBjYWxsIHRvIF9jc2NoZWRfY3B1X3Bp Y2soKSBpbgogICBjc2NoZWRfdmNwdV9hY2N0KCksIGFzIGNvbnNpZGVyZWQgYmV0dGVyIGJ5IEdl b3JnZSBkdXJpbmcgcmV2aWV3LgoKQ2hhbmdlcyBmcm9tIHYxOgogLSBtYWNybyBJU19SVU5RX0lE TEUoKSB0byBzdGF0aWMgaW5saW5lIGlzX3J1bnFfaWRsZSgpLCBhcyBzdWdnZXN0ZWQKICAgZHVy aW5nIHJldmlldzsKIC0gYWRkIGFuIEFTU0VSVCgpIGFuZCBhIGNvbW1lbnQsIGFzIHN1Z2dlc3Rl ZCBkdXJpbmcgcmV2aWV3OwogLSB0YWtlIGludG8gYWNjb3VudCB3aGF0J3MgZGVzY3JpYmVkIGlu IHRoZSBjaGFuZ2Vsb2cgYXMgInNjZW5hcmlvIDEpIiwKICAgd2hpY2ggd2Fzbid0IGJlaW5nIGNv bnNpZGVyZWQgaW4gdjEuCi0tLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyB8ICAgNTMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMzkgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9zY2hlZF9jcmVkaXQuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKaW5kZXggMjIw ZmYwZC4uYzJiNGIyNCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYworKysg Yi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCkBAIC04NCw5ICs4NCw2IEBACiAjZGVmaW5lIENT Q0hFRF9WQ1BVKF92Y3B1KSAgKChzdHJ1Y3QgY3NjaGVkX3ZjcHUgKikgKF92Y3B1KS0+c2NoZWRf cHJpdikKICNkZWZpbmUgQ1NDSEVEX0RPTShfZG9tKSAgICAoKHN0cnVjdCBjc2NoZWRfZG9tICop IChfZG9tKS0+c2NoZWRfcHJpdikKICNkZWZpbmUgUlVOUShfY3B1KSAgICAgICAgICAoJihDU0NI RURfUENQVShfY3B1KS0+cnVucSkpCi0vKiBJcyB0aGUgZmlyc3QgZWxlbWVudCBvZiBfY3B1J3Mg cnVucSBpdHMgaWRsZSB2Y3B1PyAqLwotI2RlZmluZSBJU19SVU5RX0lETEUoX2NwdSkgIChsaXN0 X2VtcHR5KFJVTlEoX2NwdSkpIHx8IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNf aWRsZV92Y3B1KF9fcnVucV9lbGVtKFJVTlEoX2NwdSktPm5leHQpLT52Y3B1KSkKIAogCiAvKgpA QCAtMjQ4LDYgKzI0NSwxOCBAQCBfX3J1bnFfZWxlbShzdHJ1Y3QgbGlzdF9oZWFkICplbGVtKQog ICAgIHJldHVybiBsaXN0X2VudHJ5KGVsZW0sIHN0cnVjdCBjc2NoZWRfdmNwdSwgcnVucV9lbGVt KTsKIH0KIAorLyogSXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgY3B1J3MgcnVucSAoaWYgYW55KSBj cHUncyBpZGxlIHZjcHU/ICovCitzdGF0aWMgaW5saW5lIGJvb2xfdCBpc19ydW5xX2lkbGUodW5z aWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgorICAgICAqIFdlJ3JlIHBlZWtpbmcgYXQgY3B1J3Mg cnVucSwgd2UgbXVzdCBob2xkIHRoZSBwcm9wZXIgbG9jay4KKyAgICAgKi8KKyAgICBBU1NFUlQo c3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2sp KTsKKworICAgIHJldHVybiBsaXN0X2VtcHR5KFJVTlEoY3B1KSkgfHwKKyAgICAgICAgICAgaXNf aWRsZV92Y3B1KF9fcnVucV9lbGVtKFJVTlEoY3B1KS0+bmV4dCktPnZjcHUpOworfQorCiBzdGF0 aWMgaW5saW5lIHZvaWQKIF9fcnVucV9pbnNlcnQoc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMpCiB7 CkBAIC03NzEsNyArNzgwLDcgQEAgX2NzY2hlZF9jcHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YywgYm9vbF90IGNvbW1pdCkKICAgICAgICAgICogcnVu bmFibGUgdmNwdSBvbiBjcHUsIHdlIGFkZCBjcHUgdG8gdGhlIGlkbGVycy4KICAgICAgICAgICov CiAgICAgICAgIGNwdW1hc2tfYW5kKCZpZGxlcnMsICZjcHVfb25saW5lX21hcCwgQ1NDSEVEX1BS SVYob3BzKS0+aWRsZXJzKTsKLSAgICAgICAgaWYgKCB2Yy0+cHJvY2Vzc29yID09IGNwdSAmJiBJ U19SVU5RX0lETEUoY3B1KSApCisgICAgICAgIGlmICggdmMtPnByb2Nlc3NvciA9PSBjcHUgJiYg aXNfcnVucV9pZGxlKGNwdSkgKQogICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCAm aWRsZXJzKTsKICAgICAgICAgY3B1bWFza19hbmQoJmNwdXMsICZjcHVzLCAmaWRsZXJzKTsKIApA QCAtOTUxLDIxICs5NjAsMzMgQEAgY3NjaGVkX3ZjcHVfYWNjdChzdHJ1Y3QgY3NjaGVkX3ByaXZh dGUgKnBydiwgdW5zaWduZWQgaW50IGNwdSkKICAgICAvKgogICAgICAqIFB1dCB0aGlzIFZDUFUg YW5kIGRvbWFpbiBiYWNrIG9uIHRoZSBhY3RpdmUgbGlzdCBpZiBpdCB3YXMKICAgICAgKiBpZGxp bmcuCi0gICAgICoKLSAgICAgKiBJZiBpdCdzIGJlZW4gYWN0aXZlIGEgd2hpbGUsIGNoZWNrIGlm IHdlJ2QgYmUgYmV0dGVyIG9mZgotICAgICAqIG1pZ3JhdGluZyBpdCB0byBydW4gZWxzZXdoZXJl IChzZWUgbXVsdGktY29yZSBhbmQgbXVsdGktdGhyZWFkCi0gICAgICogc3VwcG9ydCBpbiBjc2No ZWRfY3B1X3BpY2soKSkuCiAgICAgICovCiAgICAgaWYgKCBsaXN0X2VtcHR5KCZzdmMtPmFjdGl2 ZV92Y3B1X2VsZW0pICkKICAgICB7CiAgICAgICAgIF9fY3NjaGVkX3ZjcHVfYWNjdF9zdGFydChw cnYsIHN2Yyk7CiAgICAgfQotICAgIGVsc2UgaWYgKCBfY3NjaGVkX2NwdV9waWNrKG9wcywgY3Vy cmVudCwgMCkgIT0gY3B1ICkKKyAgICBlbHNlCiAgICAgewotICAgICAgICBTQ0hFRF9WQ1BVX1NU QVRfQ1JBTksoc3ZjLCBtaWdyYXRlX3IpOwotICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKG1pZ3Jh dGVfcnVubmluZyk7Ci0gICAgICAgIHNldF9iaXQoX1ZQRl9taWdyYXRpbmcsICZjdXJyZW50LT5w YXVzZV9mbGFncyk7Ci0gICAgICAgIGNwdV9yYWlzZV9zb2Z0aXJxKGNwdSwgU0NIRURVTEVfU09G VElSUSk7CisgICAgICAgIHVuc2lnbmVkIGludCBuZXdfY3B1OworICAgICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOworICAgICAgICBzcGlubG9ja190ICpsb2NrID0gdmNwdV9zY2hlZHVsZV9sb2Nr X2lycXNhdmUoY3VycmVudCwgJmZsYWdzKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBJZiBp dCdzIGJlZW4gYWN0aXZlIGEgd2hpbGUsIGNoZWNrIGlmIHdlJ2QgYmUgYmV0dGVyIG9mZgorICAg ICAgICAgKiBtaWdyYXRpbmcgaXQgdG8gcnVuIGVsc2V3aGVyZSAoc2VlIG11bHRpLWNvcmUgYW5k IG11bHRpLXRocmVhZAorICAgICAgICAgKiBzdXBwb3J0IGluIGNzY2hlZF9jcHVfcGljaygpKS4K KyAgICAgICAgICovCisgICAgICAgIG5ld19jcHUgPSBfY3NjaGVkX2NwdV9waWNrKG9wcywgY3Vy cmVudCwgMCk7CisKKyAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2tfaXJxcmVzdG9yZShsb2Nr LCBmbGFncywgY3VycmVudCk7CisKKyAgICAgICAgaWYgKCBuZXdfY3B1ICE9IGNwdSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIFNDSEVEX1ZDUFVfU1RBVF9DUkFOSyhzdmMsIG1pZ3JhdGVfcik7 CisgICAgICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKG1pZ3JhdGVfcnVubmluZyk7CisgICAgICAg ICAgICBzZXRfYml0KF9WUEZfbWlncmF0aW5nLCAmY3VycmVudC0+cGF1c2VfZmxhZ3MpOworICAg ICAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEoY3B1LCBTQ0hFRFVMRV9TT0ZUSVJRKTsKKyAgICAg ICAgfQogICAgIH0KIH0KIApAQCAtOTk4LDkgKzEwMTksMTMgQEAgY3NjaGVkX3ZjcHVfaW5zZXJ0 KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogCiAgICAgQlVH X09OKCBpc19pZGxlX3ZjcHUodmMpICk7CiAKLSAgICAvKiBUaGlzIGlzIHNhZmUgYmVjYXVzZSB2 YyBpc24ndCB5ZXQgYmVpbmcgc2NoZWR1bGVkICovCisgICAgLyogY3NjaGVkX2NwdV9waWNrKCkg bG9va3MgaW4gdmMtPnByb2Nlc3NvcidzIHJ1bnEsIHNvIHdlIG5lZWQgdGhlIGxvY2suICovCisg ICAgbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9ja19pcnEodmMpOworCiAgICAgdmMtPnByb2Nlc3Nv ciA9IGNzY2hlZF9jcHVfcGljayhvcHMsIHZjKTsKIAorICAgIHNwaW5fdW5sb2NrX2lycShsb2Nr KTsKKwogICAgIGxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHZjKTsKIAogICAgIGlmICgg IV9fdmNwdV9vbl9ydW5xKHN2YykgJiYgdmNwdV9ydW5uYWJsZSh2YykgJiYgIXZjLT5pc19ydW5u aW5nICkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK