From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH RFC 7/8] mm: Keep pages available for allocation while scrubbing Date: Sun, 26 Feb 2017 19:22:39 -0500 Message-ID: <1488154960-2826-8-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 SW5zdGVhZCBvZiBzY3J1YmJpbmcgcGFnZXMgd2hpbGUgaG9sZGluZyBoZWFwIGxvY2sgd2UgY2Fu IG1hcmsKYnVkZHkncyBoZWFkIGFzIGJlaW5nIHNjcnViYmVkIGFuZCBkcm9wIHRoZSBsb2NrIHRl bXBvcmFyaWx5LgpJZiBzb21lb25lIChtb3N0IGxpa2VseSBhbGxvY19oZWFwX3BhZ2VzKCkpIHRy aWVzIHRvIGFjY2Vzcwp0aGlzIGNodW5rIGl0IHdpbGwgc2lnbmFsIHRoZSBzY3J1YmJlciB0byBh Ym9ydCBzY3J1YiBieSBzZXR0aW5nCmhlYWQncyBQQUdFX1NDUlVCX0FCT1JUIGJpdC4gVGhlIHNj cnViYmVyIGNoZWNrcyB0aGlzIGJpdCBhZnRlcgpwcm9jZXNzaW5nIGVhY2ggcGFnZSBhbmQgc3Rv cHMgaXRzIHdvcmsgYXMgc29vbiBhcyBpdCBzZWVzIGl0LgoKU2lnbmVkLW9mZi1ieTogQm9yaXMg T3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCiB4ZW4vY29tbW9uL3Bh Z2VfYWxsb2MuYyAgfCAgIDY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oIHwgICAgNCArKysKIDIgZmlsZXMgY2hh bmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL3BhZ2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IDM0Njkx ODUuLmEzOWFmZDQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBiL3hl bi9jb21tb24vcGFnZV9hbGxvYy5jCkBAIC02ODcsNiArNjg3LDE4IEBAIHN0YXRpYyB2b2lkIGNo ZWNrX2xvd19tZW1fdmlycSh2b2lkKQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgY2hlY2tfYW5k X3N0b3Bfc2NydWIoc3RydWN0IHBhZ2VfaW5mbyAqaGVhZCkKK3sKKyAgICBpZiAoIGhlYWQtPnUu ZnJlZS5zY3J1Yl9zdGF0ZSAmIFBBR0VfU0NSVUJCSU5HICkKKyAgICB7CisgICAgICAgIGhlYWQt PnUuZnJlZS5zY3J1Yl9zdGF0ZSB8PSBQQUdFX1NDUlVCX0FCT1JUOworICAgICAgICBzbXBfbWIo KTsKKyAgICAgICAgc3BpbmtfbG9ja19raWNrKCk7CisgICAgICAgIHdoaWxlICggQUNDRVNTX09O Q0UoaGVhZC0+dS5mcmVlLnNjcnViX3N0YXRlKSAmIFBBR0VfU0NSVUJfQUJPUlQgKQorICAgICAg ICAgICAgY3B1X3JlbGF4KCk7CisgICAgfQorfQorCiAvKiBBbGxvY2F0ZSAyXkBvcmRlciBjb250 aWd1b3VzIHBhZ2VzLiAqLwogc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFn ZXMoCiAgICAgdW5zaWduZWQgaW50IHpvbmVfbG8sIHVuc2lnbmVkIGludCB6b25lX2hpLApAQCAt NzczLDEwICs3ODUsMTUgQEAgc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFn ZXMoCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCAocGcgPSBwYWdlX2xpc3Rf cmVtb3ZlX2hlYWQoJmhlYXAobm9kZSwgem9uZSwgaikpKSApCiAgICAgICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgICAgICBpZiAoIChvcmRlciA9PSAwKSB8fCB1c2VfdW5zY3J1YmJlZCB8 fAotICAgICAgICAgICAgICAgICAgICAgICAgICF0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIsICZw Z1swXS5jb3VudF9pbmZvKSApCisgICAgICAgICAgICAgICAgICAgIGlmICggIXRlc3RfYml0KF9Q R0NfbmVlZF9zY3J1YiwgJnBnWzBdLmNvdW50X2luZm8pICkKICAgICAgICAgICAgICAgICAgICAg ICAgIGdvdG8gZm91bmQ7CiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCAob3JkZXIgPT0gMCkg fHwgdXNlX3Vuc2NydWJiZWQgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgICAgICBjaGVja19hbmRfc3RvcF9zY3J1YihwZyk7CisgICAgICAgICAgICAgICAgICAg ICAgICBnb3RvIGZvdW5kOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAg ICAgICAgcGFnZV9saXN0X2FkZF90YWlsKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7CiAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtOTExLDYgKzkyOCw4IEBAIHN0YXRpYyBp bnQgcmVzZXJ2ZV9vZmZsaW5lZF9wYWdlKHN0cnVjdCBwYWdlX2luZm8gKmhlYWQpCiAKICAgICBj dXJfaGVhZCA9IGhlYWQ7CiAKKyAgICBjaGVja19hbmRfc3RvcF9zY3J1YihoZWFkKTsKKwogICAg IHBhZ2VfbGlzdF9kZWwoaGVhZCwgJmhlYXAobm9kZSwgem9uZSwgaGVhZF9vcmRlcikpOwogCiAg ICAgd2hpbGUgKCBjdXJfaGVhZCA8IChoZWFkICsgKDEgPDwgaGVhZF9vcmRlcikpICkKQEAgLTk5 MCw2ICsxMDA5LDkgQEAgc3RhdGljIGJvb2xfdCBjYW5fbWVyZ2Uoc3RydWN0IHBhZ2VfaW5mbyAq aGVhZCwgdW5zaWduZWQgaW50IG5vZGUsCiAgICAgICAgICAhIXRlc3RfYml0KF9QR0NfbmVlZF9z Y3J1YiwgJmhlYWQtPmNvdW50X2luZm8pICkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAo IGhlYWQtPnUuZnJlZS5zY3J1Yl9zdGF0ZSAmIFBBR0VfU0NSVUJCSU5HICkKKyAgICAgICAgcmV0 dXJuIDA7CisKICAgICByZXR1cm4gMTsKIH0KIApAQCAtMTAzMyw2ICsxMDU1LDE0IEBAIHN0YXRp YyB2b2lkIG1lcmdlX2NodW5rcyhzdHJ1Y3QgcGFnZV9pbmZvICpwZywgdW5zaWduZWQgaW50IG5v ZGUsCiB9CiAKICNkZWZpbmUgU0NSVUJfQ0hVTktfT1JERVIgIDgKKworc3RhdGljIGJvb2xfdCBz Y3J1Yl9jb250aW51ZSh2b2lkICpkYXRhKQoreworICAgIHN0cnVjdCBwYWdlX2luZm8gKmhlYWQg PSAoc3RydWN0IHBhZ2VfaW5mbyAqKWRhdGE7CisKKyAgICByZXR1cm4gIShBQ0NFU1NfT05DRSho ZWFkLT51LmZyZWUuc2NydWJfc3RhdGUpICYgUEFHRV9TQ1JVQl9BQk9SVCk7Cit9CisKIGJvb2xf dCBzY3J1Yl9mcmVlX3BhZ2VzKHVuc2lnbmVkIGludCBub2RlKQogewogICAgIHN0cnVjdCBwYWdl X2luZm8gKnBnOwpAQCAtMTA2NCwxNCArMTA5NCwyNSBAQCBib29sX3Qgc2NydWJfZnJlZV9wYWdl cyh1bnNpZ25lZCBpbnQgbm9kZSkKICAgICAgICAgICAgICAgICBpZiAoICF0ZXN0X2JpdChfUEdD X25lZWRfc2NydWIsICZwZ1swXS5jb3VudF9pbmZvKSApCiAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwogCi0gICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9u ZSwgb3JkZXIpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIXBnWzBdLnUuZnJlZS5zY3J1Yl9z dGF0ZSk7CisgICAgICAgICAgICAgICAgcGdbMF0udS5mcmVlLnNjcnViX3N0YXRlID0gUEFHRV9T Q1JVQkJJTkc7CisKKyAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKIAog ICAgICAgICAgICAgICAgIHNjcnViX29yZGVyID0gKG9yZGVyID4gU0NSVUJfQ0hVTktfT1JERVIp ID8gU0NSVUJfQ0hVTktfT1JERVIgOiBvcmRlcjsKICAgICAgICAgICAgICAgICBudW1fc2NydWJi ZWQgPSAwOwotICAgICAgICAgICAgICAgIHdoaWxlICggbnVtX3NjcnViYmVkIDwgKDEgPDwgb3Jk ZXIpICkKKyAgICAgICAgICAgICAgICB3aGlsZSAoIHNjcnViX2NvbnRpbnVlKCZwZ1swXSkgJiYg bnVtX3NjcnViYmVkIDwgKDEgPDwgb3JkZXIpICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgc2NydWJfb3JkZXIpOyBpKysgKQor ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzY3J1Yl9vbmVf cGFnZSgmcGdbbnVtX3NjcnViYmVkICsgaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCAhc2NydWJfY29udGludWUoJnBnWzBdKSApCisgICAgICAgICAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU29tZW9uZSB3YW50cyB0aGlzIGNodW5rLiBE cm9wIGV2ZXJ5dGhpbmcuICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdbMF0udS5m cmVlLnNjcnViX3N0YXRlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91 dF9ub2xvY2s7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg IH0KIAogICAgICAgICAgICAgICAgICAgICBudW1fc2NydWJiZWQgKz0gKDEgPDwgc2NydWJfb3Jk ZXIpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIHNvZnRpcnFfcGVuZGluZyhjcHUpICkKQEAg LTEwODAsNyArMTEyMSwxNSBAQCBib29sX3Qgc2NydWJfZnJlZV9wYWdlcyh1bnNpZ25lZCBpbnQg bm9kZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgIH0KLSAKKworCQlpZiAoICFzcGluX2xvY2tfY29uZCgmaGVh cF9sb2NrLCBzY3J1Yl9jb250aW51ZSwgJnBnWzBdKSApCisgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgICBwZ1swXS51LmZyZWUuc2NydWJfc3RhdGUgPSAwOworICAgICAgICAg ICAgICAgICAgICBnb3RvIG91dF9ub2xvY2s7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg ICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKKwog ICAgICAgICAgICAgICAgIHN0YXJ0ID0gMDsKICAgICAgICAgICAgICAgICBlbmQgPSBudW1fc2Ny dWJiZWQ7CiAKQEAgLTExMTgsNyArMTE2Nyw5IEBAIGJvb2xfdCBzY3J1Yl9mcmVlX3BhZ2VzKHVu c2lnbmVkIGludCBub2RlKQogICAgICAgICAgICAgICAgICAgICBtZXJnZV9jaHVua3MocHBnLCBu b2RlLCB6b25lLCBjaHVua19vcmRlciwgMSk7CiAgICAgICAgICAgICAgICAgICAgIGVuZCArPSAo MSA8PCBjaHVua19vcmRlcik7CiAgICAgICAgICAgICAgICAgfQotIAorCisgICAgICAgICAgICAg ICAgcGdbMF0udS5mcmVlLnNjcnViX3N0YXRlID0gMDsKKwogICAgICAgICAgICAgICAgIGlmICgg cHJlZW1wdCApCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICAgICAgfQpA QCAtMTEyNyw2ICsxMTc4LDggQEAgYm9vbF90IHNjcnViX2ZyZWVfcGFnZXModW5zaWduZWQgaW50 IG5vZGUpCiAKICBvdXQ6CiAgICAgc3Bpbl91bmxvY2soJmhlYXBfbG9jayk7CisKKyBvdXRfbm9s b2NrOgogICAgIGNsZWFyX2JpdChub2RlLCAmbm9kZV9zY3J1YmJpbmcpOwogICAgIHJldHVybiAo bm9kZV9uZWVkX3NjcnViW25vZGVdICE9IDApOwogfQpAQCAtMTE2NSw2ICsxMjE4LDggQEAgc3Rh dGljIHZvaWQgZnJlZV9oZWFwX3BhZ2VzKAogICAgICAgICBpZiAoIHBhZ2Vfc3RhdGVfaXMoJnBn W2ldLCBvZmZsaW5lZCkgKQogICAgICAgICAgICAgdGFpbnRlZCA9IDE7CiAKKyAgICAgICAgcGdb aV0udS5mcmVlLnNjcnViX3N0YXRlPTA7CisKICAgICAgICAgLyogSWYgYSBwYWdlIGhhcyBubyBv d25lciBpdCB3aWxsIG5lZWQgbm8gc2FmZXR5IFRMQiBmbHVzaC4gKi8KICAgICAgICAgcGdbaV0u dS5mcmVlLm5lZWRfdGxiZmx1c2ggPSAocGFnZV9nZXRfb3duZXIoJnBnW2ldKSAhPSBOVUxMKTsK ICAgICAgICAgaWYgKCBwZ1tpXS51LmZyZWUubmVlZF90bGJmbHVzaCApCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXgg YjExMTI0Zi4uZGQ4NDgzNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtODcsNiArODcsMTAgQEAgc3RydWN0IHBh Z2VfaW5mbwogCiAgICAgICAgIC8qIFBhZ2UgaXMgb24gYSBmcmVlIGxpc3Q6ICgoY291bnRfaW5m byAmIFBHQ19jb3VudF9tYXNrKSA9PSAwKS4gKi8KICAgICAgICAgc3RydWN0IHsKKyNkZWZpbmUg UEFHRV9TQ1JVQkJJTkcgICAgICAoMTw8MSkKKyNkZWZpbmUgUEFHRV9TQ1JVQl9BQk9SVCAgICAo MTw8MikKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgc2NydWJfc3RhdGU7CisKICAgICAgICAg ICAgIC8qIERvIFRMQnMgbmVlZCBmbHVzaGluZyBmb3Igc2FmZXR5IGJlZm9yZSBuZXh0IHBhZ2Ug dXNlPyAqLwogICAgICAgICAgICAgYm9vbF90IG5lZWRfdGxiZmx1c2g7CiAgICAgICAgIH0gZnJl ZTsKLS0gCjEuNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==