From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v10 07/11] xen: delay allocation of grant table sub structures Date: Mon, 25 Sep 2017 12:00:31 +0200 Message-ID: <20170925100035.432-8-jgross@suse.com> References: <20170925100035.432-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwQC0-0002AN-GZ for xen-devel@lists.xenproject.org; Mon, 25 Sep 2017 10:00:48 +0000 In-Reply-To: <20170925100035.432-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 dWN0dXJlcyBhbmQgdGhlIHRhYmxlIGZyYW1lcyBvbmx5CmZyb20gZ3JhbnRfdGFibGVfaW5pdCgp LgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpSZXZpZXdl ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tClYxMDoKLSBt b3ZlIGxvY2tpbmcgaW50byBncmFudF90YWJsZV9pbml0KCkgKEphbiBCZXVsaWNoKQoKVjk6Ci0g YWxsb2NhdGUgaW5pdGlhbCBncmFudCBmcmFtZXMgZnJvbSBncmFudF90YWJsZV9pbml0KCkgKEph biBCZXVsaWNoKQoKVjY6Ci0gbW92ZSBjYWxsIG9mIGdyYW50X3RhYmxlX2luaXQoKSBmb3IgZG9t MCB0byBncmFudF90YWJsZV9jcmVhdGUoKQogIChKYW4gQmV1bGljaCkKLSBtb3ZlIGZyYW1lIGFs bG9jYXRpb25zIHRvIGdudHRhYl9ncm93X3RhYmxlKCkgKEphbiBCZXVsaWNoKQotIHNldmVyYWwg b3RoZXIgY2hhbmdlcyBkdWUgdG8gbmV3IHBhdGNoIG9yZGVyCgpWNDoKLSBtYWtlIHJldCBtb3Jl IGxvY2FsIChXZWkgTGl1KQoKVjM6Ci0gbW92ZSBjYWxsIG9mIGdyYW50X3RhYmxlX2luaXQoKSBm cm9tIGdudHRhYl9zZXR1cF90YWJsZSgpIHRvCiAgZ250dGFiX2dyb3dfdGFibGUoKSAoUGF1bCBE dXJyYW50KQotLS0KIHhlbi9jb21tb24vZ3JhbnRfdGFibGUuYyB8IDEzNCArKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY3IGlu c2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3Jh bnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCAwZjA5ODkxZjU5Li5k ODZhNGUwMjQ4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVu L2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC0xNjY3LDYgKzE2NjcsMTAgQEAgZ250dGFiX2dyb3df dGFibGUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHJlcV9ucl9mcmFtZXMpCiAgICAg c3RydWN0IGdyYW50X3RhYmxlICpndCA9IGQtPmdyYW50X3RhYmxlOwogICAgIHVuc2lnbmVkIGlu dCBpLCBqOwogCisgICAgQVNTRVJUKGd0LT5hY3RpdmUpOworCisgICAgaWYgKCByZXFfbnJfZnJh bWVzIDwgSU5JVElBTF9OUl9HUkFOVF9GUkFNRVMgKQorICAgICAgICByZXFfbnJfZnJhbWVzID0g SU5JVElBTF9OUl9HUkFOVF9GUkFNRVM7CiAgICAgQVNTRVJUKHJlcV9ucl9mcmFtZXMgPD0gbWF4 X2dyYW50X2ZyYW1lcyk7CiAKICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywKQEAgLTE3MjMsNiAr MTcyNyw2MCBAQCBhY3RpdmVfYWxsb2NfZmFpbGVkOgogICAgIHJldHVybiAwOwogfQogCitzdGF0 aWMgaW50CitncmFudF90YWJsZV9pbml0KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBncmFudF90 YWJsZSAqZ3QpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBncmFudF93cml0ZV9sb2NrKGd0 KTsKKworICAgIGlmICggZ3QtPmFjdGl2ZSApCisgICAgeworICAgICAgICByZXQgPSAtRUJVU1k7 CisgICAgICAgIGdvdG8gdW5sb2NrOworICAgIH0KKworICAgIC8qIEFjdGl2ZSBncmFudCB0YWJs ZS4gKi8KKyAgICBndC0+YWN0aXZlID0geHphbGxvY19hcnJheShzdHJ1Y3QgYWN0aXZlX2dyYW50 X2VudHJ5ICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X25yX2FjdGl2ZV9n cmFudF9mcmFtZXMpOworICAgIGlmICggZ3QtPmFjdGl2ZSA9PSBOVUxMICkKKyAgICAgICAgZ290 byBub19tZW07CisKKyAgICAvKiBUcmFja2luZyBvZiBtYXBwZWQgZm9yZWlnbiBmcmFtZXMgdGFi bGUgKi8KKyAgICBndC0+bWFwdHJhY2sgPSB2emFsbG9jKG1heF9tYXB0cmFja19mcmFtZXMgKiBz aXplb2YoKmd0LT5tYXB0cmFjaykpOworICAgIGlmICggZ3QtPm1hcHRyYWNrID09IE5VTEwgKQor ICAgICAgICBnb3RvIG5vX21lbTsKKworICAgIC8qIFNoYXJlZCBncmFudCB0YWJsZS4gKi8KKyAg ICBndC0+c2hhcmVkX3JhdyA9IHh6YWxsb2NfYXJyYXkodm9pZCAqLCBtYXhfZ3JhbnRfZnJhbWVz KTsKKyAgICBpZiAoIGd0LT5zaGFyZWRfcmF3ID09IE5VTEwgKQorICAgICAgICBnb3RvIG5vX21l bTsKKworICAgIC8qIFN0YXR1cyBwYWdlcyBmb3IgZ3JhbnQgdGFibGUgLSBmb3IgdmVyc2lvbiAy ICovCisgICAgZ3QtPnN0YXR1cyA9IHh6YWxsb2NfYXJyYXkoZ3JhbnRfc3RhdHVzX3QgKiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudF90b19zdGF0dXNfZnJhbWVzKG1heF9n cmFudF9mcmFtZXMpKTsKKyAgICBpZiAoIGd0LT5zdGF0dXMgPT0gTlVMTCApCisgICAgICAgIGdv dG8gbm9fbWVtOworCisgICAgLyogZ250dGFiX2dyb3dfdGFibGUoKSBhbGxvY2F0ZXMgYSBtaW4g bnVtYmVyIG9mIGZyYW1lcywgc28gMCBpcyBva2F5LiAqLworICAgIGlmICggZ250dGFiX2dyb3df dGFibGUoZCwgMCkgKQorICAgICAgICBnb3RvIHVubG9jazsKKworIG5vX21lbToKKyAgICByZXQg PSAtRU5PTUVNOworICAgIHhmcmVlKGd0LT5zaGFyZWRfcmF3KTsKKyAgICBndC0+c2hhcmVkX3Jh dyA9IE5VTEw7CisgICAgdmZyZWUoZ3QtPm1hcHRyYWNrKTsKKyAgICBndC0+bWFwdHJhY2sgPSBO VUxMOworICAgIHhmcmVlKGd0LT5hY3RpdmUpOworICAgIGd0LT5hY3RpdmUgPSBOVUxMOworCisg dW5sb2NrOgorICAgIGdyYW50X3dyaXRlX3VubG9jayhndCk7CisKKyAgICByZXR1cm4gcmV0Owor fQorCiBzdGF0aWMgbG9uZwogZ250dGFiX3NldHVwX3RhYmxlKAogICAgIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oZ250dGFiX3NldHVwX3RhYmxlX3QpIHVvcCwgdW5zaWduZWQgaW50IGNvdW50KQpA QCAtMzM4Myw3NSArMzQ0MSwyNCBAQCBncmFudF90YWJsZV9jcmVhdGUoCiAgICAgc3RydWN0IGRv bWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgZ3JhbnRfdGFibGUgKnQ7Ci0gICAgdW5zaWduZWQgaW50 IGksIGo7CisgICAgaW50IHJldCA9IDA7CiAKICAgICBpZiAoICh0ID0geHphbGxvYyhzdHJ1Y3Qg Z3JhbnRfdGFibGUpKSA9PSBOVUxMICkKLSAgICAgICAgZ290byBub19tZW1fMDsKKyAgICAgICAg cmV0dXJuIC1FTk9NRU07CiAKICAgICAvKiBTaW1wbGUgc3R1ZmYuICovCiAgICAgcGVyY3B1X3J3 bG9ja19yZXNvdXJjZV9pbml0KCZ0LT5sb2NrLCBncmFudF9yd2xvY2spOwogICAgIHNwaW5fbG9j a19pbml0KCZ0LT5tYXB0cmFja19sb2NrKTsKLSAgICB0LT5ucl9ncmFudF9mcmFtZXMgPSBJTklU SUFMX05SX0dSQU5UX0ZSQU1FUzsKLQotICAgIC8qIEFjdGl2ZSBncmFudCB0YWJsZS4gKi8KLSAg ICBpZiAoICh0LT5hY3RpdmUgPSB4emFsbG9jX2FycmF5KHN0cnVjdCBhY3RpdmVfZ3JhbnRfZW50 cnkgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9ucl9hY3RpdmVf Z3JhbnRfZnJhbWVzKSkgPT0gTlVMTCApCi0gICAgICAgIGdvdG8gbm9fbWVtXzE7Ci0gICAgZm9y ICggaSA9IDA7Ci0gICAgICAgICAgaSA8IG51bV9hY3RfZnJhbWVzX2Zyb21fc2hhX2ZyYW1lcyhJ TklUSUFMX05SX0dSQU5UX0ZSQU1FUyk7IGkrKyApCi0gICAgewotICAgICAgICBpZiAoICh0LT5h Y3RpdmVbaV0gPSBhbGxvY194ZW5oZWFwX3BhZ2UoKSkgPT0gTlVMTCApCi0gICAgICAgICAgICBn b3RvIG5vX21lbV8yOwotICAgICAgICBjbGVhcl9wYWdlKHQtPmFjdGl2ZVtpXSk7Ci0gICAgICAg IGZvciAoIGogPSAwOyBqIDwgQUNHTlRfUEVSX1BBR0U7IGorKyApCi0gICAgICAgICAgICBzcGlu X2xvY2tfaW5pdCgmdC0+YWN0aXZlW2ldW2pdLmxvY2spOwotICAgIH0KIAotICAgIC8qIFRyYWNr aW5nIG9mIG1hcHBlZCBmb3JlaWduIGZyYW1lcyB0YWJsZSAqLwotICAgIHQtPm1hcHRyYWNrID0g dnphbGxvYyhtYXhfbWFwdHJhY2tfZnJhbWVzICogc2l6ZW9mKCp0LT5tYXB0cmFjaykpOwotICAg IGlmICggdC0+bWFwdHJhY2sgPT0gTlVMTCApCi0gICAgICAgIGdvdG8gbm9fbWVtXzI7CisgICAg LyogT2theSwgaW5zdGFsbCB0aGUgc3RydWN0dXJlLiAqLworICAgIGQtPmdyYW50X3RhYmxlID0g dDsKIAotICAgIC8qIFNoYXJlZCBncmFudCB0YWJsZS4gKi8KLSAgICBpZiAoICh0LT5zaGFyZWRf cmF3ID0geHphbGxvY19hcnJheSh2b2lkICosIG1heF9ncmFudF9mcmFtZXMpKSA9PSBOVUxMICkK LSAgICAgICAgZ290byBub19tZW1fMzsKLSAgICBmb3IgKCBpID0gMDsgaSA8IElOSVRJQUxfTlJf R1JBTlRfRlJBTUVTOyBpKysgKQorICAgIGlmICggZC0+ZG9tYWluX2lkID09IDAgKQogICAgIHsK LSAgICAgICAgaWYgKCAodC0+c2hhcmVkX3Jhd1tpXSA9IGFsbG9jX3hlbmhlYXBfcGFnZSgpKSA9 PSBOVUxMICkKLSAgICAgICAgICAgIGdvdG8gbm9fbWVtXzQ7Ci0gICAgICAgIGNsZWFyX3BhZ2Uo dC0+c2hhcmVkX3Jhd1tpXSk7CisgICAgICAgIHJldCA9IGdyYW50X3RhYmxlX2luaXQoZCwgdCk7 CiAgICAgfQogCi0gICAgLyogU3RhdHVzIHBhZ2VzIGZvciBncmFudCB0YWJsZSAtIGZvciB2ZXJz aW9uIDIgKi8KLSAgICB0LT5zdGF0dXMgPSB4emFsbG9jX2FycmF5KGdyYW50X3N0YXR1c190ICos Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudF90b19zdGF0dXNfZnJhbWVzKG1h eF9ncmFudF9mcmFtZXMpKTsKLSAgICBpZiAoIHQtPnN0YXR1cyA9PSBOVUxMICkKLSAgICAgICAg Z290byBub19tZW1fNDsKLQotICAgIGZvciAoIGkgPSAwOyBpIDwgSU5JVElBTF9OUl9HUkFOVF9G UkFNRVM7IGkrKyApCi0gICAgICAgIGdudHRhYl9jcmVhdGVfc2hhcmVkX3BhZ2UoZCwgdCwgaSk7 Ci0KLSAgICB0LT5ucl9zdGF0dXNfZnJhbWVzID0gMDsKLQotICAgIC8qIE9rYXksIGluc3RhbGwg dGhlIHN0cnVjdHVyZS4gKi8KLSAgICBkLT5ncmFudF90YWJsZSA9IHQ7Ci0gICAgcmV0dXJuIDA7 Ci0KLSBub19tZW1fNDoKLSAgICBmb3IgKCBpID0gMDsgaSA8IElOSVRJQUxfTlJfR1JBTlRfRlJB TUVTOyBpKysgKQotICAgICAgICBmcmVlX3hlbmhlYXBfcGFnZSh0LT5zaGFyZWRfcmF3W2ldKTsK LSAgICB4ZnJlZSh0LT5zaGFyZWRfcmF3KTsKLSBub19tZW1fMzoKLSAgICB2ZnJlZSh0LT5tYXB0 cmFjayk7Ci0gbm9fbWVtXzI6Ci0gICAgZm9yICggaSA9IDA7Ci0gICAgICAgICAgaSA8IG51bV9h Y3RfZnJhbWVzX2Zyb21fc2hhX2ZyYW1lcyhJTklUSUFMX05SX0dSQU5UX0ZSQU1FUyk7IGkrKyAp Ci0gICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlKHQtPmFjdGl2ZVtpXSk7Ci0gICAgeGZyZWUodC0+ YWN0aXZlKTsKLSBub19tZW1fMToKLSAgICB4ZnJlZSh0KTsKLSBub19tZW1fMDoKLSAgICByZXR1 cm4gLUVOT01FTTsKKyAgICByZXR1cm4gcmV0OwogfQogCiB2b2lkCkBAIC0zNjQ2LDE5ICszNjUz LDEyIEBAIGludCBncmFudF90YWJsZV9zZXRfbGltaXRzKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCBncmFudF9mcmFtZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgbWFwdHJhY2tfZnJhbWVzKQogewogICAgIHN0cnVjdCBncmFudF90YWJsZSAqZ3QgPSBk LT5ncmFudF90YWJsZTsKLSAgICBpbnQgcmV0ID0gLUVCVVNZOwogCiAgICAgaWYgKCAhZ3QgKQog ICAgICAgICByZXR1cm4gLUVOT0VOVDsKIAotICAgIGdyYW50X3dyaXRlX2xvY2soZ3QpOwotCi0g ICAgcmV0ID0gMDsKLSAgICAvKiBTZXQgbGltaXRzLCBhbGxvYyBuZWVkZWQgYXJyYXlzLiAqLwot Ci0gICAgZ3JhbnRfd3JpdGVfdW5sb2NrKGd0KTsKLQotICAgIHJldHVybiByZXQ7CisgICAgLyog U2V0IGxpbWl0cy4gKi8KKyAgICByZXR1cm4gZ3JhbnRfdGFibGVfaW5pdChkLCBndCk7CiB9CiAK ICNpZmRlZiBDT05GSUdfSEFTX01FTV9TSEFSSU5HCi0tIAoyLjEyLjMKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK