From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail172.messagelabs.com (mail172.messagelabs.com [216.82.254.3]) by kanga.kvack.org (Postfix) with SMTP id 97FE16B01FA for ; Mon, 17 May 2010 09:24:29 -0400 (EDT) Received: by pvg12 with SMTP id 12so1058837pvg.14 for ; Mon, 17 May 2010 06:24:27 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1273363872-8031-1-git-send-email-kirill@shutemov.name> References: <1273363872-8031-1-git-send-email-kirill@shutemov.name> Date: Mon, 17 May 2010 16:24:27 +0300 Message-ID: Subject: Re: [RFC] [PATCH] memcg: cleanup memory thresholds From: "Kirill A. Shutemov" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Sender: owner-linux-mm@kvack.org To: linux-mm@kvack.org, containers@lists.linux-foundation.org Cc: "Kirill A. Shutemov" , Andrew Morton , Phil Carmody , Balbir Singh , Daisuke Nishimura , KAMEZAWA Hiroyuki , Paul Menage , Li Zefan , linux-kernel@vger.kernel.org List-ID: QW55IGNvbW1lbnRzPwoKT24gU3VuLCBNYXkgOSwgMjAxMCBhdCAzOjExIEFNLCBLaXJpbGwgQS4g U2h1dGVtb3YgPGtpcmlsbEBzaHV0ZW1vdi5uYW1lPiB3cm90ZToKPiBJbnRyb2R1Y2Ugc3RydWN0 IG1lbV9jZ3JvdXBfdGhyZXNob2xkcy4gSXQgaGVscHMgdG8gcmVkdWNlIG51bWJlciBvZgo+IGNo ZWNrcyBvZiB0aHJlc2hvbGRzIHR5cGUgKG1lbW9yeSBvciBtZW0rc3dhcCkuCj4KPiBTaWduZWQt b2ZmLWJ5OiBLaXJpbGwgQS4gU2h1dGVtb3YgPGtpcmlsbEBzaHV0ZW1vdi5uYW1lPgo+IC0tLQo+ IMKgbW0vbWVtY29udHJvbC5jIHwgwqAxNTEgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IMKgMSBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRp b25zKCspLCA4NSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9tbS9tZW1jb250cm9sLmMg Yi9tbS9tZW1jb250cm9sLmMKPiBpbmRleCBhNmQyYTRjLi5hNmM2MjY4IDEwMDY0NAo+IC0tLSBh L21tL21lbWNvbnRyb2wuYwo+ICsrKyBiL21tL21lbWNvbnRyb2wuYwo+IEBAIC0xNTgsNiArMTU4 LDE4IEBAIHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZF9hcnkgewo+IMKgIMKgIMKgIMKgLyog QXJyYXkgb2YgdGhyZXNob2xkcyAqLwo+IMKgIMKgIMKgIMKgc3RydWN0IG1lbV9jZ3JvdXBfdGhy ZXNob2xkIGVudHJpZXNbMF07Cj4gwqB9Owo+ICsKPiArc3RydWN0IG1lbV9jZ3JvdXBfdGhyZXNo b2xkcyB7Cj4gKyDCoCDCoCDCoCAvKiBQcmltYXJ5IHRocmVzaG9sZHMgYXJyYXkgKi8KPiArIMKg IMKgIMKgIHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZF9hcnkgKnByaW1hcnk7Cj4gKyDCoCDC oCDCoCAvKgo+ICsgwqAgwqAgwqAgwqAqIFNwYXJlIHRocmVzaG9sZCBhcnJheS4KPiArIMKgIMKg IMKgIMKgKiBJdCBuZWVkZWQgdG8gbWFrZSBtZW1fY2dyb3VwX3VucmVnaXN0ZXJfZXZlbnQoKSAi bmV2ZXIgZmFpbCIuCj4gKyDCoCDCoCDCoCDCoCogSXQgbXVzdCBiZSBhYmxlIHRvIHN0b3JlIGF0 IGxlYXN0IHByaW1hcnktPnNpemUgLSAxIGVudGlyZXMuCj4gKyDCoCDCoCDCoCDCoCovCj4gKyDC oCDCoCDCoCBzdHJ1Y3QgbWVtX2Nncm91cF90aHJlc2hvbGRfYXJ5ICpzcGFyZTsKPiArfTsKPiAr Cj4gwqAvKiBmb3IgT09NICovCj4gwqBzdHJ1Y3QgbWVtX2Nncm91cF9ldmVudGZkX2xpc3Qgewo+ IMKgIMKgIMKgIMKgc3RydWN0IGxpc3RfaGVhZCBsaXN0Owo+IEBAIC0yMjQsMjAgKzIzNiwxMCBA QCBzdHJ1Y3QgbWVtX2Nncm91cCB7Cj4gwqAgwqAgwqAgwqBzdHJ1Y3QgbXV0ZXggdGhyZXNob2xk c19sb2NrOwo+Cj4gwqAgwqAgwqAgwqAvKiB0aHJlc2hvbGRzIGZvciBtZW1vcnkgdXNhZ2UuIFJD VS1wcm90ZWN0ZWQgKi8KPiAtIMKgIMKgIMKgIHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZF9h cnkgKnRocmVzaG9sZHM7Cj4gLQo+IC0gwqAgwqAgwqAgLyoKPiAtIMKgIMKgIMKgIMKgKiBQcmVh bGxvY2F0ZWQgYnVmZmVyIHRvIGJlIHVzZWQgaW4gbWVtX2Nncm91cF91bnJlZ2lzdGVyX2V2ZW50 KCkKPiAtIMKgIMKgIMKgIMKgKiB0byBtYWtlIGl0ICJuZXZlciBmYWlsIi4KPiAtIMKgIMKgIMKg IMKgKiBJdCBtdXN0IGJlIGFibGUgdG8gc3RvcmUgYXQgbGVhc3QgdGhyZXNob2xkcy0+c2l6ZSAt IDEgZW50cmllcy4KPiAtIMKgIMKgIMKgIMKgKi8KPiAtIMKgIMKgIMKgIHN0cnVjdCBtZW1fY2dy b3VwX3RocmVzaG9sZF9hcnkgKl9fdGhyZXNob2xkczsKPiArIMKgIMKgIMKgIHN0cnVjdCBtZW1f Y2dyb3VwX3RocmVzaG9sZHMgdGhyZXNob2xkczsKPgo+IMKgIMKgIMKgIMKgLyogdGhyZXNob2xk cyBmb3IgbWVtK3N3YXAgdXNhZ2UuIFJDVS1wcm90ZWN0ZWQgKi8KPiAtIMKgIMKgIMKgIHN0cnVj dCBtZW1fY2dyb3VwX3RocmVzaG9sZF9hcnkgKm1lbXN3X3RocmVzaG9sZHM7Cj4gLQo+IC0gwqAg wqAgwqAgLyogdGhlIHNhbWUgYXMgX190aHJlc2hvbGRzLCBidXQgZm9yIG1lbXN3X3RocmVzaG9s ZHMgKi8KPiAtIMKgIMKgIMKgIHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZF9hcnkgKl9fbWVt c3dfdGhyZXNob2xkczsKPiArIMKgIMKgIMKgIHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZHMg bWVtc3dfdGhyZXNob2xkczsKPgo+IMKgIMKgIMKgIMKgLyogRm9yIG9vbSBub3RpZmllciBldmVu dCBmZCAqLwo+IMKgIMKgIMKgIMKgc3RydWN0IGxpc3RfaGVhZCBvb21fbm90aWZ5Owo+IEBAIC0z NDM4LDkgKzM0NDAsOSBAQCBzdGF0aWMgdm9pZCBfX21lbV9jZ3JvdXBfdGhyZXNob2xkKHN0cnVj dCBtZW1fY2dyb3VwICptZW1jZywgYm9vbCBzd2FwKQo+Cj4gwqAgwqAgwqAgwqByY3VfcmVhZF9s b2NrKCk7Cj4gwqAgwqAgwqAgwqBpZiAoIXN3YXApCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0 ID0gcmN1X2RlcmVmZXJlbmNlKG1lbWNnLT50aHJlc2hvbGRzKTsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIHQgPSByY3VfZGVyZWZlcmVuY2UobWVtY2ctPnRocmVzaG9sZHMucHJpbWFyeSk7Cj4g wqAgwqAgwqAgwqBlbHNlCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0ID0gcmN1X2RlcmVmZXJl bmNlKG1lbWNnLT5tZW1zd190aHJlc2hvbGRzKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHQg PSByY3VfZGVyZWZlcmVuY2UobWVtY2ctPm1lbXN3X3RocmVzaG9sZHMucHJpbWFyeSk7Cj4KPiDC oCDCoCDCoCDCoGlmICghdCkKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGdvdG8gdW5sb2NrOwo+ IEBAIC0zNTE0LDkxICszNTE2LDc4IEBAIHN0YXRpYyBpbnQgbWVtX2Nncm91cF91c2FnZV9yZWdp c3Rlcl9ldmVudChzdHJ1Y3QgY2dyb3VwICpjZ3JwLAo+IMKgIMKgIMKgIMKgc3RydWN0IGNmdHlw ZSAqY2Z0LCBzdHJ1Y3QgZXZlbnRmZF9jdHggKmV2ZW50ZmQsIGNvbnN0IGNoYXIgKmFyZ3MpCj4g wqB7Cj4gwqAgwqAgwqAgwqBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2cgPSBtZW1fY2dyb3VwX2Zy b21fY29udChjZ3JwKTsKPiAtIMKgIMKgIMKgIHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZF9h cnkgKnRocmVzaG9sZHMsICp0aHJlc2hvbGRzX25ldzsKPiArIMKgIMKgIMKgIHN0cnVjdCBtZW1f Y2dyb3VwX3RocmVzaG9sZHMgKnRocmVzaG9sZHM7Cj4gKyDCoCDCoCDCoCBzdHJ1Y3QgbWVtX2Nn cm91cF90aHJlc2hvbGRfYXJ5ICpuZXc7Cj4gwqAgwqAgwqAgwqBpbnQgdHlwZSA9IE1FTUZJTEVf VFlQRShjZnQtPnByaXZhdGUpOwo+IMKgIMKgIMKgIMKgdTY0IHRocmVzaG9sZCwgdXNhZ2U7Cj4g LSDCoCDCoCDCoCBpbnQgc2l6ZTsKPiAtIMKgIMKgIMKgIGludCBpLCByZXQ7Cj4gKyDCoCDCoCDC oCBpbnQgaSwgc2l6ZSwgcmV0Owo+Cj4gwqAgwqAgwqAgwqByZXQgPSByZXNfY291bnRlcl9tZW1w YXJzZV93cml0ZV9zdHJhdGVneShhcmdzLCAmdGhyZXNob2xkKTsKPiDCoCDCoCDCoCDCoGlmIChy ZXQpCj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gcmV0Owo+Cj4gwqAgwqAgwqAgwqBt dXRleF9sb2NrKCZtZW1jZy0+dGhyZXNob2xkc19sb2NrKTsKPiArCj4gwqAgwqAgwqAgwqBpZiAo dHlwZSA9PSBfTUVNKQo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgdGhyZXNob2xkcyA9IG1lbWNn LT50aHJlc2hvbGRzOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdGhyZXNob2xkcyA9ICZtZW1j Zy0+dGhyZXNob2xkczsKPiDCoCDCoCDCoCDCoGVsc2UgaWYgKHR5cGUgPT0gX01FTVNXQVApCj4g LSDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0aHJlc2hvbGRzID0gbWVtY2ctPm1lbXN3X3RocmVzaG9s ZHM7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0aHJlc2hvbGRzID0gJm1lbWNnLT5tZW1zd190 aHJlc2hvbGRzOwo+IMKgIMKgIMKgIMKgZWxzZQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQlVH KCk7Cj4KPiDCoCDCoCDCoCDCoHVzYWdlID0gbWVtX2Nncm91cF91c2FnZShtZW1jZywgdHlwZSA9 PSBfTUVNU1dBUCk7Cj4KPiDCoCDCoCDCoCDCoC8qIENoZWNrIGlmIGEgdGhyZXNob2xkIGNyb3Nz ZWQgYmVmb3JlIGFkZGluZyBhIG5ldyBvbmUgKi8KPiAtIMKgIMKgIMKgIGlmICh0aHJlc2hvbGRz KQo+ICsgwqAgwqAgwqAgaWYgKHRocmVzaG9sZHMtPnByaW1hcnkpCj4gwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqBfX21lbV9jZ3JvdXBfdGhyZXNob2xkKG1lbWNnLCB0eXBlID09IF9NRU1TV0FQKTsK Pgo+IC0gwqAgwqAgwqAgaWYgKHRocmVzaG9sZHMpCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCBz aXplID0gdGhyZXNob2xkcy0+c2l6ZSArIDE7Cj4gLSDCoCDCoCDCoCBlbHNlCj4gLSDCoCDCoCDC oCDCoCDCoCDCoCDCoCBzaXplID0gMTsKPiArIMKgIMKgIMKgIHNpemUgPSB0aHJlc2hvbGRzLT5w cmltYXJ5ID8gdGhyZXNob2xkcy0+cHJpbWFyeS0+c2l6ZSArIDEgOiAxOwo+Cj4gwqAgwqAgwqAg wqAvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIG5ldyBhcnJheSBvZiB0aHJlc2hvbGRzICovCj4gLSDC oCDCoCDCoCB0aHJlc2hvbGRzX25ldyA9IGttYWxsb2Moc2l6ZW9mKCp0aHJlc2hvbGRzX25ldykg Kwo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc2l6ZSAqIHNpemVvZihzdHJ1 Y3QgbWVtX2Nncm91cF90aHJlc2hvbGQpLAo+ICsgwqAgwqAgwqAgbmV3ID0ga21hbGxvYyhzaXpl b2YoKm5ldykgKyBzaXplICogc2l6ZW9mKHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZCksCj4g wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBHRlBfS0VSTkVMKTsKPiAtIMKgIMKg IMKgIGlmICghdGhyZXNob2xkc19uZXcpIHsKPiArIMKgIMKgIMKgIGlmICghbmV3KSB7Cj4gwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqByZXQgPSAtRU5PTUVNOwo+IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgZ290byB1bmxvY2s7Cj4gwqAgwqAgwqAgwqB9Cj4gLSDCoCDCoCDCoCB0aHJlc2hvbGRzX25l dy0+c2l6ZSA9IHNpemU7Cj4gKyDCoCDCoCDCoCBuZXctPnNpemUgPSBzaXplOwo+Cj4gwqAgwqAg wqAgwqAvKiBDb3B5IHRocmVzaG9sZHMgKGlmIGFueSkgdG8gbmV3IGFycmF5ICovCj4gLSDCoCDC oCDCoCBpZiAodGhyZXNob2xkcykKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIG1lbWNweSh0aHJl c2hvbGRzX25ldy0+ZW50cmllcywgdGhyZXNob2xkcy0+ZW50cmllcywKPiAtIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHRocmVzaG9sZHMtPnNpemUgKgo+ICsg wqAgwqAgwqAgaWYgKHRocmVzaG9sZHMtPnByaW1hcnkpIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKg IMKgIG1lbWNweShuZXctPmVudHJpZXMsIHRocmVzaG9sZHMtPnByaW1hcnktPmVudHJpZXMsIChz aXplIC0gMSkgKgo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgc2l6ZW9mKHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9sZCkpOwo+ICsgwqAgwqAgwqAgfQo+ ICsKPiDCoCDCoCDCoCDCoC8qIEFkZCBuZXcgdGhyZXNob2xkICovCj4gLSDCoCDCoCDCoCB0aHJl c2hvbGRzX25ldy0+ZW50cmllc1tzaXplIC0gMV0uZXZlbnRmZCA9IGV2ZW50ZmQ7Cj4gLSDCoCDC oCDCoCB0aHJlc2hvbGRzX25ldy0+ZW50cmllc1tzaXplIC0gMV0udGhyZXNob2xkID0gdGhyZXNo b2xkOwo+ICsgwqAgwqAgwqAgbmV3LT5lbnRyaWVzW3NpemUgLSAxXS5ldmVudGZkID0gZXZlbnRm ZDsKPiArIMKgIMKgIMKgIG5ldy0+ZW50cmllc1tzaXplIC0gMV0udGhyZXNob2xkID0gdGhyZXNo b2xkOwo+Cj4gwqAgwqAgwqAgwqAvKiBTb3J0IHRocmVzaG9sZHMuIFJlZ2lzdGVyaW5nIG9mIG5l dyB0aHJlc2hvbGQgaXNuJ3QgdGltZS1jcml0aWNhbCAqLwo+IC0gwqAgwqAgwqAgc29ydCh0aHJl c2hvbGRzX25ldy0+ZW50cmllcywgc2l6ZSwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIHNpemVvZihzdHJ1Y3QgbWVtX2Nncm91cF90aHJlc2hvbGQpLAo+ICsgwqAgwqAgwqAg c29ydChuZXctPmVudHJpZXMsIHNpemUsIHNpemVvZihzdHJ1Y3QgbWVtX2Nncm91cF90aHJlc2hv bGQpLAo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY29tcGFyZV90aHJlc2hv bGRzLCBOVUxMKTsKPgo+IMKgIMKgIMKgIMKgLyogRmluZCBjdXJyZW50IHRocmVzaG9sZCAqLwo+ IC0gwqAgwqAgwqAgdGhyZXNob2xkc19uZXctPmN1cnJlbnRfdGhyZXNob2xkID0gLTE7Cj4gKyDC oCDCoCDCoCBuZXctPmN1cnJlbnRfdGhyZXNob2xkID0gLTE7Cj4gwqAgwqAgwqAgwqBmb3IgKGkg PSAwOyBpIDwgc2l6ZTsgaSsrKSB7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpZiAodGhyZXNo b2xkc19uZXctPmVudHJpZXNbaV0udGhyZXNob2xkIDwgdXNhZ2UpIHsKPiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIGlmIChuZXctPmVudHJpZXNbaV0udGhyZXNob2xkIDwgdXNhZ2UpIHsKPiDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCogdGhyZXNob2xkc19uZXctPmN1cnJlbnRfdGhyZXNob2xkIHdpbGwg bm90IGJlIHVzZWQKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKiB1bnRp bCByY3VfYXNzaWduX3BvaW50ZXIoKSwgc28gaXQncyBzYWZlIHRvIGluY3JlbWVudAo+ICsgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAqIG5ldy0+Y3VycmVudF90aHJlc2hvbGQg d2lsbCBub3QgYmUgdXNlZCB1bnRpbAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAqIHJjdV9hc3NpZ25fcG9pbnRlcigpLCBzbyBpdCdzIHNhZmUgdG8gaW5jcmVtZW50Cj4g wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgKiBpdCBoZXJlLgo+IMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICovCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCArK3RocmVzaG9sZHNfbmV3LT5jdXJyZW50X3RocmVzaG9sZDsKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICsrbmV3LT5jdXJyZW50X3RocmVzaG9sZDsKPiDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoH0KPiDCoCDCoCDCoCDCoH0KPgo+IC0gwqAgwqAgwqAgaWYg KHR5cGUgPT0gX01FTSkKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJjdV9hc3NpZ25fcG9pbnRl cihtZW1jZy0+dGhyZXNob2xkcywgdGhyZXNob2xkc19uZXcpOwo+IC0gwqAgwqAgwqAgZWxzZQo+ IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmN1X2Fzc2lnbl9wb2ludGVyKG1lbWNnLT5tZW1zd190 aHJlc2hvbGRzLCB0aHJlc2hvbGRzX25ldyk7Cj4gKyDCoCDCoCDCoCAvKiBGcmVlIG9sZCBzcGFy ZSBidWZmZXIgYW5kIHNhdmUgb2xkIHByaW1hcnkgYnVmZmVyIGFzIHNwYXJlICovCj4gKyDCoCDC oCDCoCBrZnJlZSh0aHJlc2hvbGRzLT5zcGFyZSk7Cj4gKyDCoCDCoCDCoCB0aHJlc2hvbGRzLT5z cGFyZSA9IHRocmVzaG9sZHMtPnByaW1hcnk7Cj4gKwo+ICsgwqAgwqAgwqAgcmN1X2Fzc2lnbl9w b2ludGVyKHRocmVzaG9sZHMtPnByaW1hcnksIG5ldyk7Cj4KPiDCoCDCoCDCoCDCoC8qIFRvIGJl IHN1cmUgdGhhdCBub2JvZHkgdXNlcyB0aHJlc2hvbGRzICovCj4gwqAgwqAgwqAgwqBzeW5jaHJv bml6ZV9yY3UoKTsKPgo+IC0gwqAgwqAgwqAgLyoKPiAtIMKgIMKgIMKgIMKgKiBGcmVlIG9sZCBw cmVhbGxvY2F0ZWQgYnVmZmVyIGFuZCB1c2UgdGhyZXNob2xkcyBhcyBuZXcKPiAtIMKgIMKgIMKg IMKgKiBwcmVhbGxvY2F0ZWQgYnVmZmVyLgo+IC0gwqAgwqAgwqAgwqAqLwo+IC0gwqAgwqAgwqAg aWYgKHR5cGUgPT0gX01FTSkgewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAga2ZyZWUobWVtY2ct Pl9fdGhyZXNob2xkcyk7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCBtZW1jZy0+X190aHJlc2hv bGRzID0gdGhyZXNob2xkczsKPiAtIMKgIMKgIMKgIH0gZWxzZSB7Cj4gLSDCoCDCoCDCoCDCoCDC oCDCoCDCoCBrZnJlZShtZW1jZy0+X19tZW1zd190aHJlc2hvbGRzKTsKPiAtIMKgIMKgIMKgIMKg IMKgIMKgIMKgIG1lbWNnLT5fX21lbXN3X3RocmVzaG9sZHMgPSB0aHJlc2hvbGRzOwo+IC0gwqAg wqAgwqAgfQo+IMKgdW5sb2NrOgo+IMKgIMKgIMKgIMKgbXV0ZXhfdW5sb2NrKCZtZW1jZy0+dGhy ZXNob2xkc19sb2NrKTsKPgo+IEBAIC0zNjA5LDE3ICszNTk4LDE3IEBAIHN0YXRpYyB2b2lkIG1l bV9jZ3JvdXBfdXNhZ2VfdW5yZWdpc3Rlcl9ldmVudChzdHJ1Y3QgY2dyb3VwICpjZ3JwLAo+IMKg IMKgIMKgIMKgc3RydWN0IGNmdHlwZSAqY2Z0LCBzdHJ1Y3QgZXZlbnRmZF9jdHggKmV2ZW50ZmQp Cj4gwqB7Cj4gwqAgwqAgwqAgwqBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2cgPSBtZW1fY2dyb3Vw X2Zyb21fY29udChjZ3JwKTsKPiAtIMKgIMKgIMKgIHN0cnVjdCBtZW1fY2dyb3VwX3RocmVzaG9s ZF9hcnkgKnRocmVzaG9sZHMsICp0aHJlc2hvbGRzX25ldzsKPiArIMKgIMKgIMKgIHN0cnVjdCBt ZW1fY2dyb3VwX3RocmVzaG9sZHMgKnRocmVzaG9sZHM7Cj4gKyDCoCDCoCDCoCBzdHJ1Y3QgbWVt X2Nncm91cF90aHJlc2hvbGRfYXJ5ICpuZXc7Cj4gwqAgwqAgwqAgwqBpbnQgdHlwZSA9IE1FTUZJ TEVfVFlQRShjZnQtPnByaXZhdGUpOwo+IMKgIMKgIMKgIMKgdTY0IHVzYWdlOwo+IC0gwqAgwqAg wqAgaW50IHNpemUgPSAwOwo+IC0gwqAgwqAgwqAgaW50IGksIGo7Cj4gKyDCoCDCoCDCoCBpbnQg aSwgaiwgc2l6ZTsKPgo+IMKgIMKgIMKgIMKgbXV0ZXhfbG9jaygmbWVtY2ctPnRocmVzaG9sZHNf bG9jayk7Cj4gwqAgwqAgwqAgwqBpZiAodHlwZSA9PSBfTUVNKQo+IC0gwqAgwqAgwqAgwqAgwqAg wqAgwqAgdGhyZXNob2xkcyA9IG1lbWNnLT50aHJlc2hvbGRzOwo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgdGhyZXNob2xkcyA9ICZtZW1jZy0+dGhyZXNob2xkczsKPiDCoCDCoCDCoCDCoGVsc2Ug aWYgKHR5cGUgPT0gX01FTVNXQVApCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0aHJlc2hvbGRz ID0gbWVtY2ctPm1lbXN3X3RocmVzaG9sZHM7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0aHJl c2hvbGRzID0gJm1lbWNnLT5tZW1zd190aHJlc2hvbGRzOwo+IMKgIMKgIMKgIMKgZWxzZQo+IMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgQlVHKCk7Cj4KPiBAQCAtMzYzNSw1MyArMzYyNCw0NSBAQCBz dGF0aWMgdm9pZCBtZW1fY2dyb3VwX3VzYWdlX3VucmVnaXN0ZXJfZXZlbnQoc3RydWN0IGNncm91 cCAqY2dycCwKPiDCoCDCoCDCoCDCoF9fbWVtX2Nncm91cF90aHJlc2hvbGQobWVtY2csIHR5cGUg PT0gX01FTVNXQVApOwo+Cj4gwqAgwqAgwqAgwqAvKiBDYWxjdWxhdGUgbmV3IG51bWJlciBvZiB0 aHJlc2hvbGQgKi8KPiAtIMKgIMKgIMKgIGZvciAoaSA9IDA7IGkgPCB0aHJlc2hvbGRzLT5zaXpl OyBpKyspIHsKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmICh0aHJlc2hvbGRzLT5lbnRyaWVz W2ldLmV2ZW50ZmQgIT0gZXZlbnRmZCkKPiArIMKgIMKgIMKgIHNpemUgPSAwOwo+ICsgwqAgwqAg wqAgZm9yIChpID0gMDsgaSA8IHRocmVzaG9sZHMtPnByaW1hcnktPnNpemU7IGkrKykgewo+ICsg wqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKHRocmVzaG9sZHMtPnByaW1hcnktPmVudHJpZXNbaV0u ZXZlbnRmZCAhPSBldmVudGZkKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg c2l6ZSsrOwo+IMKgIMKgIMKgIMKgfQo+Cj4gLSDCoCDCoCDCoCAvKiBVc2UgcHJlYWxsb2NhdGVk IGJ1ZmZlciBmb3IgbmV3IGFycmF5IG9mIHRocmVzaG9sZHMgKi8KPiAtIMKgIMKgIMKgIGlmICh0 eXBlID09IF9NRU0pCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0aHJlc2hvbGRzX25ldyA9IG1l bWNnLT5fX3RocmVzaG9sZHM7Cj4gLSDCoCDCoCDCoCBlbHNlCj4gLSDCoCDCoCDCoCDCoCDCoCDC oCDCoCB0aHJlc2hvbGRzX25ldyA9IG1lbWNnLT5fX21lbXN3X3RocmVzaG9sZHM7Cj4gKyDCoCDC oCDCoCBuZXcgPSB0aHJlc2hvbGRzLT5zcGFyZTsKPgo+IMKgIMKgIMKgIMKgLyogU2V0IHRocmVz aG9sZHMgYXJyYXkgdG8gTlVMTCBpZiB3ZSBkb24ndCBoYXZlIHRocmVzaG9sZHMgKi8KPiDCoCDC oCDCoCDCoGlmICghc2l6ZSkgewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAga2ZyZWUodGhyZXNo b2xkc19uZXcpOwo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgdGhyZXNob2xkc19uZXcgPSBOVUxM Owo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAga2ZyZWUobmV3KTsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIG5ldyA9IE5VTEw7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBnb3RvIHN3YXBfYnVm ZmVyczsKPiDCoCDCoCDCoCDCoH0KPgo+IC0gwqAgwqAgwqAgdGhyZXNob2xkc19uZXctPnNpemUg PSBzaXplOwo+ICsgwqAgwqAgwqAgbmV3LT5zaXplID0gc2l6ZTsKPgo+IMKgIMKgIMKgIMKgLyog Q29weSB0aHJlc2hvbGRzIGFuZCBmaW5kIGN1cnJlbnQgdGhyZXNob2xkICovCj4gLSDCoCDCoCDC oCB0aHJlc2hvbGRzX25ldy0+Y3VycmVudF90aHJlc2hvbGQgPSAtMTsKPiAtIMKgIMKgIMKgIGZv ciAoaSA9IDAsIGogPSAwOyBpIDwgdGhyZXNob2xkcy0+c2l6ZTsgaSsrKSB7Cj4gLSDCoCDCoCDC oCDCoCDCoCDCoCDCoCBpZiAodGhyZXNob2xkcy0+ZW50cmllc1tpXS5ldmVudGZkID09IGV2ZW50 ZmQpCj4gKyDCoCDCoCDCoCBuZXctPmN1cnJlbnRfdGhyZXNob2xkID0gLTE7Cj4gKyDCoCDCoCDC oCBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHRocmVzaG9sZHMtPnByaW1hcnktPnNpemU7IGkrKykg ewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKHRocmVzaG9sZHMtPnByaW1hcnktPmVudHJp ZXNbaV0uZXZlbnRmZCA9PSBldmVudGZkKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgY29udGludWU7Cj4KPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHRocmVzaG9sZHNfbmV3 LT5lbnRyaWVzW2pdID0gdGhyZXNob2xkcy0+ZW50cmllc1tpXTsKPiAtIMKgIMKgIMKgIMKgIMKg IMKgIMKgIGlmICh0aHJlc2hvbGRzX25ldy0+ZW50cmllc1tqXS50aHJlc2hvbGQgPCB1c2FnZSkg ewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgbmV3LT5lbnRyaWVzW2pdID0gdGhyZXNob2xkcy0+ cHJpbWFyeS0+ZW50cmllc1tpXTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmIChuZXctPmVu dHJpZXNbal0udGhyZXNob2xkIDwgdXNhZ2UpIHsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoC8qCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCogdGhy ZXNob2xkc19uZXctPmN1cnJlbnRfdGhyZXNob2xkIHdpbGwgbm90IGJlIHVzZWQKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKiBuZXctPmN1cnJlbnRfdGhyZXNob2xkIHdp bGwgbm90IGJlIHVzZWQKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAqIHVu dGlsIHJjdV9hc3NpZ25fcG9pbnRlcigpLCBzbyBpdCdzIHNhZmUgdG8gaW5jcmVtZW50Cj4gwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgKiBpdCBoZXJlLgo+IMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICovCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCArK3RocmVzaG9sZHNfbmV3LT5jdXJyZW50X3RocmVzaG9sZDsKPiArIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICsrbmV3LT5jdXJyZW50X3RocmVzaG9sZDsKPiDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoH0KPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGorKzsKPiDCoCDC oCDCoCDCoH0KPgo+IMKgc3dhcF9idWZmZXJzOgo+IC0gwqAgwqAgwqAgLyogU3dhcCB0aHJlc2hv bGRzIGFycmF5IGFuZCBwcmVhbGxvY2F0ZWQgYnVmZmVyICovCj4gLSDCoCDCoCDCoCBpZiAodHlw ZSA9PSBfTUVNKSB7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCBtZW1jZy0+X190aHJlc2hvbGRz ID0gdGhyZXNob2xkczsKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJjdV9hc3NpZ25fcG9pbnRl cihtZW1jZy0+dGhyZXNob2xkcywgdGhyZXNob2xkc19uZXcpOwo+IC0gwqAgwqAgwqAgfSBlbHNl IHsKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIG1lbWNnLT5fX21lbXN3X3RocmVzaG9sZHMgPSB0 aHJlc2hvbGRzOwo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmN1X2Fzc2lnbl9wb2ludGVyKG1l bWNnLT5tZW1zd190aHJlc2hvbGRzLCB0aHJlc2hvbGRzX25ldyk7Cj4gLSDCoCDCoCDCoCB9Cj4g KyDCoCDCoCDCoCAvKiBTd2FwIHByaW1hcnkgYW5kIHNwYXJlIGFycmF5ICovCj4gKyDCoCDCoCDC oCB0aHJlc2hvbGRzLT5zcGFyZSA9IHRocmVzaG9sZHMtPnByaW1hcnk7Cj4gKyDCoCDCoCDCoCBy Y3VfYXNzaWduX3BvaW50ZXIodGhyZXNob2xkcy0+cHJpbWFyeSwgbmV3KTsKPgo+IMKgIMKgIMKg IMKgLyogVG8gYmUgc3VyZSB0aGF0IG5vYm9keSB1c2VzIHRocmVzaG9sZHMgKi8KPiDCoCDCoCDC oCDCoHN5bmNocm9uaXplX3JjdSgpOwo+IC0tCj4gMS43LjAuNAo+Cj4K -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org