From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v2 7/9] mm: Keep pages available for allocation while scrubbing Date: Mon, 3 Apr 2017 12:50:54 -0400 Message-ID: <1491238256-5517-8-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 SW5zdGVhZCBvZiBzY3J1YmJpbmcgcGFnZXMgd2hpbGUgaG9sZGluZyBoZWFwIGxvY2sgd2UgY2Fu IG1hcmsKYnVkZHkncyBoZWFkIGFzIGJlaW5nIHNjcnViYmVkIGFuZCBkcm9wIHRoZSBsb2NrIHRl bXBvcmFyaWx5LgpJZiBzb21lb25lIChtb3N0IGxpa2VseSBhbGxvY19oZWFwX3BhZ2VzKCkpIHRy aWVzIHRvIGFjY2Vzcwp0aGlzIGNodW5rIGl0IHdpbGwgc2lnbmFsIHRoZSBzY3J1YmJlciB0byBh Ym9ydCBzY3J1YiBieSBzZXR0aW5nCmhlYWQncyBQQUdFX1NDUlVCX0FCT1JUIGJpdC4gVGhlIHNj cnViYmVyIGNoZWNrcyB0aGlzIGJpdCBhZnRlcgpwcm9jZXNzaW5nIGVhY2ggcGFnZSBhbmQgc3Rv cHMgaXRzIHdvcmsgYXMgc29vbiBhcyBpdCBzZWVzIGl0LgoKU2lnbmVkLW9mZi1ieTogQm9yaXMg T3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCiB4ZW4vY29tbW9uL3Bh Z2VfYWxsb2MuYyAgfCAgIDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaCB8ICAgIDQgKysKIHhlbi9pbmNsdWRl L2FzbS14ODYvbW0uaCB8ICAgIDQgKysKIDMgZmlsZXMgY2hhbmdlZCwgODEgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYyBi L3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IDFjMjM5OTEuLjY2NmI3OWEgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5j CkBAIC02OTksNiArNjk5LDE4IEBAIHN0YXRpYyB2b2lkIHBhZ2VfbGlzdF9hZGRfc2NydWIoc3Ry dWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBub2RlLAogICAgICAgICBwYWdlX2xpc3Rf YWRkKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwogfQogCitzdGF0aWMgdm9pZCBjaGVj a19hbmRfc3RvcF9zY3J1YihzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQoreworICAgIGlmICggaGVh ZC0+dS5mcmVlLnNjcnViX3N0YXRlICYgUEFHRV9TQ1JVQkJJTkcgKQorICAgIHsKKyAgICAgICAg aGVhZC0+dS5mcmVlLnNjcnViX3N0YXRlIHw9IFBBR0VfU0NSVUJfQUJPUlQ7CisgICAgICAgIHNt cF9tYigpOworICAgICAgICBzcGluX2xvY2tfa2ljaygpOworICAgICAgICB3aGlsZSAoIEFDQ0VT U19PTkNFKGhlYWQtPnUuZnJlZS5zY3J1Yl9zdGF0ZSkgJiBQQUdFX1NDUlVCX0FCT1JUICkKKyAg ICAgICAgICAgIGNwdV9yZWxheCgpOworICAgIH0KK30KKwogLyogQWxsb2NhdGUgMl5Ab3JkZXIg Y29udGlndW91cyBwYWdlcy4gKi8KIHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFw X3BhZ2VzKAogICAgIHVuc2lnbmVkIGludCB6b25lX2xvLCB1bnNpZ25lZCBpbnQgem9uZV9oaSwK QEAgLTc4NSwxMCArNzk3LDE1IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFw X3BhZ2VzKAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlmICggKHBnID0gcGFnZV9s aXN0X3JlbW92ZV9oZWFkKCZoZWFwKG5vZGUsIHpvbmUsIGopKSkgKQogICAgICAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCAob3JkZXIgPT0gMCkgfHwgdXNlX3Vuc2NydWJi ZWQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnVi LCAmcGctPmNvdW50X2luZm8pICkKKyAgICAgICAgICAgICAgICAgICAgaWYgKCAhdGVzdF9iaXQo X1BHQ19uZWVkX3NjcnViLCAmcGdbMF0uY291bnRfaW5mbykgKQogICAgICAgICAgICAgICAgICAg ICAgICAgZ290byBmb3VuZDsKIAorICAgICAgICAgICAgICAgICAgICBpZiAoIChvcmRlciA9PSAw KSB8fCB1c2VfdW5zY3J1YmJlZCApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGNoZWNrX2FuZF9zdG9wX3NjcnViKHBnKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgIGdvdG8gZm91bmQ7CisgICAgICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg ICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGcsICZoZWFwKG5vZGUsIHpvbmUsIGopKTsKICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC05MTksNiArOTM2LDggQEAgc3RhdGlj IGludCByZXNlcnZlX29mZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqaGVhZCkKIAogICAg IGN1cl9oZWFkID0gaGVhZDsKIAorICAgIGNoZWNrX2FuZF9zdG9wX3NjcnViKGhlYWQpOworCiAg ICAgcGFnZV9saXN0X2RlbChoZWFkLCAmaGVhcChub2RlLCB6b25lLCBoZWFkX29yZGVyKSk7CiAK ICAgICB3aGlsZSAoIGN1cl9oZWFkIDwgKGhlYWQgKyAoMSA8PCBoZWFkX29yZGVyKSkgKQpAQCAt OTk1LDYgKzEwMTQsOSBAQCBzdGF0aWMgYm9vbF90IGNhbl9tZXJnZShzdHJ1Y3QgcGFnZV9pbmZv ICpidWRkeSwgdW5zaWduZWQgaW50IG5vZGUsCiAgICAgICAgICAhIXRlc3RfYml0KF9QR0NfbmVl ZF9zY3J1YiwgJmJ1ZGR5LT5jb3VudF9pbmZvKSApCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAor ICAgIGlmICggYnVkZHktPnUuZnJlZS5zY3J1Yl9zdGF0ZSAmIFBBR0VfU0NSVUJCSU5HICkKKyAg ICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEwNzQsMTIg KzEwOTYsMzQgQEAgc3RhdGljIHVuc2lnbmVkIGludCBub2RlX3RvX3NjcnViKGJvb2xfdCBnZXRf bm9kZSkKIH0KIAogI2RlZmluZSBTQ1JVQl9DSFVOS19PUkRFUiAgOAorCitzdHJ1Y3Qgc2NydWJf d2FpdF9zdGF0ZSB7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CisgICAgYm9vbF90IGRyb3A7 Cit9OworCitzdGF0aWMgdm9pZCBzY3J1Yl9jb250aW51ZSh2b2lkICpkYXRhKQoreworICAgIHN0 cnVjdCBzY3J1Yl93YWl0X3N0YXRlICpzdCA9IChzdHJ1Y3Qgc2NydWJfd2FpdF9zdGF0ZSAqKWRh dGE7CisKKyAgICBpZiAoIHN0LT5kcm9wICkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCBz dC0+cGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSAmIFBBR0VfU0NSVUJfQUJPUlQgKQorICAgIHsKKyAg ICAgICAgLyogVGhlcmUgaXMgYSB3YWl0ZXIgZm9yIHRoaXMgY2h1bmsuIFJlbGVhc2UgaXQuICov CisgICAgICAgIHN0LT5kcm9wID0gdHJ1ZTsKKyAgICAgICAgc3QtPnBnLT51LmZyZWUuc2NydWJf c3RhdGUgPSAwOworICAgIH0KK30KKwogYm9vbF90IHNjcnViX2ZyZWVfcGFnZXMoKQogewogICAg IHN0cnVjdCBwYWdlX2luZm8gKnBnOwogICAgIHVuc2lnbmVkIGludCBpLCB6b25lOwogICAgIHVu c2lnbmVkIGludCBudW1fc2NydWJiZWQsIHNjcnViX29yZGVyLCBzdGFydCwgZW5kOwogICAgIGJv b2xfdCBwcmVlbXB0LCBpc19mcmFnOworICAgIHN0cnVjdCBzY3J1Yl93YWl0X3N0YXRlIHN0Owog ICAgIGludCBvcmRlciwgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogICAgIG5vZGVpZF90IG5v ZGU7CiAKQEAgLTExMDAsNyArMTE0NCwxMCBAQCBib29sX3Qgc2NydWJfZnJlZV9wYWdlcygpCiAg ICAgICAgICAgICAgICAgaWYgKCAhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGctPmNvdW50 X2luZm8pICkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBw YWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOworICAgICAgICAgICAg ICAgIEFTU0VSVCghcGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSk7CisgICAgICAgICAgICAgICAgcGct PnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IFBBR0VfU0NSVUJCSU5HOworCisgICAgICAgICAgICAgICAg c3Bpbl91bmxvY2soJmhlYXBfbG9jayk7CiAKICAgICAgICAgICAgICAgICBzY3J1Yl9vcmRlciA9 IE1JTihvcmRlciwgU0NSVUJfQ0hVTktfT1JERVIpOwogICAgICAgICAgICAgICAgIG51bV9zY3J1 YmJlZCA9IDA7CkBAIC0xMTA4LDcgKzExNTUsMTUgQEAgYm9vbF90IHNjcnViX2ZyZWVfcGFnZXMo KQogICAgICAgICAgICAgICAgIHdoaWxlICggbnVtX3NjcnViYmVkIDwgKDEgPDwgb3JkZXIpICkK ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwg KDEgPDwgc2NydWJfb3JkZXIpOyBpKysgKQorICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICBzY3J1Yl9vbmVfcGFnZSgmcGdbbnVtX3NjcnViYmVkICsgaV0pOwor ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBBQ0NFU1NfT05DRShwZy0+dS5mcmVlLnNjcnVi X3N0YXRlKSAmIFBBR0VfU0NSVUJfQUJPUlQgKQorICAgICAgICAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNvbWVvbmUgd2FudHMgdGhpcyBjaHVuay4g RHJvcCBldmVyeXRoaW5nLiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnLT51LmZy ZWUuc2NydWJfc3RhdGUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0 X25vbG9jazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg fQogCiAgICAgICAgICAgICAgICAgICAgIG51bV9zY3J1YmJlZCArPSAoMSA8PCBzY3J1Yl9vcmRl cik7CiAgICAgICAgICAgICAgICAgICAgIGlmICggc29mdGlycV9wZW5kaW5nKGNwdSkgKQpAQCAt MTExOSw2ICsxMTc0LDE1IEBAIGJvb2xfdCBzY3J1Yl9mcmVlX3BhZ2VzKCkKICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAgIHN0LnBnID0g cGc7CisgICAgICAgICAgICAgICAgc3QuZHJvcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHNw aW5fbG9ja19jYigmaGVhcF9sb2NrLCBzY3J1Yl9jb250aW51ZSwgJnN0KTsKKworICAgICAgICAg ICAgICAgIGlmICggc3QuZHJvcCApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OworCisg ICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIp KTsKKwogICAgICAgICAgICAgICAgIHN0YXJ0ID0gMDsKICAgICAgICAgICAgICAgICBlbmQgPSBu dW1fc2NydWJiZWQ7CiAKQEAgLTExNTYsNiArMTIyMCw4IEBAIGJvb2xfdCBzY3J1Yl9mcmVlX3Bh Z2VzKCkKICAgICAgICAgICAgICAgICAgICAgZW5kICs9ICgxIDw8IGNodW5rX29yZGVyKTsKICAg ICAgICAgICAgICAgICAgfQogCisgICAgICAgICAgICAgICAgcGctPnUuZnJlZS5zY3J1Yl9zdGF0 ZSA9IDA7CisKICAgICAgICAgICAgICAgICBpZiAoIHByZWVtcHQgKQogICAgICAgICAgICAgICAg ICAgICBnb3RvIG91dDsKICAgICAgICAgICAgIH0KQEAgLTExNjQsNiArMTIzMCw4IEBAIGJvb2xf dCBzY3J1Yl9mcmVlX3BhZ2VzKCkKIAogIG91dDoKICAgICBzcGluX3VubG9jaygmaGVhcF9sb2Nr KTsKKworIG91dF9ub2xvY2s6CiAgICAgbm9kZV9jbGVhcihub2RlLCBub2RlX3NjcnViYmluZyk7 CiAgICAgcmV0dXJuIHNvZnRpcnFfcGVuZGluZyhjcHUpIHx8IChub2RlX3RvX3NjcnViKGZhbHNl KSAhPSBOVU1BX05PX05PREUpOwogfQpAQCAtMTIwMyw2ICsxMjcxLDggQEAgc3RhdGljIHZvaWQg ZnJlZV9oZWFwX3BhZ2VzKAogICAgICAgICBpZiAoIHBhZ2Vfc3RhdGVfaXMoJnBnW2ldLCBvZmZs aW5lZCkgKQogICAgICAgICAgICAgdGFpbnRlZCA9IDE7CiAKKyAgICAgICAgcGdbaV0udS5mcmVl LnNjcnViX3N0YXRlPTA7CisKICAgICAgICAgLyogSWYgYSBwYWdlIGhhcyBubyBvd25lciBpdCB3 aWxsIG5lZWQgbm8gc2FmZXR5IFRMQiBmbHVzaC4gKi8KICAgICAgICAgcGdbaV0udS5mcmVlLm5l ZWRfdGxiZmx1c2ggPSAocGFnZV9nZXRfb3duZXIoJnBnW2ldKSAhPSBOVUxMKTsKICAgICAgICAg aWYgKCBwZ1tpXS51LmZyZWUubmVlZF90bGJmbHVzaCApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20tYXJtL21tLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKaW5kZXggMTQ5OTQwYi4u YjJkOWRkMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS1hcm0vbW0uaApAQCAtMzUsNiArMzUsMTAgQEAgc3RydWN0IHBhZ2VfaW5mbwog ICAgICAgICB9IGludXNlOwogICAgICAgICAvKiBQYWdlIGlzIG9uIGEgZnJlZSBsaXN0OiAoKGNv dW50X2luZm8gJiBQR0NfY291bnRfbWFzaykgPT0gMCkuICovCiAgICAgICAgIHN0cnVjdCB7Cisj ZGVmaW5lIFBBR0VfU0NSVUJCSU5HICAgICAgKDE8PDEpCisjZGVmaW5lIFBBR0VfU0NSVUJfQUJP UlQgICAgKDE8PDIpCisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHNjcnViX3N0YXRlOworCiAg ICAgICAgICAgICAvKiBEbyBUTEJzIG5lZWQgZmx1c2hpbmcgZm9yIHNhZmV0eSBiZWZvcmUgbmV4 dCBwYWdlIHVzZT8gKi8KICAgICAgICAgICAgIGJvb2xfdCBuZWVkX3RsYmZsdXNoOwogICAgICAg ICB9IGZyZWU7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L21tLmgKaW5kZXggZjNkNDQ0My4uMzFlNTNlOSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAt ODcsNiArODcsMTAgQEAgc3RydWN0IHBhZ2VfaW5mbwogCiAgICAgICAgIC8qIFBhZ2UgaXMgb24g YSBmcmVlIGxpc3Q6ICgoY291bnRfaW5mbyAmIFBHQ19jb3VudF9tYXNrKSA9PSAwKS4gKi8KICAg ICAgICAgc3RydWN0IHsKKyNkZWZpbmUgUEFHRV9TQ1JVQkJJTkcgICAgICAoMTw8MSkKKyNkZWZp bmUgUEFHRV9TQ1JVQl9BQk9SVCAgICAoMTw8MikKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg c2NydWJfc3RhdGU7CisKICAgICAgICAgICAgIC8qIERvIFRMQnMgbmVlZCBmbHVzaGluZyBmb3Ig c2FmZXR5IGJlZm9yZSBuZXh0IHBhZ2UgdXNlPyAqLwogICAgICAgICAgICAgYm9vbF90IG5lZWRf dGxiZmx1c2g7CiAgICAgICAgIH0gZnJlZTsKLS0gCjEuNy4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==