From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 REPOST 03/12] x86/mm: add HYPERVISOR_memory_op to acquire guest resources Date: Tue, 22 Aug 2017 15:50:57 +0100 Message-ID: <20170822145107.6877-4-paul.durrant@citrix.com> References: <20170822145107.6877-1-paul.durrant@citrix.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 1dkAWQ-0002D7-OS for xen-devel@lists.xenproject.org; Tue, 22 Aug 2017 14:51:14 +0000 In-Reply-To: <20170822145107.6877-1-paul.durrant@citrix.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: George Dunlap , Andrew Cooper , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org Q2VydGFpbiBtZW1vcnkgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGd1ZXN0IGFyZSBub3Qg bmVjZXNzYXJpbHkKcHJlc2VudCBpbiB0aGUgZ3Vlc3QgUDJNIGFuZCBzbyBhcmUgbm90IG5lY2Vz c2FyaWx5IGF2YWlsYWJsZSB0byBiZQpmb3JlaWduLW1hcHBlZCBieSBhIHRvb2xzIGRvbWFpbiB1 bmxlc3MgdGhleSBhcmUgaW5zZXJ0ZWQsIHdoaWNoIHJpc2tzCnNoYXR0ZXJpbmcgYSBzdXBlci1w YWdlIG1hcHBpbmcuCgpUaGlzIHBhdGNoIGFkZHMgYSBuZXcgbWVtb3J5IG9wIHRvIGFsbG93IHN1 Y2ggcmVzb3VyY2VkIHRvIGJlIHByaXYtbWFwcGVkCmRpcmVjdGx5LCBieSBlaXRoZXIgYSBQViBv ciBIVk0gdG9vbHMgZG9tYWluLgoKTk9URTogV2hpbHN0IHRoZSBuZXcgb3AgaXMgbm90IGludHJp bnNpY2x5IHNwZWNpZmljIHRvIHRoZSB4ODYgYXJjaGl0ZWN0dXJlLAogICAgICBJIGhhdmUgbm8g bWVhbnMgdG8gdGVzdCBpdCBvbiBhbiBBUk0gcGxhdGZvcm0gYW5kIHNvIGNhbm5vdCB2ZXJpZnkK ICAgICAgdGhhdCBpdCBmdW5jdGlvbnMgY29ycmVjdGx5LiBIZW5jZSBpdCBpcyBjdXJyZW50bHkg b25seSBpbXBsZW1lbnRlZAogICAgICBmb3IgeDg2LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJy YW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgpDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgotLS0KIHhl bi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgIHwgICAzICst CiB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgfCAgIDMgKysKIHhlbi9pbmNsdWRlL3B1Ymxp Yy9tZW1vcnkuaCB8ICAzOCArKysrKysrKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUyIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21t LmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBhYWE5ZmY1MTk3Li40ZTg2ZjBhMmFiIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtNDcx Nyw2ICs0NzE3LDEwNyBAQCBpbnQgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgKICAgICByZXR1 cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgeGVubWVtX2FjcXVpcmVfZ3JhbnRfdGFibGUoc3RydWN0 IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBucl9mcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgbWZuX2xpc3RbXSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKwor ICAgIC8qCisgICAgICogSXRlcmF0ZSB0aHJvdWdoIHRoZSBsaXN0IGJhY2t3YXJkcyBzbyB0aGF0 IGdudHRhYl9nZXRfZnJhbWUoKSBpcworICAgICAqIGZpcnN0IGNhbGxlZCBmb3IgdGhlIGhpZ2hl c3QgbnVtYmVyZWQgZnJhbWUuIFRoaXMgbWVhbnMgdGhhdCB0aGUKKyAgICAgKiBvdXQtb2YtYm91 bmRzIGNoZWNrIHdpbGwgYmUgZG9uZSBvbiB0aGUgZmlyc3QgaXRlcmF0aW9uIGFuZCwgaWYKKyAg ICAgKiB0aGUgdGFibGUgbmVlZHMgdG8gZ3JvdywgaXQgd2lsbCBvbmx5IGdyb3cgb25jZS4KKyAg ICAgKi8KKyAgICBpID0gbnJfZnJhbWVzOworICAgIHdoaWxlICggaS0tICE9IDAgKQorICAgIHsK KyAgICAgICAgbWZuX3QgbWZuID0gZ250dGFiX2dldF9mcmFtZShkLCBmcmFtZSArIGkpOworCisg ICAgICAgIGlmICggbWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pICkKKyAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOworCisgICAgICAgIG1mbl9saXN0W2ldID0gbWZuX3gobWZuKTsKKyAgICB9CisK KyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCB4ZW5tZW1fYWNxdWlyZV9yZXNvdXJjZSh4 ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2VfdCAqeG1hcikKK3sKKyAgICBzdHJ1Y3QgZG9tYWluICpk LCAqY3VycmQgPSBjdXJyZW50LT5kb21haW47CisgICAgdW5zaWduZWQgbG9uZyAqbWZuX2xpc3Q7 CisgICAgaW50IHJjOworCisgICAgaWYgKCB4bWFyLT5ucl9mcmFtZXMgPT0gMCApCisgICAgICAg IHJldHVybiAtRUlOVkFMOworCisgICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9hbnlfaWQoeG1h ci0+ZG9taWQpOworICAgIGlmICggZCA9PSBOVUxMICkKKyAgICAgICAgcmV0dXJuIC1FU1JDSDsK KworICAgIHJjID0geHNtX2RvbWFpbl9tZW1vcnlfbWFwKFhTTV9UQVJHRVQsIGQpOworICAgIGlm ICggcmMgKQorICAgICAgICBnb3RvIG91dDsKKworICAgIG1mbl9saXN0ID0geG1hbGxvY19hcnJh eSh1bnNpZ25lZCBsb25nLCB4bWFyLT5ucl9mcmFtZXMpOworCisgICAgcmMgPSAtRU5PTUVNOwor ICAgIGlmICggIW1mbl9saXN0ICkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBzd2l0Y2ggKCB4 bWFyLT50eXBlICkKKyAgICB7CisgICAgY2FzZSBYRU5NRU1fcmVzb3VyY2VfZ3JhbnRfdGFibGU6 CisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCB4bWFyLT5pZCApIC8qIG11c3Qg YmUgemVybyBmb3IgZ3JhbnRfdGFibGUgKi8KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg IHJjID0geGVubWVtX2FjcXVpcmVfZ3JhbnRfdGFibGUoZCwgeG1hci0+ZnJhbWUsIHhtYXItPm5y X2ZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fbGlz dCk7CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmMgPSAtRU9QTk9U U1VQUDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCByYyApCisgICAgICAgIGdv dG8gZnJlZV9hbmRfb3V0OworCisgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGN1cnJk KSApCisgICAgeworICAgICAgICBpZiAoIF9fY29weV90b19ndWVzdF9vZmZzZXQoeG1hci0+Z21m bl9saXN0LCAwLCBtZm5fbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHhtYXItPm5yX2ZyYW1lcykgKQorICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAgIH0KKyAg ICBlbHNlCisgICAgeworICAgICAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgICAgICBmb3IgKCBp ID0gMDsgaSA8IHhtYXItPm5yX2ZyYW1lczsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAg eGVuX3Bmbl90IGdmbjsKKworICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICAgICAg aWYgKCBfX2NvcHlfZnJvbV9ndWVzdF9vZmZzZXQoJmdmbiwgeG1hci0+Z21mbl9saXN0LCBpLCAx KSApCisgICAgICAgICAgICAgICAgZ290byBmcmVlX2FuZF9vdXQ7CisKKyAgICAgICAgICAgIHJj ID0gc2V0X2ZvcmVpZ25fcDJtX2VudHJ5KGN1cnJkLCBnZm4sIF9tZm4obWZuX2xpc3RbaV0pKTsK KyAgICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIGdvdG8gZnJlZV9hbmRfb3V0 OworICAgICAgICB9CisgICAgfQorCisgZnJlZV9hbmRfb3V0OgorICAgIHhmcmVlKG1mbl9saXN0 KTsKKworIG91dDoKKyAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKKyAgICByZXR1cm4gcmM7Cit9 CisKIGxvbmcgYXJjaF9tZW1vcnlfb3AodW5zaWduZWQgbG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0odm9pZCkgYXJnKQogewogICAgIGludCByYzsKQEAgLTQ5MzksNiArNTA0MCwxNiBA QCBsb25nIGFyY2hfbWVtb3J5X29wKHVuc2lnbmVkIGxvbmcgY21kLCBYRU5fR1VFU1RfSEFORExF X1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgcmV0dXJuIHJjOwogICAgIH0KIAorICAgIGNhc2Ug WEVOTUVNX2FjcXVpcmVfcmVzb3VyY2U6CisgICAgeworICAgICAgICB4ZW5fbWVtX2FjcXVpcmVf cmVzb3VyY2VfdCB4bWFyOworCisgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZ4bWFyLCBh cmcsIDEpICkKKyAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworCisgICAgICAgIHJldHVybiB4 ZW5tZW1fYWNxdWlyZV9yZXNvdXJjZSgmeG1hcik7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAg ICAgICAgcmV0dXJuIHN1YmFyY2hfbWVtb3J5X29wKGNtZCwgYXJnKTsKICAgICB9CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKaW5kZXgg ZThhNTdkMTE4Yy4uYzUwM2E3ZjFkMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpAQCAtMTExOCw4ICsxMTE4LDcgQEAgc3RhdGlj IGludCBzZXRfdHlwZWRfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg Z2ZuLCBtZm5fdCBtZm4sCiB9CiAKIC8qIFNldCBmb3JlaWduIG1mbiBpbiB0aGUgZ2l2ZW4gZ3Vl c3QncyBwMm0gdGFibGUuICovCi1zdGF0aWMgaW50IHNldF9mb3JlaWduX3AybV9lbnRyeShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1mbl90IG1mbikKK2ludCBzZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbikKIHsKICAgICByZXR1cm4gc2V0 X3R5cGVkX3AybV9lbnRyeShkLCBnZm4sIG1mbiwgUEFHRV9PUkRFUl80SywgcDJtX21hcF9mb3Jl aWduLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV9nZXRfaG9zdHAybShkKS0+ ZGVmYXVsdF9hY2Nlc3MpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCBi L3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKaW5kZXggNjM5NWU4ZmQxZC4uM2NjZWMyNTBkOCAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAorKysgYi94ZW4vaW5jbHVkZS9h c20teDg2L3AybS5oCkBAIC02MTMsNiArNjEzLDkgQEAgdm9pZCBwMm1fbWVtb3J5X3R5cGVfY2hh bmdlZChzdHJ1Y3QgZG9tYWluICpkKTsKIGludCBwMm1faXNfbG9nZGlydHlfcmFuZ2Uoc3RydWN0 IHAybV9kb21haW4gKiwgdW5zaWduZWQgbG9uZyBzdGFydCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBlbmQpOwogCisvKiBTZXQgZm9yZWlnbiBlbnRyeSBpbiB0aGUg cDJtIHRhYmxlIChmb3IgcHJpdi1tYXBwaW5nKSAqLworaW50IHNldF9mb3JlaWduX3AybV9lbnRy eShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZuKTsKKwogLyog U2V0IG1taW8gYWRkcmVzc2VzIGluIHRoZSBwMm0gdGFibGUgKGZvciBwYXNzLXRocm91Z2gpICov CiBpbnQgc2V0X21taW9fcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg Z2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRl ciwgcDJtX2FjY2Vzc190IGFjY2Vzcyk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMv bWVtb3J5LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKaW5kZXggMjkzODZkZjk4Yi4u OWJmNThlNzM4NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCisrKyBi L3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaApAQCAtNjUwLDcgKzY1MCw0MyBAQCBzdHJ1Y3Qg eGVuX3ZudW1hX3RvcG9sb2d5X2luZm8gewogdHlwZWRlZiBzdHJ1Y3QgeGVuX3ZudW1hX3RvcG9s b2d5X2luZm8geGVuX3ZudW1hX3RvcG9sb2d5X2luZm9fdDsKIERFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl92bnVtYV90b3BvbG9neV9pbmZvX3QpOwogCi0vKiBOZXh0IGF2YWlsYWJsZSBzdWJv cCBudW1iZXIgaXMgMjggKi8KKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5f VE9PTFNfXykKKworLyoKKyAqIEdldCB0aGUgcGFnZXMgZm9yIGEgcGFydGljdWxhciBndWVzdCBy ZXNvdXJjZSwgc28gdGhhdCB0aGV5IGNhbiBiZQorICogbWFwcGVkIGRpcmVjdGx5IGJ5IGEgdG9v bHMgZG9tYWluLgorICovCisjZGVmaW5lIFhFTk1FTV9hY3F1aXJlX3Jlc291cmNlIDI4CitzdHJ1 Y3QgeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlIHsKKyAgICAvKiBJTiAtIHRoZSBkb21haW4gd2hv c2UgcmVzb3VyY2UgaXMgdG8gYmUgbWFwcGVkICovCisgICAgZG9taWRfdCBkb21pZDsKKyAgICAv KiBJTiAtIHRoZSB0eXBlIG9mIHJlc291cmNlIChkZWZpbmVkIGJlbG93KSAqLworICAgIHVpbnQx Nl90IHR5cGU7CisKKyNkZWZpbmUgWEVOTUVNX3Jlc291cmNlX2dyYW50X3RhYmxlIDAKKworICAg IC8qCisgICAgICogSU4gLSBhIHR5cGUtc3BlY2lmaWMgcmVzb3VyY2UgaWRlbnRpZmllciwgd2hp Y2ggbXVzdCBiZSB6ZXJvCisgICAgICogICAgICB1bmxlc3Mgc3RhdGVkIG90aGVyd2lzZS4KKyAg ICAgKi8KKyAgICB1aW50MzJfdCBpZDsKKyAgICAvKiBJTiAtIG51bWJlciBvZiAoNEspIGZyYW1l cyBvZiB0aGUgcmVzb3VyY2UgdG8gYmUgbWFwcGVkICovCisgICAgdWludDMyX3QgbnJfZnJhbWVz OworICAgIC8qIElOIC0gdGhlIGluZGV4IG9mIHRoZSBpbml0aWFsIGZyYW1lIHRvIGJlIG1hcHBl ZCAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgZnJhbWU7CisgICAgLyogSU4vT1VUIC0gSWYgdGhl IHRvb2xzIGRvbWFpbiBpcyBQViB0aGVuLCB1cG9uIHJldHVybiwgZ21mbl9saXN0CisgICAgICog ICAgICAgICAgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgTUZOcyBvZiB0aGUgcmVzb3VyY2Uu CisgICAgICogICAgICAgICAgSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBIVk0gdGhlbiBpdCBpcyBl eHBlY3RlZCB0aGF0LCBvbgorICAgICAqICAgICAgICAgIGVudHJ5LCBnbWZuX2xpc3Qgd2lsbCBi ZSBwb3B1bGF0ZWQgd2l0aCBhIGxpc3Qgb2YgR0ZOcworICAgICAqICAgICAgICAgIHRoYXQgd2ls bCBiZSBtYXBwZWQgdG8gdGhlIE1GTnMgb2YgdGhlIHJlc291cmNlLgorICAgICAqLworICAgIFhF Tl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KSBnbWZuX2xpc3Q7Cit9OwordHlwZWRlZiBzdHJ1Y3Qg eGVuX21lbV9hY3F1aXJlX3Jlc291cmNlIHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZV90OworCisj ZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCisK Ky8qIE5leHQgYXZhaWxhYmxlIHN1Ym9wIG51bWJlciBpcyAyOSAqLwogCiAjZW5kaWYgLyogX19Y RU5fUFVCTElDX01FTU9SWV9IX18gKi8KIAotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==