From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v2 1/9] mm: Separate free page chunk merging into its own routine Date: Mon, 3 Apr 2017 12:50:48 -0400 Message-ID: <1491238256-5517-2-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 VGhpcyBpcyBuZWVkZWQgZm9yIHN1YnNlcXVlbnQgY2hhbmdlcyB0byBtZW1vcnkgc2NydWJiaW5n LgoKU2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xl LmNvbT4KLS0tCgpDaGFuZ2VzIGluIHYyOgoqIFJldHVybiBib29sZWFuIChhcyBvcHBwb3NlZCB0 byBpbnRlZ2VyKSB2YWx1ZXMgaW4gY2FuX21lcmdlKCkKKiBSZXR1cm4gbmV3IGJ1ZGR5IGhlYWQg ZnJvbSBtZXJnZV9jaHVua3MoKQoKCiB4ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYyB8ICAgODggKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlcyBjaGFu Z2VkLCA1NSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL3BhZ2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IDY4ZGJh MTkuLjE1ZmQ3ZjQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBiL3hl bi9jb21tb24vcGFnZV9hbGxvYy5jCkBAIC05MjQsMTEgKzkyNCw2NCBAQCBzdGF0aWMgaW50IHJl c2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQogICAgIHJldHVybiBj b3VudDsKIH0KIAorc3RhdGljIGJvb2xfdCBjYW5fbWVyZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqYnVk ZHksIHVuc2lnbmVkIGludCBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IG9yZGVyKQoreworICAgIGlmICggIW1mbl92YWxpZChfbWZuKHBhZ2VfdG9fbWZuKGJ1ZGR5 KSkpIHx8CisgICAgICAgICAhcGFnZV9zdGF0ZV9pcyhidWRkeSwgZnJlZSkgfHwKKyAgICAgICAg IChQRk5fT1JERVIoYnVkZHkpICE9IG9yZGVyKSB8fAorICAgICAgICAgKHBoeXNfdG9fbmlkKHBh Z2VfdG9fbWFkZHIoYnVkZHkpKSAhPSBub2RlKSApCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor ICAgIHJldHVybiB0cnVlOworfQorCisvKiBSZXR1cm5zIG5ldyBidWRkeSBoZWFkLiAqLworc3Rh dGljIHN0cnVjdCBwYWdlX2luZm8gKm1lcmdlX2NodW5rcyhzdHJ1Y3QgcGFnZV9pbmZvICpwZywg dW5zaWduZWQgaW50IG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCB6b25lLCB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisgICAgQVNTRVJUKHNw aW5faXNfbG9ja2VkKCZoZWFwX2xvY2spKTsKKworICAgIC8qIE1lcmdlIGNodW5rcyBhcyBmYXIg YXMgcG9zc2libGUuICovCisgICAgd2hpbGUgKCBvcmRlciA8IE1BWF9PUkRFUiApCisgICAgewor ICAgICAgICB1bnNpZ25lZCBsb25nIG1hc2sgPSAxVUwgPDwgb3JkZXI7CisgICAgICAgIHN0cnVj dCBwYWdlX2luZm8gKmJ1ZGR5OworCisgICAgICAgIGlmICggKHBhZ2VfdG9fbWZuKHBnKSAmIG1h c2spICkKKyAgICAgICAgeworICAgICAgICAgICAgLyogTWVyZ2Ugd2l0aCBwcmVkZWNlc3NvciBi bG9jaz8gKi8KKyAgICAgICAgICAgIGJ1ZGR5ID0gcGcgLSBtYXNrOworICAgICAgICAgICAgaWYg KCAhY2FuX21lcmdlKGJ1ZGR5LCBub2RlLCBvcmRlcikgKQorICAgICAgICAgICAgICAgIGJyZWFr OworCisgICAgICAgICAgICBwZyA9IGJ1ZGR5OworICAgICAgICAgICAgcGFnZV9saXN0X2RlbChw ZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisg ICAgICAgIHsKKyAgICAgICAgICAgIC8qIE1lcmdlIHdpdGggc3VjY2Vzc29yIGJsb2NrPyAqLwor ICAgICAgICAgICAgYnVkZHkgPSBwZyArIG1hc2s7CisgICAgICAgICAgICBpZiAoICFjYW5fbWVy Z2UoYnVkZHksIG5vZGUsIG9yZGVyKSApCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg ICAgICAgIHBhZ2VfbGlzdF9kZWwoYnVkZHksICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7Cisg ICAgICAgIH0KKworICAgICAgICBvcmRlcisrOworICAgIH0KKworICAgIFBGTl9PUkRFUihwZykg PSBvcmRlcjsKKyAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGcsICZoZWFwKG5vZGUsIHpvbmUsIG9y ZGVyKSk7CisKKyAgICByZXR1cm4gcGc7Cit9CisKIC8qIEZyZWUgMl5Ab3JkZXIgc2V0IG9mIHBh Z2VzLiAqLwogc3RhdGljIHZvaWQgZnJlZV9oZWFwX3BhZ2VzKAogICAgIHN0cnVjdCBwYWdlX2lu Zm8gKnBnLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBtYXNrLCBt Zm4gPSBwYWdlX3RvX21mbihwZyk7CisgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwYWdlX3RvX21m bihwZyk7CiAgICAgdW5zaWduZWQgaW50IGksIG5vZGUgPSBwaHlzX3RvX25pZChwYWdlX3RvX21h ZGRyKHBnKSksIHRhaW50ZWQgPSAwOwogICAgIHVuc2lnbmVkIGludCB6b25lID0gcGFnZV90b196 b25lKHBnKTsKIApAQCAtOTc1LDM4ICsxMDI4LDcgQEAgc3RhdGljIHZvaWQgZnJlZV9oZWFwX3Bh Z2VzKAogICAgICAgICBtaWRzaXplX2FsbG9jX3pvbmVfcGFnZXMgPSBtYXgoCiAgICAgICAgICAg ICBtaWRzaXplX2FsbG9jX3pvbmVfcGFnZXMsIHRvdGFsX2F2YWlsX3BhZ2VzIC8gTUlEU0laRV9B TExPQ19GUkFDKTsKIAotICAgIC8qIE1lcmdlIGNodW5rcyBhcyBmYXIgYXMgcG9zc2libGUuICov Ci0gICAgd2hpbGUgKCBvcmRlciA8IE1BWF9PUkRFUiApCi0gICAgewotICAgICAgICBtYXNrID0g MVVMIDw8IG9yZGVyOwotCi0gICAgICAgIGlmICggKHBhZ2VfdG9fbWZuKHBnKSAmIG1hc2spICkK LSAgICAgICAgewotICAgICAgICAgICAgLyogTWVyZ2Ugd2l0aCBwcmVkZWNlc3NvciBibG9jaz8g Ki8KLSAgICAgICAgICAgIGlmICggIW1mbl92YWxpZChfbWZuKHBhZ2VfdG9fbWZuKHBnLW1hc2sp KSkgfHwKLSAgICAgICAgICAgICAgICAgIXBhZ2Vfc3RhdGVfaXMocGctbWFzaywgZnJlZSkgfHwK LSAgICAgICAgICAgICAgICAgKFBGTl9PUkRFUihwZy1tYXNrKSAhPSBvcmRlcikgfHwKLSAgICAg ICAgICAgICAgICAgKHBoeXNfdG9fbmlkKHBhZ2VfdG9fbWFkZHIocGctbWFzaykpICE9IG5vZGUp ICkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIHBnIC09IG1hc2s7Ci0gICAg ICAgICAgICBwYWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwotICAg ICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICAgICAgLyogTWVyZ2Ugd2l0 aCBzdWNjZXNzb3IgYmxvY2s/ICovCi0gICAgICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21mbihw YWdlX3RvX21mbihwZyttYXNrKSkpIHx8Ci0gICAgICAgICAgICAgICAgICFwYWdlX3N0YXRlX2lz KHBnK21hc2ssIGZyZWUpIHx8Ci0gICAgICAgICAgICAgICAgIChQRk5fT1JERVIocGcrbWFzaykg IT0gb3JkZXIpIHx8Ci0gICAgICAgICAgICAgICAgIChwaHlzX3RvX25pZChwYWdlX3RvX21hZGRy KHBnK21hc2spKSAhPSBub2RlKSApCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg ICBwYWdlX2xpc3RfZGVsKHBnICsgbWFzaywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKLSAg ICAgICAgfQotCi0gICAgICAgIG9yZGVyKys7Ci0gICAgfQotCi0gICAgUEZOX09SREVSKHBnKSA9 IG9yZGVyOwotICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3Jk ZXIpKTsKKyAgICBwZyA9IG1lcmdlX2NodW5rcyhwZywgbm9kZSwgem9uZSwgb3JkZXIpOwogCiAg ICAgaWYgKCB0YWludGVkICkKICAgICAgICAgcmVzZXJ2ZV9vZmZsaW5lZF9wYWdlKHBnKTsKLS0g CjEuNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==