From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v2 3/9] mm: Scrub pages in alloc_heap_pages() if needed Date: Mon, 3 Apr 2017 12:50:50 -0400 Message-ID: <1491238256-5517-4-git-send-email-boris.ostrovsky@oracle.com> References: <1491238256-5517-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491238256-5517-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org V2hlbiBhbGxvY2F0aW5nIHBhZ2VzIGluIGFsbG9jX2hlYXBfcGFnZXMoKSBmaXJzdCBsb29rIGZv ciBjbGVhbiBwYWdlcy4gSWYgbm9uZQppcyBmb3VuZCB0aGVuIHJldHJ5LCB0YWtlIHBhZ2VzIG1h cmtlZCBhcyB1bnNjcnViYmVkIGFuZCBzY3J1YiB0aGVtLgoKTm90ZSB0aGF0IHdlIHNob3VsZG4n dCBmaW5kIHVuc2NydWJiZWQgcGFnZXMgaW4gYWxsb2NfaGVhcF9wYWdlcygpIHlldC4gSG93ZXZl ciwKdGhpcyB3aWxsIGJlY29tZSBwb3NzaWJsZSB3aGVuIHdlIHN0b3Agc2NydWJiaW5nIGZyb20g ZnJlZV9oZWFwX3BhZ2VzKCkgYW5kCmluc3RlYWQgZG8gaXQgZnJvbSBpZGxlIGxvb3AuCgpTaWdu ZWQtb2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgot LS0KIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jIHwgICA4NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25z KCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3BhZ2VfYWxsb2Mu YyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IDU2NDg2YTguLmE1NjBkM2UgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBiL3hlbi9jb21tb24vcGFnZV9hbGxv Yy5jCkBAIC03MDUsMzQgKzcwNSwxNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2Nf aGVhcF9wYWdlcygKICAgICB1bnNpZ25lZCBpbnQgb3JkZXIsIHVuc2lnbmVkIGludCBtZW1mbGFn cywKICAgICBzdHJ1Y3QgZG9tYWluICpkKQogewotICAgIHVuc2lnbmVkIGludCBpLCBqLCB6b25l ID0gMCwgbm9kZW1hc2tfcmV0cnkgPSAwOwotICAgIG5vZGVpZF90IGZpcnN0X25vZGUsIG5vZGUg PSBNRU1GX2dldF9ub2RlKG1lbWZsYWdzKSwgcmVxX25vZGUgPSBub2RlOworICAgIHVuc2lnbmVk IGludCBpLCBqLCB6b25lLCBub2RlbWFza19yZXRyeTsKKyAgICBub2RlaWRfdCBmaXJzdF9ub2Rl LCBub2RlLCByZXFfbm9kZTsKICAgICB1bnNpZ25lZCBsb25nIHJlcXVlc3QgPSAxVUwgPDwgb3Jk ZXI7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7Ci0gICAgbm9kZW1hc2tfdCBub2RlbWFzayA9 IChkICE9IE5VTEwgKSA/IGQtPm5vZGVfYWZmaW5pdHkgOiBub2RlX29ubGluZV9tYXA7Ci0gICAg Ym9vbF90IG5lZWRfdGxiZmx1c2ggPSAwOworICAgIG5vZGVtYXNrX3Qgbm9kZW1hc2s7CisgICAg Ym9vbF90IG5lZWRfc2NydWIsIG5lZWRfdGxiZmx1c2ggPSAwLCB1c2VfdW5zY3J1YmJlZCA9IDA7 CiAgICAgdWludDMyX3QgdGxiZmx1c2hfdGltZXN0YW1wID0gMDsKIAogICAgIC8qIE1ha2Ugc3Vy ZSB0aGVyZSBhcmUgZW5vdWdoIGJpdHMgaW4gbWVtZmxhZ3MgZm9yIG5vZGVJRC4gKi8KICAgICBC VUlMRF9CVUdfT04oKF9NRU1GX2JpdHMgLSBfTUVNRl9ub2RlKSA8ICg4ICogc2l6ZW9mKG5vZGVp ZF90KSkpOwogCi0gICAgaWYgKCBub2RlID09IE5VTUFfTk9fTk9ERSApCi0gICAgewotICAgICAg ICBpZiAoIGQgIT0gTlVMTCApCi0gICAgICAgIHsKLSAgICAgICAgICAgIG5vZGUgPSBuZXh0X25v ZGUoZC0+bGFzdF9hbGxvY19ub2RlLCBub2RlbWFzayk7Ci0gICAgICAgICAgICBpZiAoIG5vZGUg Pj0gTUFYX05VTU5PREVTICkKLSAgICAgICAgICAgICAgICBub2RlID0gZmlyc3Rfbm9kZShub2Rl bWFzayk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCBub2RlID49IE1BWF9OVU1OT0RFUyApCi0g ICAgICAgICAgICBub2RlID0gY3B1X3RvX25vZGUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKLSAgICB9 Ci0gICAgZmlyc3Rfbm9kZSA9IG5vZGU7Ci0KLSAgICBBU1NFUlQobm9kZSA8IE1BWF9OVU1OT0RF Uyk7Ci0gICAgQVNTRVJUKHpvbmVfbG8gPD0gem9uZV9oaSk7Ci0gICAgQVNTRVJUKHpvbmVfaGkg PCBOUl9aT05FUyk7Ci0KICAgICBpZiAoIHVubGlrZWx5KG9yZGVyID4gTUFYX09SREVSKSApCiAg ICAgICAgIHJldHVybiBOVUxMOwogCkBAIC03NDYsNyArNzI5LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qg cGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgICAgICAgIHRvdGFsX2F2YWlsX3BhZ2Vz ICsgdG1lbV9mcmVlYWJsZV9wYWdlcygpKSAmJgogICAgICAgICAgICgobWVtZmxhZ3MgJiBNRU1G X25vX3JlZmNvdW50KSB8fAogICAgICAgICAgICAhZCB8fCBkLT5vdXRzdGFuZGluZ19wYWdlcyA8 IHJlcXVlc3QpICkKLSAgICAgICAgZ290byBub3RfZm91bmQ7CisgICAgeworICAgICAgICBzcGlu X3VubG9jaygmaGVhcF9sb2NrKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogCiAgICAg LyoKICAgICAgKiBUTUVNOiBXaGVuIGF2YWlsYWJsZSBtZW1vcnkgaXMgc2NhcmNlIGR1ZSB0byB0 bWVtIGFic29yYmluZyBpdCwgYWxsb3cKQEAgLTc1OSw2ICs3NDUsMjggQEAgc3RhdGljIHN0cnVj dCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFnZXMoCiAgICAgICAgICB0bWVtX2ZyZWVhYmxlX3Bh Z2VzKCkgKQogICAgICAgICBnb3RvIHRyeV90bWVtOwogCisgYWdhaW46CisKKyAgICBub2RlbWFz a19yZXRyeSA9IDA7CisgICAgbm9kZW1hc2sgPSAoZCAhPSBOVUxMICkgPyBkLT5ub2RlX2FmZmlu aXR5IDogbm9kZV9vbmxpbmVfbWFwOworICAgIG5vZGUgPSByZXFfbm9kZSA9IE1FTUZfZ2V0X25v ZGUobWVtZmxhZ3MpOworICAgIGlmICggbm9kZSA9PSBOVU1BX05PX05PREUgKQorICAgIHsKKyAg ICAgICAgaWYgKCBkICE9IE5VTEwgKQorICAgICAgICB7CisgICAgICAgICAgICBub2RlID0gbmV4 dF9ub2RlKGQtPmxhc3RfYWxsb2Nfbm9kZSwgbm9kZW1hc2spOworICAgICAgICAgICAgaWYgKCBu b2RlID49IE1BWF9OVU1OT0RFUyApCisgICAgICAgICAgICAgICAgbm9kZSA9IGZpcnN0X25vZGUo bm9kZW1hc2spOworICAgICAgICB9CisgICAgICAgIGlmICggbm9kZSA+PSBNQVhfTlVNTk9ERVMg KQorICAgICAgICAgICAgbm9kZSA9IGNwdV90b19ub2RlKHNtcF9wcm9jZXNzb3JfaWQoKSk7Cisg ICAgfQorICAgIGZpcnN0X25vZGUgPSBub2RlOworCisgICAgQVNTRVJUKG5vZGUgPCBNQVhfTlVN Tk9ERVMpOworICAgIEFTU0VSVCh6b25lX2xvIDw9IHpvbmVfaGkpOworICAgIEFTU0VSVCh6b25l X2hpIDwgTlJfWk9ORVMpOworCiAgICAgLyoKICAgICAgKiBTdGFydCB3aXRoIHJlcXVlc3RlZCBu b2RlLCBidXQgZXhoYXVzdCBhbGwgbm9kZSBtZW1vcnkgaW4gcmVxdWVzdGVkIAogICAgICAqIHpv bmUgYmVmb3JlIGZhaWxpbmcsIG9ubHkgY2FsYyBuZXcgbm9kZSB2YWx1ZSBpZiB3ZSBmYWlsIHRv IGZpbmQgbWVtb3J5IApAQCAtNzc0LDggKzc4MiwxNiBAQCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5m byAqYWxsb2NfaGVhcF9wYWdlcygKIAogICAgICAgICAgICAgLyogRmluZCBzbWFsbGVzdCBvcmRl ciB3aGljaCBjYW4gc2F0aXNmeSB0aGUgcmVxdWVzdC4gKi8KICAgICAgICAgICAgIGZvciAoIGog PSBvcmRlcjsgaiA8PSBNQVhfT1JERVI7IGorKyApCisgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgaWYgKCAocGcgPSBwYWdlX2xpc3RfcmVtb3ZlX2hlYWQoJmhlYXAobm9kZSwgem9uZSwg aikpKSApCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CisgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgICBpZiAoIChvcmRlciA9PSAwKSB8fCB1c2VfdW5zY3J1YmJl ZCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICF0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIs ICZwZy0+Y291bnRfaW5mbykgKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZDsK KworICAgICAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGcsICZoZWFwKG5vZGUs IHpvbmUsIGopKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgIH0g d2hpbGUgKCB6b25lLS0gPiB6b25lX2xvICk7IC8qIGNhcmVmdWw6IHVuc2lnbmVkIHpvbmUgbWF5 IHdyYXAgKi8KIAogICAgICAgICBpZiAoIChtZW1mbGFncyAmIE1FTUZfZXhhY3Rfbm9kZSkgJiYg cmVxX25vZGUgIT0gTlVNQV9OT19OT0RFICkKQEAgLTgxNCwxOCArODMwLDMyIEBAIHN0YXRpYyBz dHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgIH0KIAogIG5vdF9mb3VuZDoK KyAgICAvKgorICAgICAqIElmIHdlIGNvdWxkbid0IGZpbmQgY2xlYW4gcGFnZSBsZXQncyBzZWFy Y2ggYWdhaW4gYW5kIHRoaXMgdGltZQorICAgICAqIHRha2UgdW5zY3J1YmJlZCBwYWdlcyBpZiBh dmFpbGFibGUuCisgICAgICovCisgICAgaWYgKCAhdXNlX3Vuc2NydWJiZWQgKQorICAgIHsKKyAg ICAgICAgdXNlX3Vuc2NydWJiZWQgPSAxOworICAgICAgICBnb3RvIGFnYWluOworICAgIH0KKwog ICAgIC8qIE5vIHN1aXRhYmxlIG1lbW9yeSBibG9ja3MuIEZhaWwgdGhlIHJlcXVlc3QuICovCiAg ICAgc3Bpbl91bmxvY2soJmhlYXBfbG9jayk7CiAgICAgcmV0dXJuIE5VTEw7CiAKICBmb3VuZDog CisgICAgbmVlZF9zY3J1YiA9ICEhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGctPmNvdW50 X2luZm8pOworCiAgICAgLyogV2UgbWF5IGhhdmUgdG8gaGFsdmUgdGhlIGNodW5rIGEgbnVtYmVy IG9mIHRpbWVzLiAqLwogICAgIHdoaWxlICggaiAhPSBvcmRlciApCiAgICAgewogICAgICAgICBQ Rk5fT1JERVIocGcpID0gLS1qOwotICAgICAgICBwYWdlX2xpc3RfYWRkKHBnLCAmaGVhcChub2Rl LCB6b25lLCBqKSk7CisgICAgICAgIHBhZ2VfbGlzdF9hZGRfc2NydWIocGcsIG5vZGUsIHpvbmUs IGosIG5lZWRfc2NydWIpOwogICAgICAgICBwZyArPSAxIDw8IGo7CiAgICAgfQorICAgIGlmICgg bmVlZF9zY3J1YiApCisgICAgICAgIHBnLT5jb3VudF9pbmZvIHw9IFBHQ19uZWVkX3NjcnViOwog CiAgICAgQVNTRVJUKGF2YWlsW25vZGVdW3pvbmVdID49IHJlcXVlc3QpOwogICAgIGF2YWlsW25v ZGVdW3pvbmVdIC09IHJlcXVlc3Q7CkBAIC04MzcsNiArODY3LDE1IEBAIHN0YXRpYyBzdHJ1Y3Qg cGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgIGlmICggZCAhPSBOVUxMICkKICAgICAg ICAgZC0+bGFzdF9hbGxvY19ub2RlID0gbm9kZTsKIAorICAgIGlmICggbmVlZF9zY3J1YiApCisg ICAgeworICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKKyAgICAg ICAgICAgIHNjcnViX29uZV9wYWdlKCZwZ1tpXSk7CisgICAgICAgIHBnLT5jb3VudF9pbmZvICY9 IH5QR0NfbmVlZF9zY3J1YjsKKyAgICAgICAgbm9kZV9uZWVkX3NjcnViW25vZGVdIC09ICgxIDw8 IG9yZGVyKTsKKyAgICB9CisKKwogICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBp KysgKQogICAgIHsKICAgICAgICAgLyogUmVmZXJlbmNlIGNvdW50IG11c3QgY29udGludW91c2x5 IGJlIHplcm8gZm9yIGZyZWUgcGFnZXMuICovCi0tIAoxLjcuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=