From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v1 7/9] mm: Keep pages available for allocation while scrubbing Date: Fri, 24 Mar 2017 13:05:02 -0400 Message-ID: <1490375104-15450-8-git-send-email-boris.ostrovsky@oracle.com> References: <1490375104-15450-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: <1490375104-15450-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 Z2VfYWxsb2MuYyAgfCAgIDc4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLQogeGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oIHwgICAgNCArKwogeGVuL2luY2x1ZGUv YXNtLXg4Ni9tbS5oIHwgICAgNCArKwogMyBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jIGIv eGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggZTVlNmU3MC4uZGYyODA5MCAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMK QEAgLTY4NSw2ICs2ODUsMTggQEAgc3RhdGljIHZvaWQgY2hlY2tfbG93X21lbV92aXJxKHZvaWQp CiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBjaGVja19hbmRfc3RvcF9zY3J1YihzdHJ1Y3QgcGFn ZV9pbmZvICpoZWFkKQoreworICAgIGlmICggaGVhZC0+dS5mcmVlLnNjcnViX3N0YXRlICYgUEFH RV9TQ1JVQkJJTkcgKQorICAgIHsKKyAgICAgICAgaGVhZC0+dS5mcmVlLnNjcnViX3N0YXRlIHw9 IFBBR0VfU0NSVUJfQUJPUlQ7CisgICAgICAgIHNtcF9tYigpOworICAgICAgICBzcGluX2xvY2tf a2ljaygpOworICAgICAgICB3aGlsZSAoIEFDQ0VTU19PTkNFKGhlYWQtPnUuZnJlZS5zY3J1Yl9z dGF0ZSkgJiBQQUdFX1NDUlVCX0FCT1JUICkKKyAgICAgICAgICAgIGNwdV9yZWxheCgpOworICAg IH0KK30KKwogLyogQWxsb2NhdGUgMl5Ab3JkZXIgY29udGlndW91cyBwYWdlcy4gKi8KIHN0YXRp YyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgIHVuc2lnbmVkIGludCB6 b25lX2xvLCB1bnNpZ25lZCBpbnQgem9uZV9oaSwKQEAgLTc3MSwxMCArNzgzLDE1IEBAIHN0YXRp YyBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKAogICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgIGlmICggKHBnID0gcGFnZV9saXN0X3JlbW92ZV9oZWFkKCZoZWFwKG5vZGUs IHpvbmUsIGopKSkgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg KCAob3JkZXIgPT0gMCkgfHwgdXNlX3Vuc2NydWJiZWQgfHwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGctPmNvdW50X2luZm8pICkKKyAgICAg ICAgICAgICAgICAgICAgaWYgKCAhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGdbMF0uY291 bnRfaW5mbykgKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZDsKIAorICAgICAg ICAgICAgICAgICAgICBpZiAoIChvcmRlciA9PSAwKSB8fCB1c2VfdW5zY3J1YmJlZCApCisgICAg ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2FuZF9zdG9w X3NjcnViKHBnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CisgICAgICAg ICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwo cGcsICZoZWFwKG5vZGUsIHpvbmUsIGopKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICB9CkBAIC05MTEsNiArOTI4LDggQEAgc3RhdGljIGludCByZXNlcnZlX29mZmxpbmVkX3BhZ2Uo c3RydWN0IHBhZ2VfaW5mbyAqaGVhZCkKIAogICAgIGN1cl9oZWFkID0gaGVhZDsKIAorICAgIGNo ZWNrX2FuZF9zdG9wX3NjcnViKGhlYWQpOworCiAgICAgcGFnZV9saXN0X2RlbChoZWFkLCAmaGVh cChub2RlLCB6b25lLCBoZWFkX29yZGVyKSk7CiAKICAgICB3aGlsZSAoIGN1cl9oZWFkIDwgKGhl YWQgKyAoMSA8PCBoZWFkX29yZGVyKSkgKQpAQCAtOTkzLDYgKzEwMTIsOSBAQCBzdGF0aWMgYm9v bF90IGNhbl9tZXJnZShzdHJ1Y3QgcGFnZV9pbmZvICpidWRkeSwgdW5zaWduZWQgaW50IG5vZGUs CiAgICAgICAgICAhIXRlc3RfYml0KF9QR0NfbmVlZF9zY3J1YiwgJmJ1ZGR5LT5jb3VudF9pbmZv KSApCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKCBidWRkeS0+dS5mcmVlLnNjcnViX3N0 YXRlICYgUEFHRV9TQ1JVQkJJTkcgKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVybiAx OwogfQogCkBAIC0xMDQ4LDEyICsxMDcwLDM0IEBAIHN0YXRpYyB2b2lkIG1lcmdlX2NodW5rcyhz dHJ1Y3QgcGFnZV9pbmZvICpwZywgdW5zaWduZWQgaW50IG5vZGUsCiB9CiAKICNkZWZpbmUgU0NS VUJfQ0hVTktfT1JERVIgIDgKKworc3RydWN0IHNjcnViX3dhaXRfc3RhdGUgeworICAgIHN0cnVj dCBwYWdlX2luZm8gKnBnOworICAgIGJvb2xfdCBkcm9wOworfTsKKworc3RhdGljIHZvaWQgc2Ny dWJfY29udGludWUodm9pZCAqZGF0YSkKK3sKKyAgICBzdHJ1Y3Qgc2NydWJfd2FpdF9zdGF0ZSAq c3QgPSAoc3RydWN0IHNjcnViX3dhaXRfc3RhdGUgKilkYXRhOworCisgICAgaWYgKCBzdC0+ZHJv cCApCisgICAgICAgIHJldHVybjsKKworICAgIGlmICggc3QtPnBnLT51LmZyZWUuc2NydWJfc3Rh dGUgJiBQQUdFX1NDUlVCX0FCT1JUICkKKyAgICB7CisgICAgICAgIC8qIFRoZXJlIGlzIGEgd2Fp dGVyIGZvciB0aGlzIGNodW5rLiBSZWxlYXNlIGl0LiAqLworICAgICAgICBzdC0+ZHJvcCA9IHRy dWU7CisgICAgICAgIHN0LT5wZy0+dS5mcmVlLnNjcnViX3N0YXRlID0gMDsKKyAgICB9Cit9CisK IGJvb2xfdCBzY3J1Yl9mcmVlX3BhZ2VzKCkKIHsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsK ICAgICB1bnNpZ25lZCBpbnQgaSwgem9uZTsKICAgICB1bnNpZ25lZCBpbnQgbnVtX3NjcnViYmVk LCBzY3J1Yl9vcmRlciwgc3RhcnQsIGVuZDsKICAgICBib29sX3QgcHJlZW1wdCwgaXNfZnJhZzsK KyAgICBzdHJ1Y3Qgc2NydWJfd2FpdF9zdGF0ZSBzdDsKICAgICBpbnQgb3JkZXIsIGNwdSA9IHNt cF9wcm9jZXNzb3JfaWQoKTsKICAgICBub2RlaWRfdCBub2RlID0gY3B1X3RvX25vZGUoY3B1KSwg bG9jYWxfbm9kZTsKICAgICBzdGF0aWMgbm9kZW1hc2tfdCBub2RlX3NjcnViYmluZzsKQEAgLTEw OTIsNyArMTEzNiwxMCBAQCBib29sX3Qgc2NydWJfZnJlZV9wYWdlcygpCiAgICAgICAgICAgICAg ICAgaWYgKCAhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGctPmNvdW50X2luZm8pICkKICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBwYWdlX2xpc3RfZGVs KHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOworICAgICAgICAgICAgICAgIEFTU0VSVCgh cGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSk7CisgICAgICAgICAgICAgICAgcGctPnUuZnJlZS5zY3J1 Yl9zdGF0ZSA9IFBBR0VfU0NSVUJCSU5HOworCisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2so JmhlYXBfbG9jayk7CiAKICAgICAgICAgICAgICAgICBzY3J1Yl9vcmRlciA9IE1JTihvcmRlciwg U0NSVUJfQ0hVTktfT1JERVIpOwogICAgICAgICAgICAgICAgIG51bV9zY3J1YmJlZCA9IDA7CkBA IC0xMTAwLDcgKzExNDcsMTUgQEAgYm9vbF90IHNjcnViX2ZyZWVfcGFnZXMoKQogICAgICAgICAg ICAgICAgIHdoaWxlICggbnVtX3NjcnViYmVkIDwgKDEgPDwgb3JkZXIpICkKICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgc2NydWJf b3JkZXIpOyBpKysgKQorICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICBzY3J1Yl9vbmVfcGFnZSgmcGdbbnVtX3NjcnViYmVkICsgaV0pOworICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCBBQ0NFU1NfT05DRShwZy0+dS5mcmVlLnNjcnViX3N0YXRlKSAmIFBB R0VfU0NSVUJfQUJPUlQgKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIFNvbWVvbmUgd2FudHMgdGhpcyBjaHVuay4gRHJvcCBldmVyeXRo aW5nLiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuc2NydWJfc3Rh dGUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X25vbG9jazsKKyAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAg ICAgICAgICAgICAgIG51bV9zY3J1YmJlZCArPSAoMSA8PCBzY3J1Yl9vcmRlcik7CiAgICAgICAg ICAgICAgICAgICAgIGlmICggc29mdGlycV9wZW5kaW5nKGNwdSkgKQpAQCAtMTExMCw3ICsxMTY1 LDE2IEBAIGJvb2xfdCBzY3J1Yl9mcmVlX3BhZ2VzKCkKICAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KLSAKKwor ICAgICAgICAgICAgICAgIHN0LnBnID0gcGc7CisgICAgICAgICAgICAgICAgc3QuZHJvcCA9IGZh bHNlOworICAgICAgICAgICAgICAgIHNwaW5fbG9ja19jYigmaGVhcF9sb2NrLCBzY3J1Yl9jb250 aW51ZSwgJnN0KTsKKworICAgICAgICAgICAgICAgIGlmICggc3QuZHJvcCApCisgICAgICAgICAg ICAgICAgICAgIGdvdG8gb3V0OworCisgICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywg JmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKKwogICAgICAgICAgICAgICAgIHN0YXJ0ID0gMDsK ICAgICAgICAgICAgICAgICBlbmQgPSBudW1fc2NydWJiZWQ7CiAKQEAgLTExNDgsNiArMTIxMiw4 IEBAIGJvb2xfdCBzY3J1Yl9mcmVlX3BhZ2VzKCkKICAgICAgICAgICAgICAgICAgICAgZW5kICs9 ICgxIDw8IGNodW5rX29yZGVyKTsKICAgICAgICAgICAgICAgICAgfQogCisgICAgICAgICAgICAg ICAgcGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IDA7CisKICAgICAgICAgICAgICAgICBpZiAoIHBy ZWVtcHQgKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgIH0KQEAg LTExNTYsNiArMTIyMiw4IEBAIGJvb2xfdCBzY3J1Yl9mcmVlX3BhZ2VzKCkKIAogIG91dDoKICAg ICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKKworIG91dF9ub2xvY2s6CiAgICAgbm9kZV9jbGVh cihub2RlLCBub2RlX3NjcnViYmluZyk7CiAgICAgcmV0dXJuIChub2RlX25lZWRfc2NydWJbbm9k ZV0gIT0gMCk7CiB9CkBAIC0xMTk0LDYgKzEyNjIsOCBAQCBzdGF0aWMgdm9pZCBmcmVlX2hlYXBf cGFnZXMoCiAgICAgICAgIGlmICggcGFnZV9zdGF0ZV9pcygmcGdbaV0sIG9mZmxpbmVkKSApCiAg ICAgICAgICAgICB0YWludGVkID0gMTsKIAorICAgICAgICBwZ1tpXS51LmZyZWUuc2NydWJfc3Rh dGU9MDsKKwogICAgICAgICAvKiBJZiBhIHBhZ2UgaGFzIG5vIG93bmVyIGl0IHdpbGwgbmVlZCBu byBzYWZldHkgVExCIGZsdXNoLiAqLwogICAgICAgICBwZ1tpXS51LmZyZWUubmVlZF90bGJmbHVz aCA9IChwYWdlX2dldF9vd25lcigmcGdbaV0pICE9IE5VTEwpOwogICAgICAgICBpZiAoIHBnW2ld LnUuZnJlZS5uZWVkX3RsYmZsdXNoICkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0v bW0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAppbmRleCA1MmEwM2EwLi4xNzUyZDQ0IDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LWFybS9tbS5oCkBAIC00MSw2ICs0MSwxMCBAQCBzdHJ1Y3QgcGFnZV9pbmZvCiAgICAgICAgIH0g aW51c2U7CiAgICAgICAgIC8qIFBhZ2UgaXMgb24gYSBmcmVlIGxpc3Q6ICgoY291bnRfaW5mbyAm IFBHQ19jb3VudF9tYXNrKSA9PSAwKS4gKi8KICAgICAgICAgc3RydWN0IHsKKyNkZWZpbmUgUEFH RV9TQ1JVQkJJTkcgICAgICAoMTw8MSkKKyNkZWZpbmUgUEFHRV9TQ1JVQl9BQk9SVCAgICAoMTw8 MikKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgc2NydWJfc3RhdGU7CisKICAgICAgICAgICAg IC8qIERvIFRMQnMgbmVlZCBmbHVzaGluZyBmb3Igc2FmZXR5IGJlZm9yZSBuZXh0IHBhZ2UgdXNl PyAqLwogICAgICAgICAgICAgYm9vbF90IG5lZWRfdGxiZmx1c2g7CiAgICAgICAgIH0gZnJlZTsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaCBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvbW0uaAppbmRleCBmM2Q0NDQzLi4zMWU1M2U5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L21tLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCkBAIC04Nyw2ICs4Nywx MCBAQCBzdHJ1Y3QgcGFnZV9pbmZvCiAKICAgICAgICAgLyogUGFnZSBpcyBvbiBhIGZyZWUgbGlz dDogKChjb3VudF9pbmZvICYgUEdDX2NvdW50X21hc2spID09IDApLiAqLwogICAgICAgICBzdHJ1 Y3QgeworI2RlZmluZSBQQUdFX1NDUlVCQklORyAgICAgICgxPDwxKQorI2RlZmluZSBQQUdFX1ND UlVCX0FCT1JUICAgICgxPDwyKQorICAgICAgICAgICAgdW5zaWduZWQgY2hhciBzY3J1Yl9zdGF0 ZTsKKwogICAgICAgICAgICAgLyogRG8gVExCcyBuZWVkIGZsdXNoaW5nIGZvciBzYWZldHkgYmVm b3JlIG5leHQgcGFnZSB1c2U/ICovCiAgICAgICAgICAgICBib29sX3QgbmVlZF90bGJmbHVzaDsK ICAgICAgICAgfSBmcmVlOwotLSAKMS43LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK