From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v3 4/9] mm: Scrub memory from idle loop Date: Fri, 14 Apr 2017 11:37:33 -0400 Message-ID: <1492184258-3277-5-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 SW5zdGVhZCBvZiBzY3J1YmJpbmcgcGFnZXMgZHVyaW5nIGd1ZXN0IGRlc3RydWN0aW9uIChmcm9t CmZyZWVfaGVhcF9wYWdlcygpKSBkbyB0aGlzIG9wcG9ydHVuaXN0aWNhbGx5LCBmcm9tIHRoZSBp ZGxlIGxvb3AuCgpTaWduZWQtb2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNr eUBvcmFjbGUuY29tPgotLS0KQ2hhbmdlcyBpbiB2MzoKKiBJZiBtZW1vcnktb25seSBub2RlcyBl eGlzdCwgc2VsZWN0IHRoZSBjbG9zZXN0IG9uZSBmb3Igc2NydWJiaW5nCiogRG9uJ3Qgc2NydWIg ZnJvbSBpZGxlIGxvb3AgdW50aWwgd2UgcmVhY2ggU1lTX1NUQVRFX2FjdGl2ZS4KCiB4ZW4vYXJj aC9hcm0vZG9tYWluLmMgICB8ICAgMTMgKysrKy0tCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICB8 ICAgIDMgKy0KIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jIHwgICA5OCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vbW0uaCAgICB8 ICAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJjaC9hcm0vZG9t YWluLmMKaW5kZXggNzYzMTBlZC4uMzhkNjMzMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2Rv bWFpbi5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYwpAQCAtNDYsMTMgKzQ2LDE2IEBAIHZv aWQgaWRsZV9sb29wKHZvaWQpCiAgICAgICAgIGlmICggY3B1X2lzX29mZmxpbmUoc21wX3Byb2Nl c3Nvcl9pZCgpKSApCiAgICAgICAgICAgICBzdG9wX2NwdSgpOwogCi0gICAgICAgIGxvY2FsX2ly cV9kaXNhYmxlKCk7Ci0gICAgICAgIGlmICggY3B1X2lzX2hhbHRhYmxlKHNtcF9wcm9jZXNzb3Jf aWQoKSkgKQorICAgICAgICBpZiAoICFzY3J1Yl9mcmVlX3BhZ2VzKCkgKQogICAgICAgICB7Ci0g ICAgICAgICAgICBkc2Ioc3kpOwotICAgICAgICAgICAgd2ZpKCk7CisgICAgICAgICAgICBsb2Nh bF9pcnFfZGlzYWJsZSgpOworICAgICAgICAgICAgaWYgKCBjcHVfaXNfaGFsdGFibGUoc21wX3By b2Nlc3Nvcl9pZCgpKSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZHNiKHN5KTsK KyAgICAgICAgICAgICAgICB3ZmkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvY2Fs X2lycV9lbmFibGUoKTsKICAgICAgICAgfQotICAgICAgICBsb2NhbF9pcnFfZW5hYmxlKCk7CiAK ICAgICAgICAgZG9fdGFza2xldCgpOwogICAgICAgICBkb19zb2Z0aXJxKCk7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKaW5kZXggOTBl MmIxZi4uYTVmNjJiNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hl bi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMTE4LDcgKzExOCw4IEBAIHN0YXRpYyB2b2lkIGlkbGVf bG9vcCh2b2lkKQogICAgIHsKICAgICAgICAgaWYgKCBjcHVfaXNfb2ZmbGluZShzbXBfcHJvY2Vz c29yX2lkKCkpICkKICAgICAgICAgICAgIHBsYXlfZGVhZCgpOwotICAgICAgICAoKnBtX2lkbGUp KCk7CisgICAgICAgIGlmICggIXNjcnViX2ZyZWVfcGFnZXMoKSApCisgICAgICAgICAgICAoKnBt X2lkbGUpKCk7CiAgICAgICAgIGRvX3Rhc2tsZXQoKTsKICAgICAgICAgZG9fc29mdGlycSgpOwog ICAgICAgICAvKgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgYi94ZW4vY29t bW9uL3BhZ2VfYWxsb2MuYwppbmRleCAwNTU2NTRkLi5mY2Q3MzA4IDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL3BhZ2VfYWxsb2MuYworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpAQCAtMTAz NSwxNiArMTAzNSw4MiBAQCBtZXJnZV9hbmRfZnJlZV9idWRkeShzdHJ1Y3QgcGFnZV9pbmZvICpw ZywgdW5zaWduZWQgaW50IG5vZGUsCiAgICAgcmV0dXJuIHBnOwogfQogCi1zdGF0aWMgdm9pZCBz Y3J1Yl9mcmVlX3BhZ2VzKHVuc2lnbmVkIGludCBub2RlKQorc3RhdGljIG5vZGVtYXNrX3Qgbm9k ZV9zY3J1YmJpbmc7CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbm9kZV90b19zY3J1Yihib29sIGdl dF9ub2RlKQoreworICAgIG5vZGVpZF90IG5vZGUgPSBjcHVfdG9fbm9kZShzbXBfcHJvY2Vzc29y X2lkKCkpLCBsb2NhbF9ub2RlOworICAgIG5vZGVpZF90IGNsb3Nlc3QgPSBOVU1BX05PX05PREU7 CisgICAgdTggZGlzdCwgc2hvcnRlc3QgPSAweGZmOworCisgICAgaWYgKCBub2RlID09IE5VTUFf Tk9fTk9ERSApCisgICAgICAgIG5vZGUgPSAwOworCisgICAgaWYgKCBub2RlX25lZWRfc2NydWJb bm9kZV0gJiYKKyAgICAgICAgICghZ2V0X25vZGUgfHwgIW5vZGVfdGVzdF9hbmRfc2V0KG5vZGUs IG5vZGVfc2NydWJiaW5nKSkgKQorICAgICAgICByZXR1cm4gbm9kZTsKKworICAgIC8qCisgICAg ICogU2VlIGlmIHRoZXJlIGFyZSBtZW1vcnktb25seSBub2RlcyB0aGF0IG5lZWQgc2NydWJiaW5n IGFuZCBjaG9vc2UKKyAgICAgKiB0aGUgY2xvc2VzdCBvbmUuCisgICAgICovCisgICAgbG9jYWxf bm9kZSA9IG5vZGU7CisgICAgd2hpbGUgKCAxICkKKyAgICB7CisgICAgICAgIGRvIHsKKyAgICAg ICAgICAgIG5vZGUgPSBjeWNsZV9ub2RlKG5vZGUsIG5vZGVfb25saW5lX21hcCk7CisgICAgICAg IH0gd2hpbGUgKCAhY3B1bWFza19lbXB0eSgmbm9kZV90b19jcHVtYXNrKG5vZGUpKSAmJgorICAg ICAgICAgICAgICAgICAgKG5vZGUgIT0gbG9jYWxfbm9kZSkgKTsKKworICAgICAgICBpZiAoIG5v ZGUgPT0gbG9jYWxfbm9kZSApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoIG5v ZGVfbmVlZF9zY3J1Yltub2RlXSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggIWdldF9u b2RlICkKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTsKKworICAgICAgICAgICAgaWYgKCAh bm9kZV90ZXN0X2FuZF9zZXQobm9kZSwgbm9kZV9zY3J1YmJpbmcpICkKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICBkaXN0ID0gX19ub2RlX2Rpc3RhbmNlKGxvY2FsX25vZGUsIG5vZGUp OworICAgICAgICAgICAgICAgIGlmICggKGRpc3QgPCBzaG9ydGVzdCkgfHwgKGRpc3QgPT0gTlVN QV9OT19ESVNUQU5DRSkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg LyogUmVsZWFzZSBwcmV2aW91cyBub2RlLiAqLworICAgICAgICAgICAgICAgICAgICBpZiAoIGNs b3Nlc3QgIT0gTlVNQV9OT19OT0RFICkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVfY2xl YXIoY2xvc2VzdCwgbm9kZV9zY3J1YmJpbmcpOworICAgICAgICAgICAgICAgICAgICBzaG9ydGVz dCA9IGRpc3Q7CisgICAgICAgICAgICAgICAgICAgIGNsb3Nlc3QgPSBub2RlOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5vZGVf Y2xlYXIobm9kZSwgbm9kZV9zY3J1YmJpbmcpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg ICAgfQorCisgICAgcmV0dXJuIGNsb3Nlc3Q7Cit9CisKK2Jvb2wgc2NydWJfZnJlZV9wYWdlcyh2 b2lkKQogewogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwogICAgIHVuc2lnbmVkIGludCB6b25l LCBvcmRlcjsKICAgICB1bnNpZ25lZCBsb25nIGk7CisgICAgdW5zaWduZWQgaW50IGNwdSA9IHNt cF9wcm9jZXNzb3JfaWQoKTsKKyAgICBib29sIHByZWVtcHQgPSBmYWxzZTsKKyAgICBub2RlaWRf dCBub2RlOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZoZWFwX2xvY2spKTsKKyAgICAv KgorICAgICAqIERvbid0IHNjcnViIHdoaWxlIGRvbTAgaXMgYmVpbmcgY29uc3RydWN0ZWQgc2lu Y2Ugd2UgbWF5CisgICAgICogZmFpbCB0cnlpbmcgdG8gY2FsbCBtYXBfZG9tYWluX3BhZ2UoKSBm cm9tIHNjcnViX29uZV9wYWdlKCkuCisgICAgICovCisgICAgaWYgKCBzeXN0ZW1fc3RhdGUgPCBT WVNfU1RBVEVfYWN0aXZlICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworIAorICAgIG5vZGUgPSBu b2RlX3RvX3NjcnViKHRydWUpOworICAgIGlmICggbm9kZSA9PSBOVU1BX05PX05PREUgKQorICAg ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoICFub2RlX25lZWRfc2NydWJbbm9kZV0gKQot ICAgICAgICByZXR1cm47CisgICAgc3Bpbl9sb2NrKCZoZWFwX2xvY2spOwogCiAgICAgZm9yICgg em9uZSA9IDA7IHpvbmUgPCBOUl9aT05FUzsgem9uZSsrICkKICAgICB7CkBAIC0xMDY1LDE2ICsx MTMxLDI5IEBAIHN0YXRpYyB2b2lkIHNjcnViX2ZyZWVfcGFnZXModW5zaWduZWQgaW50IG5vZGUp CiAgICAgICAgICAgICAgICAgICAgICAgICBwZ1tpXS5jb3VudF9pbmZvICY9IH5QR0NfbmVlZF9z Y3J1YjsKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVfbmVlZF9zY3J1Yltub2RlXS0tOwog ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICggc29mdGlycV9w ZW5kaW5nKGNwdSkgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICAgICBwcmVlbXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg cGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKLSAgICAgICAgICAg ICAgICBtZXJnZV9hbmRfZnJlZV9idWRkeShwZywgbm9kZSwgem9uZSwgb3JkZXIsIGZhbHNlKTsK KyAgICAgICAgICAgICAgICBpZiAoIGkgPT0gKDFVTCA8PCBvcmRlcikgKQorICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwg em9uZSwgb3JkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgbWVyZ2VfYW5kX2ZyZWVfYnVkZHko cGcsIG5vZGUsIHpvbmUsIG9yZGVyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQogCi0gICAg ICAgICAgICAgICAgaWYgKCBub2RlX25lZWRfc2NydWJbbm9kZV0gPT0gMCApCi0gICAgICAgICAg ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBpZiAoIHByZWVtcHQgfHwgKG5vZGVf bmVlZF9zY3J1Yltub2RlXSA9PSAwKSApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owog ICAgICAgICAgICAgfQogICAgICAgICB9IHdoaWxlICggb3JkZXItLSAhPSAwICk7CiAgICAgfQor Cisgb3V0OgorICAgIHNwaW5fdW5sb2NrKCZoZWFwX2xvY2spOworICAgIG5vZGVfY2xlYXIobm9k ZSwgbm9kZV9zY3J1YmJpbmcpOworICAgIHJldHVybiBzb2Z0aXJxX3BlbmRpbmcoY3B1KSB8fCAo bm9kZV90b19zY3J1YihmYWxzZSkgIT0gTlVNQV9OT19OT0RFKTsKIH0KIAogLyogRnJlZSAyXkBv cmRlciBzZXQgb2YgcGFnZXMuICovCkBAIC0xMTQxLDkgKzEyMjAsNiBAQCBzdGF0aWMgdm9pZCBm cmVlX2hlYXBfcGFnZXMoCiAgICAgaWYgKCB0YWludGVkICkKICAgICAgICAgcmVzZXJ2ZV9vZmZs aW5lZF9wYWdlKHBnKTsKIAotICAgIGlmICggbmVlZF9zY3J1YiApCi0gICAgICAgIHNjcnViX2Zy ZWVfcGFnZXMobm9kZSk7Ci0KICAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKIH0KIApkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL21tLmggYi94ZW4vaW5jbHVkZS94ZW4vbW0uaAppbmRl eCA4OGRlM2MxLi5iNjZkYmJlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbW0uaAorKysg Yi94ZW4vaW5jbHVkZS94ZW4vbW0uaApAQCAtMTM4LDYgKzEzOCw3IEBAIHZvaWQgaW5pdF94ZW5o ZWFwX3BhZ2VzKHBhZGRyX3QgcHMsIHBhZGRyX3QgcGUpOwogdm9pZCB4ZW5oZWFwX21heF9tZm4o dW5zaWduZWQgbG9uZyBtZm4pOwogdm9pZCAqYWxsb2NfeGVuaGVhcF9wYWdlcyh1bnNpZ25lZCBp bnQgb3JkZXIsIHVuc2lnbmVkIGludCBtZW1mbGFncyk7CiB2b2lkIGZyZWVfeGVuaGVhcF9wYWdl cyh2b2lkICp2LCB1bnNpZ25lZCBpbnQgb3JkZXIpOworYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZv aWQpOwogI2RlZmluZSBhbGxvY194ZW5oZWFwX3BhZ2UoKSAoYWxsb2NfeGVuaGVhcF9wYWdlcygw LDApKQogI2RlZmluZSBmcmVlX3hlbmhlYXBfcGFnZSh2KSAoZnJlZV94ZW5oZWFwX3BhZ2VzKHYs MCkpCiAvKiBNYXAgbWFjaGluZSBwYWdlIHJhbmdlIGluIFhlbiB2aXJ0dWFsIGFkZHJlc3Mgc3Bh Y2UuICovCi0tIAoxLjcuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=