From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v3 3/9] mm: Scrub pages in alloc_heap_pages() if needed Date: Fri, 14 Apr 2017 11:37:32 -0400 Message-ID: <1492184258-3277-4-git-send-email-boris.ostrovsky@oracle.com> References: <1492184258-3277-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: <1492184258-3277-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 LS0KIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jIHwgICA5NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMo KyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5j IGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggOWRjZjZlZS4uMDU1NjU0ZCAxMDA2NDQK LS0tIGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9j LmMKQEAgLTcwMCwzNCArNzAwLDE3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19o ZWFwX3BhZ2VzKAogICAgIHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdz LAogICAgIHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgdW5zaWduZWQgaW50IGksIGosIHpvbmUg PSAwLCBub2RlbWFza19yZXRyeSA9IDA7Ci0gICAgbm9kZWlkX3QgZmlyc3Rfbm9kZSwgbm9kZSA9 IE1FTUZfZ2V0X25vZGUobWVtZmxhZ3MpLCByZXFfbm9kZSA9IG5vZGU7CisgICAgdW5zaWduZWQg aW50IGksIGosIHpvbmUsIG5vZGVtYXNrX3JldHJ5OworICAgIG5vZGVpZF90IGZpcnN0X25vZGUs IG5vZGUsIHJlcV9ub2RlOwogICAgIHVuc2lnbmVkIGxvbmcgcmVxdWVzdCA9IDFVTCA8PCBvcmRl cjsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICBub2RlbWFza190IG5vZGVtYXNrID0g KGQgIT0gTlVMTCApID8gZC0+bm9kZV9hZmZpbml0eSA6IG5vZGVfb25saW5lX21hcDsKLSAgICBi b29sX3QgbmVlZF90bGJmbHVzaCA9IDA7CisgICAgbm9kZW1hc2tfdCBub2RlbWFzazsKKyAgICBi b29sIG5lZWRfc2NydWIsIG5lZWRfdGxiZmx1c2ggPSBmYWxzZSwgdXNlX3Vuc2NydWJiZWQgPSBm YWxzZTsKICAgICB1aW50MzJfdCB0bGJmbHVzaF90aW1lc3RhbXAgPSAwOwogCiAgICAgLyogTWFr ZSBzdXJlIHRoZXJlIGFyZSBlbm91Z2ggYml0cyBpbiBtZW1mbGFncyBmb3Igbm9kZUlELiAqLwog ICAgIEJVSUxEX0JVR19PTigoX01FTUZfYml0cyAtIF9NRU1GX25vZGUpIDwgKDggKiBzaXplb2Yo bm9kZWlkX3QpKSk7CiAKLSAgICBpZiAoIG5vZGUgPT0gTlVNQV9OT19OT0RFICkKLSAgICB7Ci0g ICAgICAgIGlmICggZCAhPSBOVUxMICkKLSAgICAgICAgewotICAgICAgICAgICAgbm9kZSA9IG5l eHRfbm9kZShkLT5sYXN0X2FsbG9jX25vZGUsIG5vZGVtYXNrKTsKLSAgICAgICAgICAgIGlmICgg bm9kZSA+PSBNQVhfTlVNTk9ERVMgKQotICAgICAgICAgICAgICAgIG5vZGUgPSBmaXJzdF9ub2Rl KG5vZGVtYXNrKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIG5vZGUgPj0gTUFYX05VTU5PREVT ICkKLSAgICAgICAgICAgIG5vZGUgPSBjcHVfdG9fbm9kZShzbXBfcHJvY2Vzc29yX2lkKCkpOwot ICAgIH0KLSAgICBmaXJzdF9ub2RlID0gbm9kZTsKLQotICAgIEFTU0VSVChub2RlIDwgTUFYX05V TU5PREVTKTsKLSAgICBBU1NFUlQoem9uZV9sbyA8PSB6b25lX2hpKTsKLSAgICBBU1NFUlQoem9u ZV9oaSA8IE5SX1pPTkVTKTsKLQogICAgIGlmICggdW5saWtlbHkob3JkZXIgPiBNQVhfT1JERVIp ICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTc0MSw3ICs3MjQsMTAgQEAgc3RhdGljIHN0 cnVjdCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFnZXMoCiAgICAgICAgICAgdG90YWxfYXZhaWxf cGFnZXMgKyB0bWVtX2ZyZWVhYmxlX3BhZ2VzKCkpICYmCiAgICAgICAgICAgKChtZW1mbGFncyAm IE1FTUZfbm9fcmVmY291bnQpIHx8CiAgICAgICAgICAgICFkIHx8IGQtPm91dHN0YW5kaW5nX3Bh Z2VzIDwgcmVxdWVzdCkgKQotICAgICAgICBnb3RvIG5vdF9mb3VuZDsKKyAgICB7CisgICAgICAg IHNwaW5fdW5sb2NrKCZoZWFwX2xvY2spOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAK ICAgICAvKgogICAgICAqIFRNRU06IFdoZW4gYXZhaWxhYmxlIG1lbW9yeSBpcyBzY2FyY2UgZHVl IHRvIHRtZW0gYWJzb3JiaW5nIGl0LCBhbGxvdwpAQCAtNzU0LDYgKzc0MCwyOCBAQCBzdGF0aWMg c3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfaGVhcF9wYWdlcygKICAgICAgICAgIHRtZW1fZnJlZWFi bGVfcGFnZXMoKSApCiAgICAgICAgIGdvdG8gdHJ5X3RtZW07CiAKKyBhZ2FpbjoKKworICAgIG5v ZGVtYXNrX3JldHJ5ID0gMDsKKyAgICBub2RlbWFzayA9IChkICE9IE5VTEwgKSA/IGQtPm5vZGVf YWZmaW5pdHkgOiBub2RlX29ubGluZV9tYXA7CisgICAgbm9kZSA9IHJlcV9ub2RlID0gTUVNRl9n ZXRfbm9kZShtZW1mbGFncyk7CisgICAgaWYgKCBub2RlID09IE5VTUFfTk9fTk9ERSApCisgICAg eworICAgICAgICBpZiAoIGQgIT0gTlVMTCApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5vZGUg PSBuZXh0X25vZGUoZC0+bGFzdF9hbGxvY19ub2RlLCBub2RlbWFzayk7CisgICAgICAgICAgICBp ZiAoIG5vZGUgPj0gTUFYX05VTU5PREVTICkKKyAgICAgICAgICAgICAgICBub2RlID0gZmlyc3Rf bm9kZShub2RlbWFzayk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBub2RlID49IE1BWF9OVU1O T0RFUyApCisgICAgICAgICAgICBub2RlID0gY3B1X3RvX25vZGUoc21wX3Byb2Nlc3Nvcl9pZCgp KTsKKyAgICB9CisgICAgZmlyc3Rfbm9kZSA9IG5vZGU7CisKKyAgICBBU1NFUlQobm9kZSA8IE1B WF9OVU1OT0RFUyk7CisgICAgQVNTRVJUKHpvbmVfbG8gPD0gem9uZV9oaSk7CisgICAgQVNTRVJU KHpvbmVfaGkgPCBOUl9aT05FUyk7CisKICAgICAvKgogICAgICAqIFN0YXJ0IHdpdGggcmVxdWVz dGVkIG5vZGUsIGJ1dCBleGhhdXN0IGFsbCBub2RlIG1lbW9yeSBpbiByZXF1ZXN0ZWQgCiAgICAg ICogem9uZSBiZWZvcmUgZmFpbGluZywgb25seSBjYWxjIG5ldyBub2RlIHZhbHVlIGlmIHdlIGZh aWwgdG8gZmluZCBtZW1vcnkgCkBAIC03NjksOCArNzc3LDE2IEBAIHN0YXRpYyBzdHJ1Y3QgcGFn ZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogCiAgICAgICAgICAgICAvKiBGaW5kIHNtYWxsZXN0 IG9yZGVyIHdoaWNoIGNhbiBzYXRpc2Z5IHRoZSByZXF1ZXN0LiAqLwogICAgICAgICAgICAgZm9y ICggaiA9IG9yZGVyOyBqIDw9IE1BWF9PUkRFUjsgaisrICkKKyAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICBpZiAoIChwZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmaGVhcChub2RlLCB6 b25lLCBqKSkpICkKLSAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZDsKKyAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmICggKG9yZGVyID09IDApIHx8IHVzZV91bnNj cnViYmVkIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIXBnLT51LmZyZWUuZGlydHlfaGVh ZCApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOworCisgICAgICAgICAgICAg ICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwgem9uZSwgaikpOworICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAgfSB3aGlsZSAoIHpvbmUtLSA+ IHpvbmVfbG8gKTsgLyogY2FyZWZ1bDogdW5zaWduZWQgem9uZSBtYXkgd3JhcCAqLwogCiAgICAg ICAgIGlmICggKG1lbWZsYWdzICYgTUVNRl9leGFjdF9ub2RlKSAmJiByZXFfbm9kZSAhPSBOVU1B X05PX05PREUgKQpAQCAtODA5LDE2ICs4MjUsMzIgQEAgc3RhdGljIHN0cnVjdCBwYWdlX2luZm8g KmFsbG9jX2hlYXBfcGFnZXMoCiAgICAgfQogCiAgbm90X2ZvdW5kOgorICAgIC8qCisgICAgICog SWYgd2UgY291bGRuJ3QgZmluZCBjbGVhbiBwYWdlIGxldCdzIHNlYXJjaCBhZ2FpbiBhbmQgdGhp cyB0aW1lCisgICAgICogdGFrZSB1bnNjcnViYmVkIHBhZ2VzIGlmIGF2YWlsYWJsZS4KKyAgICAg Ki8KKyAgICBpZiAoICF1c2VfdW5zY3J1YmJlZCApCisgICAgeworICAgICAgICB1c2VfdW5zY3J1 YmJlZCA9IHRydWU7CisgICAgICAgIGdvdG8gYWdhaW47CisgICAgfQorCiAgICAgLyogTm8gc3Vp dGFibGUgbWVtb3J5IGJsb2Nrcy4gRmFpbCB0aGUgcmVxdWVzdC4gKi8KICAgICBzcGluX3VubG9j aygmaGVhcF9sb2NrKTsKICAgICByZXR1cm4gTlVMTDsKIAogIGZvdW5kOiAKKyAgICBuZWVkX3Nj cnViID0gcGctPnUuZnJlZS5kaXJ0eV9oZWFkOworCiAgICAgLyogV2UgbWF5IGhhdmUgdG8gaGFs dmUgdGhlIGNodW5rIGEgbnVtYmVyIG9mIHRpbWVzLiAqLwogICAgIHdoaWxlICggaiAhPSBvcmRl ciApCiAgICAgewotICAgICAgICBQRk5fT1JERVIocGcpID0gLS1qOwotICAgICAgICBwYWdlX2xp c3RfYWRkKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7CisgICAgICAgIC8qCisgICAgICAgICAq IFNvbWUgb2YgdGhlIHN1Yi1jaHVua3MgbWF5IGJlIGNsZWFuIGJ1dCB3ZSB3aWxsIG1hcmsgdGhl bQorICAgICAgICAgKiBhcyBkaXJ0eSAoaWYgbmVlZF9zY3J1YiBpcyBzZXQpIHRvIGF2b2lkIHRy YXZlcnNpbmcgdGhlCisgICAgICAgICAqIGFycmF5IGhlcmUuCisgICAgICAgICAqLworICAgICAg ICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBub2RlLCB6b25lLCAtLWosIG5lZWRfc2NydWIpOwog ICAgICAgICBwZyArPSAxIDw8IGo7CiAgICAgfQogCkBAIC04MzIsNiArODY0LDIwIEBAIHN0YXRp YyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgIGlmICggZCAhPSBOVUxM ICkKICAgICAgICAgZC0+bGFzdF9hbGxvY19ub2RlID0gbm9kZTsKIAorICAgIGlmICggbmVlZF9z Y3J1YiApCisgICAgeworICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsr ICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCB0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIs ICZwZ1tpXS5jb3VudF9pbmZvKSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc2Ny dWJfb25lX3BhZ2UoJnBnW2ldKTsKKyAgICAgICAgICAgICAgICBwZ1tpXS5jb3VudF9pbmZvICY9 IH5QR0NfbmVlZF9zY3J1YjsKKyAgICAgICAgICAgICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0t LTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwZy0+dS5mcmVlLmRpcnR5X2hl YWQgPSBmYWxzZTsKKyAgICB9CisKICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsg aSsrICkKICAgICB7CiAgICAgICAgIC8qIFJlZmVyZW5jZSBjb3VudCBtdXN0IGNvbnRpbnVvdXNs eSBiZSB6ZXJvIGZvciBmcmVlIHBhZ2VzLiAqLwotLSAKMS43LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK