From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v8 11/15] xen: delay allocation of grant table sub structures Date: Wed, 20 Sep 2017 08:34:26 +0200 Message-ID: <20170920063430.9105-12-jgross@suse.com> References: <20170920063430.9105-1-jgross@suse.com> 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 1duYak-00036d-Tk for xen-devel@lists.xenproject.org; Wed, 20 Sep 2017 06:34:39 +0000 In-Reply-To: <20170920063430.9105-1-jgross@suse.com> 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: Juergen Gross , sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, dgdegra@tycho.nsa.gov List-Id: xen-devel@lists.xenproject.org RGVsYXkgdGhlIGFsbG9jYXRpb24gb2YgdGhlIGdyYW50IHRhYmxlIHN1YiBzdHJ1Y3R1cmVzIGlu IG9yZGVyIHRvCmFsbG93IG1vZGlmeWluZyBwYXJhbWV0ZXJzIG5lZWRlZCBmb3Igc2l6aW5nIG9m IHRoZXNlIHN0cnVjdHVyZXMgYXQgYQpwZXIgZG9tYWluIGJhc2lzLiBBbGxvY2F0ZSB0aGUgc3Ry dWN0dXJlcyBmcm9tIGdudHRhYl9zZXR1cF90YWJsZSgpCmFuZCB0aGUgdGFibGUgZnJhbWVzIG9u bHkgZnJvbSBncmFudF90YWJsZV9zZXRfbGltaXRzKCkgKGRvbTA6IGZyb20KZ3JhbnRfdGFibGVf Y3JlYXRlKCkpLgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t PgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t ClY2OgotIG1vdmUgY2FsbCBvZiBncmFudF90YWJsZV9pbml0KCkgZm9yIGRvbTAgdG8gZ3JhbnRf dGFibGVfY3JlYXRlKCkKICAoSmFuIEJldWxpY2gpCi0gbW92ZSBmcmFtZSBhbGxvY2F0aW9ucyB0 byBnbnR0YWJfZ3Jvd190YWJsZSgpIChKYW4gQmV1bGljaCkKLSBzZXZlcmFsIG90aGVyIGNoYW5n ZXMgZHVlIHRvIG5ldyBwYXRjaCBvcmRlcgoKVjQ6Ci0gbWFrZSByZXQgbW9yZSBsb2NhbCAoV2Vp IExpdSkKClYzOgotIG1vdmUgY2FsbCBvZiBncmFudF90YWJsZV9pbml0KCkgZnJvbSBnbnR0YWJf c2V0dXBfdGFibGUoKSB0bwogIGdudHRhYl9ncm93X3RhYmxlKCkgKFBhdWwgRHVycmFudCkKLS0t CiB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgfCAxMTMgKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCsp LCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMg Yi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggZjQ4ZWVmZjdhZC4uZjY2OTQwNTUxZSAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24vZ3Jh bnRfdGFibGUuYwpAQCAtMTY1NSw2ICsxNjU1LDQ2IEBAIGdudHRhYl91bnBvcHVsYXRlX3N0YXR1 c19mcmFtZXMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGdyYW50X3RhYmxlICpndCkKICAgICBn dC0+bnJfc3RhdHVzX2ZyYW1lcyA9IDA7CiB9CiAKK3N0YXRpYyBpbnQKK2dyYW50X3RhYmxlX2lu aXQoc3RydWN0IGdyYW50X3RhYmxlICpndCkKK3sKKyAgICBpZiAoIGd0LT5hY3RpdmUgKQorICAg ICAgICByZXR1cm4gLUVCVVNZOworCisgICAgLyogQWN0aXZlIGdyYW50IHRhYmxlLiAqLworICAg IGd0LT5hY3RpdmUgPSB4emFsbG9jX2FycmF5KHN0cnVjdCBhY3RpdmVfZ3JhbnRfZW50cnkgKiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfbnJfYWN0aXZlX2dyYW50X2ZyYW1l cyk7CisgICAgaWYgKCBndC0+YWN0aXZlID09IE5VTEwgKQorICAgICAgICBnb3RvIG5vX21lbTsK KworICAgIC8qIFRyYWNraW5nIG9mIG1hcHBlZCBmb3JlaWduIGZyYW1lcyB0YWJsZSAqLworICAg IGd0LT5tYXB0cmFjayA9IHZ6YWxsb2MobWF4X21hcHRyYWNrX2ZyYW1lcyAqIHNpemVvZigqZ3Qt Pm1hcHRyYWNrKSk7CisgICAgaWYgKCBndC0+bWFwdHJhY2sgPT0gTlVMTCApCisgICAgICAgIGdv dG8gbm9fbWVtOworCisgICAgLyogU2hhcmVkIGdyYW50IHRhYmxlLiAqLworICAgIGd0LT5zaGFy ZWRfcmF3ID0geHphbGxvY19hcnJheSh2b2lkICosIG1heF9ncmFudF9mcmFtZXMpOworICAgIGlm ICggZ3QtPnNoYXJlZF9yYXcgPT0gTlVMTCApCisgICAgICAgIGdvdG8gbm9fbWVtOworCisgICAg LyogU3RhdHVzIHBhZ2VzIGZvciBncmFudCB0YWJsZSAtIGZvciB2ZXJzaW9uIDIgKi8KKyAgICBn dC0+c3RhdHVzID0geHphbGxvY19hcnJheShncmFudF9zdGF0dXNfdCAqLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdyYW50X3RvX3N0YXR1c19mcmFtZXMobWF4X2dyYW50X2ZyYW1l cykpOworICAgIGlmICggZ3QtPnN0YXR1cyA9PSBOVUxMICkKKyAgICAgICAgZ290byBub19tZW07 CisKKyAgICByZXR1cm4gMDsKKworIG5vX21lbToKKyAgICB4ZnJlZShndC0+c2hhcmVkX3Jhdyk7 CisgICAgZ3QtPnNoYXJlZF9yYXcgPSBOVUxMOworICAgIHZmcmVlKGd0LT5tYXB0cmFjayk7Cisg ICAgZ3QtPm1hcHRyYWNrID0gTlVMTDsKKyAgICB4ZnJlZShndC0+YWN0aXZlKTsKKyAgICBndC0+ YWN0aXZlID0gTlVMTDsKKyAgICByZXR1cm4gLUVOT01FTTsKK30KKwogLyoKICAqIEdyb3cgdGhl IGdyYW50IHRhYmxlLiBUaGUgY2FsbGVyIG11c3QgaG9sZCB0aGUgZ3JhbnQgdGFibGUncwogICog d3JpdGUgbG9jayBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgpAQCAtMTY2NSw2ICsxNzA1 LDEwIEBAIGdudHRhYl9ncm93X3RhYmxlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBy ZXFfbnJfZnJhbWVzKQogICAgIHN0cnVjdCBncmFudF90YWJsZSAqZ3QgPSBkLT5ncmFudF90YWJs ZTsKICAgICB1bnNpZ25lZCBpbnQgaSwgajsKIAorICAgIEFTU0VSVChndC0+YWN0aXZlKTsKKwor ICAgIGlmICggcmVxX25yX2ZyYW1lcyA8IElOSVRJQUxfTlJfR1JBTlRfRlJBTUVTICkKKyAgICAg ICAgcmVxX25yX2ZyYW1lcyA9IElOSVRJQUxfTlJfR1JBTlRfRlJBTUVTOwogICAgIEFTU0VSVChy ZXFfbnJfZnJhbWVzIDw9IG1heF9ncmFudF9mcmFtZXMpOwogCiAgICAgZ2RwcmludGsoWEVOTE9H X0lORk8sCkBAIC0zMzgxLDc1ICszNDI1LDIxIEBAIGdyYW50X3RhYmxlX2NyZWF0ZSgKICAgICBz dHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0cnVjdCBncmFudF90YWJsZSAqdDsKLSAgICB1bnNp Z25lZCBpbnQgaSwgajsKIAogICAgIGlmICggKHQgPSB4emFsbG9jKHN0cnVjdCBncmFudF90YWJs ZSkpID09IE5VTEwgKQotICAgICAgICBnb3RvIG5vX21lbV8wOworICAgICAgICByZXR1cm4gLUVO T01FTTsKIAogICAgIC8qIFNpbXBsZSBzdHVmZi4gKi8KICAgICBwZXJjcHVfcndsb2NrX3Jlc291 cmNlX2luaXQoJnQtPmxvY2ssIGdyYW50X3J3bG9jayk7CiAgICAgc3Bpbl9sb2NrX2luaXQoJnQt Pm1hcHRyYWNrX2xvY2spOwotICAgIHQtPm5yX2dyYW50X2ZyYW1lcyA9IElOSVRJQUxfTlJfR1JB TlRfRlJBTUVTOwotCi0gICAgLyogQWN0aXZlIGdyYW50IHRhYmxlLiAqLwotICAgIGlmICggKHQt PmFjdGl2ZSA9IHh6YWxsb2NfYXJyYXkoc3RydWN0IGFjdGl2ZV9ncmFudF9lbnRyeSAqLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X25yX2FjdGl2ZV9ncmFudF9mcmFt ZXMpKSA9PSBOVUxMICkKLSAgICAgICAgZ290byBub19tZW1fMTsKLSAgICBmb3IgKCBpID0gMDsK LSAgICAgICAgICBpIDwgbnVtX2FjdF9mcmFtZXNfZnJvbV9zaGFfZnJhbWVzKElOSVRJQUxfTlJf R1JBTlRfRlJBTUVTKTsgaSsrICkKLSAgICB7Ci0gICAgICAgIGlmICggKHQtPmFjdGl2ZVtpXSA9 IGFsbG9jX3hlbmhlYXBfcGFnZSgpKSA9PSBOVUxMICkKLSAgICAgICAgICAgIGdvdG8gbm9fbWVt XzI7Ci0gICAgICAgIGNsZWFyX3BhZ2UodC0+YWN0aXZlW2ldKTsKLSAgICAgICAgZm9yICggaiA9 IDA7IGogPCBBQ0dOVF9QRVJfUEFHRTsgaisrICkKLSAgICAgICAgICAgIHNwaW5fbG9ja19pbml0 KCZ0LT5hY3RpdmVbaV1bal0ubG9jayk7Ci0gICAgfQotCi0gICAgLyogVHJhY2tpbmcgb2YgbWFw cGVkIGZvcmVpZ24gZnJhbWVzIHRhYmxlICovCi0gICAgdC0+bWFwdHJhY2sgPSB2emFsbG9jKG1h eF9tYXB0cmFja19mcmFtZXMgKiBzaXplb2YoKnQtPm1hcHRyYWNrKSk7Ci0gICAgaWYgKCB0LT5t YXB0cmFjayA9PSBOVUxMICkKLSAgICAgICAgZ290byBub19tZW1fMjsKLQotICAgIC8qIFNoYXJl ZCBncmFudCB0YWJsZS4gKi8KLSAgICBpZiAoICh0LT5zaGFyZWRfcmF3ID0geHphbGxvY19hcnJh eSh2b2lkICosIG1heF9ncmFudF9mcmFtZXMpKSA9PSBOVUxMICkKLSAgICAgICAgZ290byBub19t ZW1fMzsKLSAgICBmb3IgKCBpID0gMDsgaSA8IElOSVRJQUxfTlJfR1JBTlRfRlJBTUVTOyBpKysg KQotICAgIHsKLSAgICAgICAgaWYgKCAodC0+c2hhcmVkX3Jhd1tpXSA9IGFsbG9jX3hlbmhlYXBf cGFnZSgpKSA9PSBOVUxMICkKLSAgICAgICAgICAgIGdvdG8gbm9fbWVtXzQ7Ci0gICAgICAgIGNs ZWFyX3BhZ2UodC0+c2hhcmVkX3Jhd1tpXSk7Ci0gICAgfQotCi0gICAgLyogU3RhdHVzIHBhZ2Vz IGZvciBncmFudCB0YWJsZSAtIGZvciB2ZXJzaW9uIDIgKi8KLSAgICB0LT5zdGF0dXMgPSB4emFs bG9jX2FycmF5KGdyYW50X3N0YXR1c190ICosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBncmFudF90b19zdGF0dXNfZnJhbWVzKG1heF9ncmFudF9mcmFtZXMpKTsKLSAgICBpZiAoIHQt PnN0YXR1cyA9PSBOVUxMICkKLSAgICAgICAgZ290byBub19tZW1fNDsKLQotICAgIGZvciAoIGkg PSAwOyBpIDwgSU5JVElBTF9OUl9HUkFOVF9GUkFNRVM7IGkrKyApCi0gICAgICAgIGdudHRhYl9j cmVhdGVfc2hhcmVkX3BhZ2UoZCwgdCwgaSk7Ci0KLSAgICB0LT5ucl9zdGF0dXNfZnJhbWVzID0g MDsKIAogICAgIC8qIE9rYXksIGluc3RhbGwgdGhlIHN0cnVjdHVyZS4gKi8KICAgICBkLT5ncmFu dF90YWJsZSA9IHQ7Ci0gICAgcmV0dXJuIDA7CiAKLSBub19tZW1fNDoKLSAgICBmb3IgKCBpID0g MDsgaSA8IElOSVRJQUxfTlJfR1JBTlRfRlJBTUVTOyBpKysgKQotICAgICAgICBmcmVlX3hlbmhl YXBfcGFnZSh0LT5zaGFyZWRfcmF3W2ldKTsKLSAgICB4ZnJlZSh0LT5zaGFyZWRfcmF3KTsKLSBu b19tZW1fMzoKLSAgICB2ZnJlZSh0LT5tYXB0cmFjayk7Ci0gbm9fbWVtXzI6Ci0gICAgZm9yICgg aSA9IDA7Ci0gICAgICAgICAgaSA8IG51bV9hY3RfZnJhbWVzX2Zyb21fc2hhX2ZyYW1lcyhJTklU SUFMX05SX0dSQU5UX0ZSQU1FUyk7IGkrKyApCi0gICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlKHQt PmFjdGl2ZVtpXSk7Ci0gICAgeGZyZWUodC0+YWN0aXZlKTsKLSBub19tZW1fMToKLSAgICB4ZnJl ZSh0KTsKLSBub19tZW1fMDoKLSAgICByZXR1cm4gLUVOT01FTTsKKyAgICBpZiAoIGQtPmRvbWFp bl9pZCA9PSAwICkKKyAgICAgICAgcmV0dXJuIGdyYW50X3RhYmxlX2luaXQodCk7CisKKyAgICBy ZXR1cm4gMDsKIH0KIAogdm9pZApAQCAtMzY1MSw4ICszNjQxLDkgQEAgaW50IGdyYW50X3RhYmxl X3NldF9saW1pdHMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGdyYW50X2ZyYW1lcywK IAogICAgIGdyYW50X3dyaXRlX2xvY2soZ3QpOwogCi0gICAgcmV0ID0gMDsKLSAgICAvKiBTZXQg bGltaXRzLCBhbGxvYyBuZWVkZWQgYXJyYXlzLiAqLworICAgIC8qIFNldCBsaW1pdHMuICovCisg ICAgaWYgKCAhZ3QtPmFjdGl2ZSApCisgICAgICAgIHJldCA9IGdyYW50X3RhYmxlX2luaXQoZ3Qp OwogCiAgICAgZ3JhbnRfd3JpdGVfdW5sb2NrKGd0KTsKIAotLSAKMi4xMi4zCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==