From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH RFC 3/8] mm: Scrub pages in alloc_heap_pages() if needed Date: Sun, 26 Feb 2017 19:22:35 -0500 Message-ID: <1488154960-2826-4-git-send-email-boris.ostrovsky@oracle.com> References: <1488154960-2826-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: <1488154960-2826-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, jbeulich@suse.com, tim@xen.orgc, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org V2hlbiBhbGxvY2F0aW5nIHBhZ2VzIGluIGFsbG9jX2hlYXBfcGFnZXMoKSBmaXJzdCBsb29rIGZv ciBjbGVhbiBwYWdlcy4gSWYgbm9uZQppcyBmb3VuZCB0aGVuIHJldHJ5LCB0YWtlIHBhZ2VzIG1h cmtlZCBhcyB1bnNjcnViYmVkIGFuZCBzY3J1YiB0aGVtLgoKTm90ZSB0aGF0IHdlIHNob3VsZG4n dCBmaW5kIHVuc2NydWJiZWQgcGFnZXMgaW4gYWxsb2NfaGVhcF9wYWdlcygpIHlldC4gSG93ZXZl ciwKdGhpcyB3aWxsIGJlY29tZSBwb3NzaWJsZSB3aGVuIHdlIHN0b3Agc2NydWJiaW5nIGZyb20g ZnJlZV9oZWFwX3BhZ2VzKCkgYW5kCmluc3RlYWQgZG8gaXQgZnJvbSBpZGxlIGxvb3AuCgpTaWdu ZWQtb2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgot LS0KIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jIHwgICA5MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMo KyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5j IGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggNjUzYmI5MS4uNmRiZTEzYyAxMDA2NDQK LS0tIGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9j LmMKQEAgLTY5MywzNCArNjkzLDE3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19o ZWFwX3BhZ2VzKAogICAgIHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdz LAogICAgIHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgdW5zaWduZWQgaW50IGksIGosIHpvbmUg PSAwLCBub2RlbWFza19yZXRyeSA9IDA7Ci0gICAgbm9kZWlkX3QgZmlyc3Rfbm9kZSwgbm9kZSA9 IE1FTUZfZ2V0X25vZGUobWVtZmxhZ3MpLCByZXFfbm9kZSA9IG5vZGU7CisgICAgdW5zaWduZWQg aW50IGksIGosIHpvbmUsIG5vZGVtYXNrX3JldHJ5OworICAgIG5vZGVpZF90IGZpcnN0X25vZGUs IG5vZGUsIHJlcV9ub2RlOwogICAgIHVuc2lnbmVkIGxvbmcgcmVxdWVzdCA9IDFVTCA8PCBvcmRl cjsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICBub2RlbWFza190IG5vZGVtYXNrID0g KGQgIT0gTlVMTCApID8gZC0+bm9kZV9hZmZpbml0eSA6IG5vZGVfb25saW5lX21hcDsKLSAgICBi b29sX3QgbmVlZF90bGJmbHVzaCA9IDA7CisgICAgbm9kZW1hc2tfdCBub2RlbWFzazsKKyAgICBi b29sX3QgbmVlZF90bGJmbHVzaCA9IDAsIHVzZV91bnNjcnViYmVkID0gMDsKICAgICB1aW50MzJf dCB0bGJmbHVzaF90aW1lc3RhbXAgPSAwOwogCiAgICAgLyogTWFrZSBzdXJlIHRoZXJlIGFyZSBl bm91Z2ggYml0cyBpbiBtZW1mbGFncyBmb3Igbm9kZUlELiAqLwogICAgIEJVSUxEX0JVR19PTigo X01FTUZfYml0cyAtIF9NRU1GX25vZGUpIDwgKDggKiBzaXplb2Yobm9kZWlkX3QpKSk7CiAKLSAg ICBpZiAoIG5vZGUgPT0gTlVNQV9OT19OT0RFICkKLSAgICB7Ci0gICAgICAgIGlmICggZCAhPSBO VUxMICkKLSAgICAgICAgewotICAgICAgICAgICAgbm9kZSA9IG5leHRfbm9kZShkLT5sYXN0X2Fs bG9jX25vZGUsIG5vZGVtYXNrKTsKLSAgICAgICAgICAgIGlmICggbm9kZSA+PSBNQVhfTlVNTk9E RVMgKQotICAgICAgICAgICAgICAgIG5vZGUgPSBmaXJzdF9ub2RlKG5vZGVtYXNrKTsKLSAgICAg ICAgfQotICAgICAgICBpZiAoIG5vZGUgPj0gTUFYX05VTU5PREVTICkKLSAgICAgICAgICAgIG5v ZGUgPSBjcHVfdG9fbm9kZShzbXBfcHJvY2Vzc29yX2lkKCkpOwotICAgIH0KLSAgICBmaXJzdF9u b2RlID0gbm9kZTsKLQotICAgIEFTU0VSVChub2RlIDwgTUFYX05VTU5PREVTKTsKLSAgICBBU1NF UlQoem9uZV9sbyA8PSB6b25lX2hpKTsKLSAgICBBU1NFUlQoem9uZV9oaSA8IE5SX1pPTkVTKTsK LQogICAgIGlmICggdW5saWtlbHkob3JkZXIgPiBNQVhfT1JERVIpICkKICAgICAgICAgcmV0dXJu IE5VTEw7CiAKQEAgLTczNCw3ICs3MTcsMTAgQEAgc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKmFs bG9jX2hlYXBfcGFnZXMoCiAgICAgICAgICAgdG90YWxfYXZhaWxfcGFnZXMgKyB0bWVtX2ZyZWVh YmxlX3BhZ2VzKCkpICYmCiAgICAgICAgICAgKChtZW1mbGFncyAmIE1FTUZfbm9fcmVmY291bnQp IHx8CiAgICAgICAgICAgICFkIHx8IGQtPm91dHN0YW5kaW5nX3BhZ2VzIDwgcmVxdWVzdCkgKQot ICAgICAgICBnb3RvIG5vdF9mb3VuZDsKKyAgICB7CisgICAgICAgIHNwaW5fdW5sb2NrKCZoZWFw X2xvY2spOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgICAvKgogICAgICAqIFRN RU06IFdoZW4gYXZhaWxhYmxlIG1lbW9yeSBpcyBzY2FyY2UgZHVlIHRvIHRtZW0gYWJzb3JiaW5n IGl0LCBhbGxvdwpAQCAtNzQ3LDYgKzczMywyOCBAQCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAq YWxsb2NfaGVhcF9wYWdlcygKICAgICAgICAgIHRtZW1fZnJlZWFibGVfcGFnZXMoKSApCiAgICAg ICAgIGdvdG8gdHJ5X3RtZW07CiAKKyBhZ2FpbjoKKworICAgIG5vZGVtYXNrX3JldHJ5ID0gMDsK KyAgICBub2RlbWFzayA9IChkICE9IE5VTEwgKSA/IGQtPm5vZGVfYWZmaW5pdHkgOiBub2RlX29u bGluZV9tYXA7CisgICAgbm9kZSA9IHJlcV9ub2RlID0gTUVNRl9nZXRfbm9kZShtZW1mbGFncyk7 CisgICAgaWYgKCBub2RlID09IE5VTUFfTk9fTk9ERSApCisgICAgeworICAgICAgICBpZiAoIGQg IT0gTlVMTCApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5vZGUgPSBuZXh0X25vZGUoZC0+bGFz dF9hbGxvY19ub2RlLCBub2RlbWFzayk7CisgICAgICAgICAgICBpZiAoIG5vZGUgPj0gTUFYX05V TU5PREVTICkKKyAgICAgICAgICAgICAgICBub2RlID0gZmlyc3Rfbm9kZShub2RlbWFzayk7Cisg ICAgICAgIH0KKyAgICAgICAgaWYgKCBub2RlID49IE1BWF9OVU1OT0RFUyApCisgICAgICAgICAg ICBub2RlID0gY3B1X3RvX25vZGUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKyAgICB9CisgICAgZmly c3Rfbm9kZSA9IG5vZGU7CisKKyAgICBBU1NFUlQobm9kZSA8IE1BWF9OVU1OT0RFUyk7CisgICAg QVNTRVJUKHpvbmVfbG8gPD0gem9uZV9oaSk7CisgICAgQVNTRVJUKHpvbmVfaGkgPCBOUl9aT05F Uyk7CisKICAgICAvKgogICAgICAqIFN0YXJ0IHdpdGggcmVxdWVzdGVkIG5vZGUsIGJ1dCBleGhh dXN0IGFsbCBub2RlIG1lbW9yeSBpbiByZXF1ZXN0ZWQgCiAgICAgICogem9uZSBiZWZvcmUgZmFp bGluZywgb25seSBjYWxjIG5ldyBub2RlIHZhbHVlIGlmIHdlIGZhaWwgdG8gZmluZCBtZW1vcnkg CkBAIC03NjIsOCArNzcwLDE2IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFw X3BhZ2VzKAogCiAgICAgICAgICAgICAvKiBGaW5kIHNtYWxsZXN0IG9yZGVyIHdoaWNoIGNhbiBz YXRpc2Z5IHRoZSByZXF1ZXN0LiAqLwogICAgICAgICAgICAgZm9yICggaiA9IG9yZGVyOyBqIDw9 IE1BWF9PUkRFUjsgaisrICkKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoIChw ZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmaGVhcChub2RlLCB6b25lLCBqKSkpICkKLSAgICAg ICAgICAgICAgICAgICAgZ290byBmb3VuZDsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgIGlmICggKG9yZGVyID09IDApIHx8IHVzZV91bnNjcnViYmVkIHx8CisgICAgICAg ICAgICAgICAgICAgICAgICAgIXRlc3RfYml0KF9QR0NfbmVlZF9zY3J1YiwgJnBnWzBdLmNvdW50 X2luZm8pICkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CisKKyAgICAgICAg ICAgICAgICAgICAgcGFnZV9saXN0X2FkZF90YWlsKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7 CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9IHdoaWxlICggem9u ZS0tID4gem9uZV9sbyApOyAvKiBjYXJlZnVsOiB1bnNpZ25lZCB6b25lIG1heSB3cmFwICovCiAK ICAgICAgICAgaWYgKCAobWVtZmxhZ3MgJiBNRU1GX2V4YWN0X25vZGUpICYmIHJlcV9ub2RlICE9 IE5VTUFfTk9fTk9ERSApCkBAIC04MDIsNiArODE4LDE2IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZV9p bmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgIH0KIAogIG5vdF9mb3VuZDoKKyAgICAvKgorICAg ICAqIElmIHdlIGNvdWxkbid0IGZpbmQgY2xlYW4gcGFnZSBsZXQncyBzZWFyY2ggYWdhaW4gYW5k IHRoaXMgdGltZQorICAgICAqIHRha2UgdW5zY3J1YmJlZCBwYWdlcyBpZiBhdmFpbGFibGUuCisg ICAgICovCisgICAgaWYgKCAhdXNlX3Vuc2NydWJiZWQgKQorICAgIHsKKyAgICAgICAgdXNlX3Vu c2NydWJiZWQgPSAxOworICAgICAgICBnb3RvIGFnYWluOworICAgIH0KKwogICAgIC8qIE5vIHN1 aXRhYmxlIG1lbW9yeSBibG9ja3MuIEZhaWwgdGhlIHJlcXVlc3QuICovCiAgICAgc3Bpbl91bmxv Y2soJmhlYXBfbG9jayk7CiAgICAgcmV0dXJuIE5VTEw7CkBAIC04MTEsNyArODM3LDEwIEBAIHN0 YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgIHdoaWxlICggaiAh PSBvcmRlciApCiAgICAgewogICAgICAgICBQRk5fT1JERVIocGcpID0gLS1qOwotICAgICAgICBw YWdlX2xpc3RfYWRkKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7CisgICAgICAgIGlmICggdGVz dF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGdbMF0uY291bnRfaW5mbykgKQorICAgICAgICAgICAg cGFnZV9saXN0X2FkZF90YWlsKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7CisgICAgICAgIGVs c2UKKyAgICAgICAgICAgIHBhZ2VfbGlzdF9hZGQocGcsICZoZWFwKG5vZGUsIHpvbmUsIGopKTsK ICAgICAgICAgcGcgKz0gMSA8PCBqOwogICAgIH0KIApAQCAtODI1LDYgKzg1NCwyMSBAQCBzdGF0 aWMgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfaGVhcF9wYWdlcygKICAgICBpZiAoIGQgIT0gTlVM TCApCiAgICAgICAgIGQtPmxhc3RfYWxsb2Nfbm9kZSA9IG5vZGU7CiAKKyAgICAvKgorICAgICAq IFdob2xlIGNodW5rIGlzIGVpdGhlciBjbGVhbiBvciBkaXJ0eSBzbyB3ZSBjYW4KKyAgICAgKiB0 ZXN0IG9ubHkgdGhlIGhlYWQuCisgICAgICovCisgICAgaWYgKCB0ZXN0X2JpdChfUEdDX25lZWRf c2NydWIsICZwZ1swXS5jb3VudF9pbmZvKSApCisgICAgeworICAgICAgICBmb3IgKCBpID0gMDsg aSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgc2NydWJfb25l X3BhZ2UoJnBnW2ldKTsKKyAgICAgICAgICAgIHBnW2ldLmNvdW50X2luZm8gJj0gflBHQ19uZWVk X3NjcnViOworICAgICAgICB9CisgICAgICAgIG5vZGVfbmVlZF9zY3J1Yltub2RlXSAtPSAoMSA8 PCBvcmRlcik7CisgICAgfQorCisKICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsg aSsrICkKICAgICB7CiAgICAgICAgIC8qIFJlZmVyZW5jZSBjb3VudCBtdXN0IGNvbnRpbnVvdXNs eSBiZSB6ZXJvIGZvciBmcmVlIHBhZ2VzLiAqLwotLSAKMS43LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK