From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 18 Jul 2005 13:32:57 +0100 (IST) From: Mel Gorman Subject: Re: [Fwd: [PATCH 2/4] cpusets new __GFP_HARDWALL flag] In-Reply-To: <20050714040613.10b244ee.pj@sgi.com> Message-ID: References: <1121101013.15095.19.camel@localhost> <42D2AE0F.8020809@austin.ibm.com> <20050711195540.681182d0.pj@sgi.com> <20050712132940.148a9490.pj@sgi.com> <20050714040613.10b244ee.pj@sgi.com> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-913833367-1386229017-1121689977=:2899" Sender: owner-linux-mm@kvack.org Return-Path: To: Paul Jackson Cc: jschopp@austin.ibm.com, haveblue@us.ibm.com, Linux Memory Management List List-ID: ---913833367-1386229017-1121689977=:2899 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 14 Jul 2005, Paul Jackson wrote: > Mel wrote: > > Well, what would people feel is obvious? > > The lines that you (Mel) add that I am puzzling over ways to clarify are > these added lines in gfp.h: > > +#define __GFP_KERNRCLM 0x20000u /* Kernel page that is easily reclaimable */ > +#define __GFP_USERRCLM 0x40000u /* User is a userspace user */ > > +#define __GFP_TYPE_SHIFT 17 /* Translate RCLM flags to array index */ > > and perhaps these added lines in mmzone.h: > > +/* Page allocations are divided into these types */ > +#define ALLOC_TYPES 4 > +#define ALLOC_KERNNORCLM 0 > +#define ALLOC_KERNRCLM 1 > +#define ALLOC_USERRCLM 2 > +#define ALLOC_FALLBACK 3 > + > +/* Number of bits required to encode the type */ > +#define BITS_PER_ALLOC_TYPE 2 > > It didn't jump out at me, first pass, that these two GFP bits > were a 2 bit field, not 2 separate and independent bits. The name > GFP_TYPE_SHIFT is vague. There are some redundant (interdependent) > defines here. > > How about (just brainstorming here) something like the following: > That makes sense to me. Taking into account other threads, attached are patches 01 and 02 from Joels patchset with the different namings and comments. The main changes are the renaming of __GFP_USERRCLM to __GFP_USER to be neutral and comments explaining how the RCLM flags are tied together. Is this any better? ---913833367-1386229017-1121689977=:2899 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=01_gfp_flags Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: 01_gfp_flags Content-Disposition: attachment; filename=01_gfp_flags ZGlmZiAtcnVwIC1YIC91c3Ivc3JjL3BhdGNoc2V0LTAuNS9iaW4vL2RvbnRk aWZmIGxpbnV4LTIuNi4xMy1yYzMtbWhwMS9mcy9idWZmZXIuYyBsaW51eC0y LjYuMTMtcmMzLW1ocDEtMDFfZ2ZwX2ZsYWdzL2ZzL2J1ZmZlci5jDQotLS0g bGludXgtMi42LjEzLXJjMy1taHAxL2ZzL2J1ZmZlci5jCTIwMDUtMDctMTMg MDU6NDY6NDYuMDAwMDAwMDAwICswMTAwDQorKysgbGludXgtMi42LjEzLXJj My1taHAxLTAxX2dmcF9mbGFncy9mcy9idWZmZXIuYwkyMDA1LTA3LTE4IDEx OjQzOjExLjAwMDAwMDAwMCArMDEwMA0KQEAgLTExMTksNyArMTExOSw4IEBA IGdyb3dfZGV2X3BhZ2Uoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwNCiAJ c3RydWN0IHBhZ2UgKnBhZ2U7DQogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7 DQogDQotCXBhZ2UgPSBmaW5kX29yX2NyZWF0ZV9wYWdlKGlub2RlLT5pX21h cHBpbmcsIGluZGV4LCBHRlBfTk9GUyk7DQorCXBhZ2UgPSBmaW5kX29yX2Ny ZWF0ZV9wYWdlKGlub2RlLT5pX21hcHBpbmcsIGluZGV4LA0KKwkJCQkgICBH RlBfTk9GUyB8IF9fR0ZQX1VTRVIpOw0KIAlpZiAoIXBhZ2UpDQogCQlyZXR1 cm4gTlVMTDsNCiANCkBAIC0zMDQ0LDcgKzMwNDUsOCBAQCBzdGF0aWMgdm9p ZCByZWNhbGNfYmhfc3RhdGUodm9pZCkNCiAJDQogc3RydWN0IGJ1ZmZlcl9o ZWFkICphbGxvY19idWZmZXJfaGVhZCh1bnNpZ25lZCBpbnQgX19ub2Nhc3Qg Z2ZwX2ZsYWdzKQ0KIHsNCi0Jc3RydWN0IGJ1ZmZlcl9oZWFkICpyZXQgPSBr bWVtX2NhY2hlX2FsbG9jKGJoX2NhY2hlcCwgZ2ZwX2ZsYWdzKTsNCisJc3Ry dWN0IGJ1ZmZlcl9oZWFkICpyZXQgPSBrbWVtX2NhY2hlX2FsbG9jKGJoX2Nh Y2hlcCwNCisJCQkJCQkgICBnZnBfZmxhZ3N8X19HRlBfS0VSTlJDTE0pOw0K IAlpZiAocmV0KSB7DQogCQlwcmVlbXB0X2Rpc2FibGUoKTsNCiAJCV9fZ2V0 X2NwdV92YXIoYmhfYWNjb3VudGluZykubnIrKzsNCmRpZmYgLXJ1cCAtWCAv dXNyL3NyYy9wYXRjaHNldC0wLjUvYmluLy9kb250ZGlmZiBsaW51eC0yLjYu MTMtcmMzLW1ocDEvZnMvZGNhY2hlLmMgbGludXgtMi42LjEzLXJjMy1taHAx LTAxX2dmcF9mbGFncy9mcy9kY2FjaGUuYw0KLS0tIGxpbnV4LTIuNi4xMy1y YzMtbWhwMS9mcy9kY2FjaGUuYwkyMDA1LTA3LTEzIDA1OjQ2OjQ2LjAwMDAw MDAwMCArMDEwMA0KKysrIGxpbnV4LTIuNi4xMy1yYzMtbWhwMS0wMV9nZnBf ZmxhZ3MvZnMvZGNhY2hlLmMJMjAwNS0wNy0xOCAxMTo0MzoxMS4wMDAwMDAw MDAgKzAxMDANCkBAIC03MTksNyArNzE5LDcgQEAgc3RydWN0IGRlbnRyeSAq ZF9hbGxvYyhzdHJ1Y3QgZGVudHJ5ICogcA0KIAlzdHJ1Y3QgZGVudHJ5ICpk ZW50cnk7DQogCWNoYXIgKmRuYW1lOw0KIA0KLQlkZW50cnkgPSBrbWVtX2Nh Y2hlX2FsbG9jKGRlbnRyeV9jYWNoZSwgR0ZQX0tFUk5FTCk7IA0KKwlkZW50 cnkgPSBrbWVtX2NhY2hlX2FsbG9jKGRlbnRyeV9jYWNoZSwgR0ZQX0tFUk5F THxfX0dGUF9LRVJOUkNMTSk7DQogCWlmICghZGVudHJ5KQ0KIAkJcmV0dXJu IE5VTEw7DQogDQpkaWZmIC1ydXAgLVggL3Vzci9zcmMvcGF0Y2hzZXQtMC41 L2Jpbi8vZG9udGRpZmYgbGludXgtMi42LjEzLXJjMy1taHAxL2ZzL2V4dDIv c3VwZXIuYyBsaW51eC0yLjYuMTMtcmMzLW1ocDEtMDFfZ2ZwX2ZsYWdzL2Zz L2V4dDIvc3VwZXIuYw0KLS0tIGxpbnV4LTIuNi4xMy1yYzMtbWhwMS9mcy9l eHQyL3N1cGVyLmMJMjAwNS0wNy0xMyAwNTo0Njo0Ni4wMDAwMDAwMDAgKzAx MDANCisrKyBsaW51eC0yLjYuMTMtcmMzLW1ocDEtMDFfZ2ZwX2ZsYWdzL2Zz L2V4dDIvc3VwZXIuYwkyMDA1LTA3LTE4IDExOjQzOjExLjAwMDAwMDAwMCAr MDEwMA0KQEAgLTEzOCw3ICsxMzgsOCBAQCBzdGF0aWMga21lbV9jYWNoZV90 ICogZXh0Ml9pbm9kZV9jYWNoZXA7DQogc3RhdGljIHN0cnVjdCBpbm9kZSAq ZXh0Ml9hbGxvY19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KIHsN CiAJc3RydWN0IGV4dDJfaW5vZGVfaW5mbyAqZWk7DQotCWVpID0gKHN0cnVj dCBleHQyX2lub2RlX2luZm8gKilrbWVtX2NhY2hlX2FsbG9jKGV4dDJfaW5v ZGVfY2FjaGVwLCBTTEFCX0tFUk5FTCk7DQorCWVpID0gKHN0cnVjdCBleHQy X2lub2RlX2luZm8gKilrbWVtX2NhY2hlX2FsbG9jKGV4dDJfaW5vZGVfY2Fj aGVwLA0KKwkJCQkJCVNMQUJfS0VSTkVMfF9fR0ZQX0tFUk5SQ0xNKTsNCiAJ aWYgKCFlaSkNCiAJCXJldHVybiBOVUxMOw0KICNpZmRlZiBDT05GSUdfRVhU Ml9GU19QT1NJWF9BQ0wNCmRpZmYgLXJ1cCAtWCAvdXNyL3NyYy9wYXRjaHNl dC0wLjUvYmluLy9kb250ZGlmZiBsaW51eC0yLjYuMTMtcmMzLW1ocDEvZnMv ZXh0My9zdXBlci5jIGxpbnV4LTIuNi4xMy1yYzMtbWhwMS0wMV9nZnBfZmxh Z3MvZnMvZXh0My9zdXBlci5jDQotLS0gbGludXgtMi42LjEzLXJjMy1taHAx L2ZzL2V4dDMvc3VwZXIuYwkyMDA1LTA3LTEzIDA1OjQ2OjQ2LjAwMDAwMDAw MCArMDEwMA0KKysrIGxpbnV4LTIuNi4xMy1yYzMtbWhwMS0wMV9nZnBfZmxh Z3MvZnMvZXh0My9zdXBlci5jCTIwMDUtMDctMTggMTE6NDM6MTEuMDAwMDAw MDAwICswMTAwDQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0YXRpYyBzdHJ1Y3Qg aW5vZGUgKmV4dDNfYWxsb2NfaW5vZGUoc3QNCiB7DQogCXN0cnVjdCBleHQz X2lub2RlX2luZm8gKmVpOw0KIA0KLQllaSA9IGttZW1fY2FjaGVfYWxsb2Mo ZXh0M19pbm9kZV9jYWNoZXAsIFNMQUJfTk9GUyk7DQorCWVpID0ga21lbV9j YWNoZV9hbGxvYyhleHQzX2lub2RlX2NhY2hlcCwgU0xBQl9OT0ZTfF9fR0ZQ X0tFUk5SQ0xNKTsNCiAJaWYgKCFlaSkNCiAJCXJldHVybiBOVUxMOw0KICNp ZmRlZiBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wNCmRpZmYgLXJ1cCAtWCAv dXNyL3NyYy9wYXRjaHNldC0wLjUvYmluLy9kb250ZGlmZiBsaW51eC0yLjYu MTMtcmMzLW1ocDEvZnMvbnRmcy9pbm9kZS5jIGxpbnV4LTIuNi4xMy1yYzMt bWhwMS0wMV9nZnBfZmxhZ3MvZnMvbnRmcy9pbm9kZS5jDQotLS0gbGludXgt Mi42LjEzLXJjMy1taHAxL2ZzL250ZnMvaW5vZGUuYwkyMDA1LTA3LTEzIDA1 OjQ2OjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGxpbnV4LTIuNi4xMy1yYzMt bWhwMS0wMV9nZnBfZmxhZ3MvZnMvbnRmcy9pbm9kZS5jCTIwMDUtMDctMTgg MTE6NDM6MTEuMDAwMDAwMDAwICswMTAwDQpAQCAtMzE4LDcgKzMxOCw3IEBA IHN0cnVjdCBpbm9kZSAqbnRmc19hbGxvY19iaWdfaW5vZGUoc3RydWMNCiAN CiAJbnRmc19kZWJ1ZygiRW50ZXJpbmcuIik7DQogCW5pID0gKG50ZnNfaW5v ZGUgKilrbWVtX2NhY2hlX2FsbG9jKG50ZnNfYmlnX2lub2RlX2NhY2hlLA0K LQkJCVNMQUJfTk9GUyk7DQorCQkJCQkgICAgU0xBQl9OT0ZTfF9fR0ZQX0tF Uk5SQ0xNKTsNCiAJaWYgKGxpa2VseShuaSAhPSBOVUxMKSkgew0KIAkJbmkt PnN0YXRlID0gMDsNCiAJCXJldHVybiBWRlNfSShuaSk7DQpAQCAtMzQzLDcg KzM0Myw4IEBAIHN0YXRpYyBpbmxpbmUgbnRmc19pbm9kZSAqbnRmc19hbGxv Y19leHQNCiAJbnRmc19pbm9kZSAqbmk7DQogDQogCW50ZnNfZGVidWcoIkVu dGVyaW5nLiIpOw0KLQluaSA9IChudGZzX2lub2RlICopa21lbV9jYWNoZV9h bGxvYyhudGZzX2lub2RlX2NhY2hlLCBTTEFCX05PRlMpOw0KKwluaSA9IChu dGZzX2lub2RlICopa21lbV9jYWNoZV9hbGxvYyhudGZzX2lub2RlX2NhY2hl LA0KKwkJCQkJICAgIFNMQUJfTk9GU3xfX0dGUF9LRVJOUkNMTSk7DQogCWlm IChsaWtlbHkobmkgIT0gTlVMTCkpIHsNCiAJCW5pLT5zdGF0ZSA9IDA7DQog CQlyZXR1cm4gbmk7DQpkaWZmIC1ydXAgLVggL3Vzci9zcmMvcGF0Y2hzZXQt MC41L2Jpbi8vZG9udGRpZmYgbGludXgtMi42LjEzLXJjMy1taHAxL2luY2x1 ZGUvbGludXgvZ2ZwLmggbGludXgtMi42LjEzLXJjMy1taHAxLTAxX2dmcF9m bGFncy9pbmNsdWRlL2xpbnV4L2dmcC5oDQotLS0gbGludXgtMi42LjEzLXJj My1taHAxL2luY2x1ZGUvbGludXgvZ2ZwLmgJMjAwNS0wNy0xMyAwNTo0Njo0 Ni4wMDAwMDAwMDAgKzAxMDANCisrKyBsaW51eC0yLjYuMTMtcmMzLW1ocDEt MDFfZ2ZwX2ZsYWdzL2luY2x1ZGUvbGludXgvZ2ZwLmgJMjAwNS0wNy0xOCAx MTo0MzoxMS4wMDAwMDAwMDAgKzAxMDANCkBAIC00MSwyMSArNDEsMzcgQEAg c3RydWN0IHZtX2FyZWFfc3RydWN0Ow0KICNkZWZpbmUgX19HRlBfTk9NRU1B TExPQyAweDEwMDAwdSAvKiBEb24ndCB1c2UgZW1lcmdlbmN5IHJlc2VydmVz ICovDQogI2RlZmluZSBfX0dGUF9OT1JFQ0xBSU0gIDB4MjAwMDB1IC8qIE5v IHJlYWx5IHpvbmUgcmVjbGFpbSBkdXJpbmcgYWxsb2NhdGlvbiAqLw0KIA0K LSNkZWZpbmUgX19HRlBfQklUU19TSElGVCAyMAkvKiBSb29tIGZvciAyMCBf X0dGUF9GT08gYml0cyAqLw0KKy8qDQorICogQWxsb2NhdGlvbiB0eXBlIG1v ZGlmaWVycyAtIEdyb3VwIHRoZSBhbGxvY2F0aW9uIHR5cGVzIHRvZ2V0aGVy IGlmIHBvc3NpYmxlDQorICoNCisgKiBfX0dGUF9VU0VSOiBBbGxvY2F0aW9u IGZvciBhIHVzZXIgcGFnZSBvciBhIGJ1ZmZlciBwYWdlLg0KKyAqDQorICog X19HRlBfS0VSTlJDTE06IEtlcm5lbCBhbGxvY2F0aW9uIHRoYXQgaXMgZWl0 aGVyIHZlcnkgc2hvcnQtbGl2ZWQgb3IgDQorICogCQlyZWNsYWltYWJsZSBs aWtlIGlub2RlIGNhY2hlcw0KKyAqDQorICogX19HRlBfUkNMTV9CSVRTOiBT dW0gb2YgYWxsIHRoZSByZWNsYWltYWJsZSBiaXRzLg0KKyAqLw0KKwkJCQkg ICAgIA0KKyNkZWZpbmUgX19HRlBfVVNFUiAgICAgMHg0MDAwMHUgLyogRWFz aWx5IHJlY2xhaW1hYmxlIHVzZXJzcGFjZSBwYWdlICovDQorI2RlZmluZSBf X0dGUF9LRVJOUkNMTSAweDgwMDAwdSAvKiBLZXJuZWwgcGFnZSB0aGF0IGlz IGVhc2lseSByZWNsYWltYWJsZSAqLw0KKyNkZWZpbmUgX19HRlBfUkNMTV9C SVRTIChfX0dGUF9VU0VSfF9fR0ZQX0tFUk5SQ0xNKSANCisNCisjZGVmaW5l IF9fR0ZQX0JJVFNfU0hJRlQgMjEJLyogUm9vbSBmb3IgMjEgX19HRlBfRk9P IGJpdHMgKi8NCiAjZGVmaW5lIF9fR0ZQX0JJVFNfTUFTSyAoKDEgPDwgX19H RlBfQklUU19TSElGVCkgLSAxKQ0KIA0KIC8qIGlmIHlvdSBmb3JnZXQgdG8g YWRkIHRoZSBiaXRtYXNrIGhlcmUga2VybmVsIHdpbGwgY3Jhc2gsIHBlcmlv ZCAqLw0KICNkZWZpbmUgR0ZQX0xFVkVMX01BU0sgKF9fR0ZQX1dBSVR8X19H RlBfSElHSHxfX0dGUF9JT3xfX0dGUF9GU3wgXA0KIAkJCV9fR0ZQX0NPTER8 X19HRlBfTk9XQVJOfF9fR0ZQX1JFUEVBVHwgXA0KIAkJCV9fR0ZQX05PRkFJ THxfX0dGUF9OT1JFVFJZfF9fR0ZQX05PX0dST1d8X19HRlBfQ09NUHwgXA0K LQkJCV9fR0ZQX05PTUVNQUxMT0N8X19HRlBfTk9SRUNMQUlNKQ0KKwkJCV9f R0ZQX05PTUVNQUxMT0N8X19HRlBfS0VSTlJDTE18X19HRlBfVVNFUikNCiAN CiAjZGVmaW5lIEdGUF9BVE9NSUMJKF9fR0ZQX0hJR0gpDQogI2RlZmluZSBH RlBfTk9JTwkoX19HRlBfV0FJVCkNCiAjZGVmaW5lIEdGUF9OT0ZTCShfX0dG UF9XQUlUIHwgX19HRlBfSU8pDQogI2RlZmluZSBHRlBfS0VSTkVMCShfX0dG UF9XQUlUIHwgX19HRlBfSU8gfCBfX0dGUF9GUykNCi0jZGVmaW5lIEdGUF9V U0VSCShfX0dGUF9XQUlUIHwgX19HRlBfSU8gfCBfX0dGUF9GUykNCi0jZGVm aW5lIEdGUF9ISUdIVVNFUgkoX19HRlBfV0FJVCB8IF9fR0ZQX0lPIHwgX19H RlBfRlMgfCBfX0dGUF9ISUdITUVNKQ0KKyNkZWZpbmUgR0ZQX1VTRVIJKF9f R0ZQX1dBSVQgfCBfX0dGUF9JTyB8IF9fR0ZQX0ZTIHwgX19HRlBfVVNFUikN CisjZGVmaW5lIEdGUF9ISUdIVVNFUgkoX19HRlBfV0FJVCB8IF9fR0ZQX0lP IHwgX19HRlBfRlMgfCBfX0dGUF9ISUdITUVNIHwgXA0KKwkJCSBfX0dGUF9V U0VSKQ0KIA0KIC8qIEZsYWcgLSBpbmRpY2F0ZXMgdGhhdCB0aGUgYnVmZmVy IHdpbGwgYmUgc3VpdGFibGUgZm9yIERNQS4gIElnbm9yZWQgb24gc29tZQ0K ICAgIHBsYXRmb3JtcywgdXNlZCBhcyBhcHByb3ByaWF0ZSBvbiBvdGhlcnMg Ki8NCg== ---913833367-1386229017-1121689977=:2899 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=02_more_defines Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: 02_more_defines Content-Disposition: attachment; filename=02_more_defines ZGlmZiAtcnVwIC1YIC91c3Ivc3JjL3BhdGNoc2V0LTAuNS9iaW4vL2RvbnRk aWZmIGxpbnV4LTIuNi4xMy1yYzMtbWhwMS0wMV9nZnBfZmxhZ3MvaW5jbHVk ZS9saW51eC9tbXpvbmUuaCBsaW51eC0yLjYuMTMtcmMzLW1ocDEtMDJfbW9y ZV9kZWZpbmVzL2luY2x1ZGUvbGludXgvbW16b25lLmgNCi0tLSBsaW51eC0y LjYuMTMtcmMzLW1ocDEtMDFfZ2ZwX2ZsYWdzL2luY2x1ZGUvbGludXgvbW16 b25lLmgJMjAwNS0wNy0xOCAxMjowNToyNy4wMDAwMDAwMDAgKzAxMDANCisr KyBsaW51eC0yLjYuMTMtcmMzLW1ocDEtMDJfbW9yZV9kZWZpbmVzL2luY2x1 ZGUvbGludXgvbW16b25lLmgJMjAwNS0wNy0xOCAxMjoyNDozMy4wMDAwMDAw MDAgKzAxMDANCkBAIC0yMSw2ICsyMSwyMCBAQA0KICNkZWZpbmUgTUFYX09S REVSIENPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSDQogI2VuZGlmDQogDQor LyoNCisgKiBSZWR1Y2UgYnVkZHkgaGVhcCBmcmFnbWVudGF0aW9uIGJ5IGtl ZXBpbmcgcGFnZXMgd2l0aCBzaW1pbGFyDQorICogcmVjbGFpbWFiaWxpdHkg YmVoYXZpb3IgdG9nZXRoZXIuICBUaGUgdHdvIGJpdCBmaWVsZCBfX0dGUF9S RUNMQUlNQklUUw0KKyAqIGVudW1lcmF0ZXMgdGhlIGZvbGxvd2luZyA0IGtp bmRzIG9mIHBhZ2UgcmVjbGFpbWFiaWxpdHk6DQorICovDQorI2RlZmluZSBS Q0xNX1RZUEVTIDQNCisjZGVmaW5lIFJDTE1fTk9SQ0xNIDANCisjZGVmaW5l IFJDTE1fVVNFUiAxDQorI2RlZmluZSBSQ0xNX0tFUk4gMg0KKyNkZWZpbmUg UkNMTV9GQUxMQkFDSyAzDQorDQorI2RlZmluZSBSQ0xNX1NISUZUIDE3IC8q IFNoaWZ0IF9fR0ZQX1JFQ0xBSU1CSVRTIHRvIFJDTE1fKiB2YWx1ZXMgKi8N CisjZGVmaW5lIEJJVFNfUEVSX1JDTE1fVFlQRSAyDQorDQogc3RydWN0IGZy ZWVfYXJlYSB7DQogCXN0cnVjdCBsaXN0X2hlYWQJZnJlZV9saXN0Ow0KIAl1 bnNpZ25lZCBsb25nCQlucl9mcmVlOw0KQEAgLTEzNyw4ICsxNTEsNDcgQEAg c3RydWN0IHpvbmUgew0KIAkgKiBmcmVlIGFyZWFzIG9mIGRpZmZlcmVudCBz aXplcw0KIAkgKi8NCiAJc3BpbmxvY2tfdAkJbG9jazsNCi0Jc3RydWN0IGZy ZWVfYXJlYQlmcmVlX2FyZWFbTUFYX09SREVSXTsNCiANCisJLyoNCisJICog ZnJlZV9hcmVhIHRvIGJlIHJlbW92ZWQgaW4gbGF0ZXIgcGF0Y2ggIGFzIGl0 IGlzIHJlcGxhY2VkIGJ5DQorCSAqIGZyZWVfYXJlYV9saXN0DQorCSAqLw0K KwlzdHJ1Y3QgZnJlZV9hcmVhICAgICAgICBmcmVlX2FyZWFbTUFYX09SREVS XTsNCisNCisjaWZuZGVmIENPTkZJR19TUEFSU0VNRU0NCisJLyoNCisJICog VGhlIG1hcCB0cmFja3Mgd2hhdCBlYWNoIDJeTUFYX09SREVSLTEgc2l6ZWQg YmxvY2sgaXMgYmVpbmcgdXNlZCBmb3IuDQorCSAqIEVhY2ggMl5NQVhfT1JE RVIgYmxvY2sgaGF2ZSBwYWdlcyBoYXMgQklUU19QRVJfUkNMTV9UWVBFIGJp dHMgaW4NCisJICogdGhpcyBtYXAgdG8gcmVtZW1iZXIgd2hhdCB0aGUgYmxv Y2sgaXMgZm9yLiBXaGVuIGEgcGFnZSBpcyBmcmVlZCwNCisJICogaXQncyBp bmRleCB3aXRoaW4gdGhpcyBiaXRtYXAgaXMgY2FsY3VsYXRlZCBpbiBnZXRf cGFnZWJsb2NrX3R5cGUoKQ0KKwkgKiBUaGlzIG1lYW5zIHRoYXQgcGFnZXMg d2lsbCBhbHdheXMgYmUgZnJlZWQgaW50byB0aGUgY29ycmVjdCBsaXN0IGlu DQorCSAqIGZyZWVfYXJlYV9saXN0cw0KKwkgKg0KKwkgKiBUaGUgYml0cyBh cmUgc2V0IHdoZW4gYSAyXk1BWF9PUkRFUiBibG9jayBvZiBwYWdlcyBpcyBz cGxpdA0KKwkgKi8NCisJdW5zaWduZWQgbG9uZyAgICAgICAgICAgKmZyZWVf YXJlYV91c2VtYXA7DQorI2VuZGlmDQorDQorCS8qDQorCSAqIGZyZWVfYXJl YV9saXN0cyBjb250YWlucyBidWRkaWVzIG9mIHNwbGl0IE1BWF9PUkRFUiBi bG9ja3MgaW5kZXhlZA0KKwkgKiBieSB0aGVpciBpbnRlbmRlZCBhbGxvY2F0 aW9uIHR5cGUsIHdoaWxlIGZyZWVfYXJlYV9nbG9iYWwgY29udGFpbnMNCisJ ICogd2hvbGUgTUFYX09SREVSIGJsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGZv ciBhbnkgYWxsb2NhdGlvbiB0eXBlLg0KKwkgKi8NCisJc3RydWN0IGZyZWVf YXJlYSAgICAgICAgZnJlZV9hcmVhX2xpc3RzW1JDTE1fVFlQRVNdW01BWF9P UkRFUl07DQorDQorCS8qDQorCSAqIEEgcGVyY2VudGFnZSBvZiBhIHpvbmUg aXMgcmVzZXJ2ZWQgZm9yIGZhbGxpbmcgYmFjayB0by4gV2l0aG91dA0KKwkg KiBhIGZhbGxiYWNrLCBtZW1vcnkgd2lsbCBzbG93bHkgZnJhZ21lbnQgb3Zl ciB0aW1lIG1lYW5pbmcgdGhlDQorCSAqIHBsYWNlbWVudCBwb2xpY3kgb25s eSBkZWxheXMgdGhlIGZyYWdtZW50YXRpb24gcHJvYmxlbSwgbm90DQorCSAq IGZpeGVzIGl0DQorCSAqLw0KKwl1bnNpZ25lZCBsb25nIGZhbGxiYWNrX3Jl c2VydmU7DQorDQorCS8qDQorCSAqIFdoZW4gbmVnYXRpdmUsIDJeTUFYX09S REVSLTEgc2l6ZWQgYmxvY2tzIG9mIHBhZ2VzIHdpbGwgYmUgcmVzZXJ2ZWQN CisJICogZm9yIGZhbGxiYWNrcw0KKwkgKi8NCisJbG9uZyBmYWxsYmFja19i YWxhbmNlOw0KIA0KIAlaT05FX1BBRERJTkcoX3BhZDFfKQ0KIA0KQEAgLTIz MCw2ICsyODMsMTggQEAgc3RydWN0IHpvbmUgew0KIH0gX19fX2NhY2hlbGlu ZV9tYXhhbGlnbmVkX2luX3NtcDsNCiANCiANCitzdGF0aWMgaW5saW5lIHZv aWQgaW5jX3Jlc2VydmVfY291bnQoc3RydWN0IHpvbmUqIHpvbmUsIGludCB0 eXBlKQ0KK3sNCisJaWYodHlwZSA9PSBSQ0xNX0ZBTExCQUNLKQ0KKwkJem9u ZS0+ZmFsbGJhY2tfcmVzZXJ2ZSsrOw0KK30NCitzdGF0aWMgaW5saW5lIHZv aWQgZGVjX3Jlc2VydmVfY291bnQoc3RydWN0IHpvbmUqIHpvbmUsIGludCB0 eXBlKQ0KK3sNCisJaWYodHlwZSA9PSBSQ0xNX0ZBTExCQUNLICYmIHpvbmUt PmZhbGxiYWNrX3Jlc2VydmUpDQorCQl6b25lLT5mYWxsYmFja19yZXNlcnZl LS07DQorDQorfQ0KKw0KIC8qDQogICogVGhlICJwcmlvcml0eSIgb2YgVk0g c2Nhbm5pbmcgaXMgaG93IG11Y2ggb2YgdGhlIHF1ZXVlcyB3ZSB3aWxsIHNj YW4gaW4gb25lDQogICogZ28uIEEgdmFsdWUgb2YgMTIgZm9yIERFRl9QUklP UklUWSBpbXBsaWVzIHRoYXQgd2Ugd2lsbCBzY2FuIDEvNDA5NnRoIG9mIHRo ZQ0KQEAgLTQ3Myw2ICs1MzgsOSBAQCBleHRlcm4gc3RydWN0IHBnbGlzdF9k YXRhIGNvbnRpZ19wYWdlX2RhDQogI2lmIChNQVhfT1JERVIgLSAxICsgUEFH RV9TSElGVCkgPiBTRUNUSU9OX1NJWkVfQklUUw0KICNlcnJvciBBbGxvY2F0 b3IgTUFYX09SREVSIGV4Y2VlZHMgU0VDVElPTl9TSVpFDQogI2VuZGlmDQor I2lmICgoU0VDVElPTl9TSVpFX0JJVFMgLSBNQVhfT1JERVIpICogQklUU19Q RVJfQUxMT0MpID4gNjQNCisjZXJyb3IgZnJlZV9hcmVhX3VzZW1hcCBpcyBu b3QgYmlnIGVub3VnaA0KKyNlbmRpZg0KIA0KIHN0cnVjdCBwYWdlOw0KIHN0 cnVjdCBtZW1fc2VjdGlvbiB7DQpAQCAtNDg1LDYgKzU1Myw3IEBAIHN0cnVj dCBtZW1fc2VjdGlvbiB7DQogCSAqIGJlZm9yZSB1c2luZyBpdCB3cm9uZy4N CiAJICovDQogCXVuc2lnbmVkIGxvbmcgc2VjdGlvbl9tZW1fbWFwOw0KKwl1 NjQgZnJlZV9hcmVhX3VzZW1hcDsNCiB9Ow0KIA0KIGV4dGVybiBzdHJ1Y3Qg bWVtX3NlY3Rpb24gbWVtX3NlY3Rpb25bTlJfTUVNX1NFQ1RJT05TXTsNCkBA IC01MzYsNiArNjA1LDE3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IG1lbV9z ZWN0aW9uICpfX3Bmbl8NCiAJcmV0dXJuIF9fbnJfdG9fc2VjdGlvbihwZm5f dG9fc2VjdGlvbl9ucihwZm4pKTsNCiB9DQogDQorc3RhdGljIGlubGluZSB1 bnNpZ25lZCBsb25nICpwZm5fdG9fdXNlbWFwKHN0cnVjdCB6b25lICp6b25l LCB1bnNpZ25lZCBsb25nIHBmbikNCit7DQorCXJldHVybiAmX19wZm5fdG9f c2VjdGlvbihwZm4pLT5mcmVlX2FyZWFfdXNlbWFwOw0KK30NCisNCitzdGF0 aWMgaW5saW5lIGludCBwZm5fdG9fYml0aWR4KHN0cnVjdCB6b25lICp6b25l LCB1bnNpZ25lZCBsb25nIHBmbikNCit7DQorCXBmbiAmPSAoUEFHRVNfUEVS X1NFQ1RJT04tMSk7DQorCXJldHVybiAoaW50KSgocGZuID4+IChNQVhfT1JE RVItMSkpICogQklUU19QRVJfUkNMTV9UWVBFKTsNCit9DQorDQogI2RlZmlu ZSBwZm5fdG9fcGFnZShwZm4pIAkJCQkJCVwNCiAoeyAJCQkJCQkJCQlcDQog CXVuc2lnbmVkIGxvbmcgX19wZm4gPSAocGZuKTsJCQkJCVwNCkBAIC01NzIs NiArNjUyLDE1IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBmbl92YWxpZCh1bnNp Z25lZCBsb24NCiB2b2lkIHNwYXJzZV9pbml0KHZvaWQpOw0KICNlbHNlDQog I2RlZmluZSBzcGFyc2VfaW5pdCgpCWRvIHt9IHdoaWxlICgwKQ0KK3N0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqcGZuX3RvX3VzZW1hcChzdHJ1Y3Qg em9uZSAqem9uZSwgdW5zaWduZWQgbG9uZyBwZm4pDQorew0KKwlyZXR1cm4g KHpvbmUtPmZyZWVfYXJlYV91c2VtYXApOw0KK30NCitzdGF0aWMgaW5saW5l IGludCBwZm5fdG9fYml0aWR4KHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25l ZCBsb25nIHBmbikNCit7DQorCXBmbiA9IHBmbiAtIHpvbmUtPnpvbmVfc3Rh cnRfcGZuOw0KKwlyZXR1cm4gKGludCkoKHBmbiA+PiAoTUFYX09SREVSLTEp KSAqIEJJVFNfUEVSX1JDTE1fVFlQRSk7DQorfQ0KICNlbmRpZiAvKiBDT05G SUdfU1BBUlNFTUVNICovDQogDQogI2lmZGVmIENPTkZJR19OT0RFU19TUEFO X09USEVSX05PREVTDQpkaWZmIC1ydXAgLVggL3Vzci9zcmMvcGF0Y2hzZXQt MC41L2Jpbi8vZG9udGRpZmYgbGludXgtMi42LjEzLXJjMy1taHAxLTAxX2dm cF9mbGFncy9tbS9wYWdlX2FsbG9jLmMgbGludXgtMi42LjEzLXJjMy1taHAx LTAyX21vcmVfZGVmaW5lcy9tbS9wYWdlX2FsbG9jLmMNCi0tLSBsaW51eC0y LjYuMTMtcmMzLW1ocDEtMDFfZ2ZwX2ZsYWdzL21tL3BhZ2VfYWxsb2MuYwky MDA1LTA3LTEzIDA1OjQ2OjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGxpbnV4 LTIuNi4xMy1yYzMtbWhwMS0wMl9tb3JlX2RlZmluZXMvbW0vcGFnZV9hbGxv Yy5jCTIwMDUtMDctMTggMTI6Mjc6MDkuMDAwMDAwMDAwICswMTAwDQpAQCAt NjUsNiArNjUsMjAgQEAgRVhQT1JUX1NZTUJPTCh0b3RhbHJhbV9wYWdlcyk7 DQogRVhQT1JUX1NZTUJPTChucl9zd2FwX3BhZ2VzKTsNCiANCiAvKg0KKyAq IGZhbGxiYWNrX2FsbG9jcyBjb250YWlucyB0aGUgZmFsbGJhY2sgdHlwZXMg Zm9yIGxvdyBtZW1vcnkgY29uZGl0aW9ucw0KKyAqIHdoZXJlIHRoZSBwcmVm ZXJyZWQgYWxsb2N0aW9uIHR5cGUgaWYgbm90IGF2YWlsYWJsZS4NCisgKi8N CitpbnQgZmFsbGJhY2tfYWxsb2NzW1JDTE1fVFlQRVNdW1JDTE1fVFlQRVMr MV0gPSB7DQorCXtSQ0xNX05PUkNMTSwgICAgUkNMTV9GQUxMQkFDSywgIFJD TE1fS0VSTiwgICBSQ0xNX1VTRVIsIC0xfSwNCisJe1JDTE1fS0VSTiwgICAg ICBSQ0xNX0ZBTExCQUNLLCAgUkNMTV9OT1JDTE0sIFJDTE1fVVNFUiwgLTF9 LA0KKwl7UkNMTV9VU0VSLCAgICAgIFJDTE1fRkFMTEJBQ0ssICBSQ0xNX05P UkNMTSwgUkNMTV9LRVJOLCAtMX0sDQorCXtSQ0xNX0ZBTExCQUNLLCAgUkNM TV9OT1JDTE0sICAgIFJDTE1fS0VSTiwgICBSQ0xNX1VTRVIsIC0xfQ0KK307 DQorc3RhdGljIGNoYXIgKnR5cGVfbmFtZXNbUkNMTV9UWVBFU10gPSB7ICJL ZXJubmVsIFVucmVjbGFpbWFibGUiLA0KKwkJCQkJICJLZXJuZWwgUmVjbGFp bWFibGUiLA0KKwkJCQkJICJVc2VyIFJlY2xhaW1hYmxlIiwgIkZhbGxiYWNr In07DQorDQorLyoNCiAgKiBVc2VkIGJ5IHBhZ2Vfem9uZSgpIHRvIGxvb2sg dXAgdGhlIGFkZHJlc3Mgb2YgdGhlIHN0cnVjdCB6b25lIHdob3NlDQogICog aWQgaXMgZW5jb2RlZCBpbiB0aGUgdXBwZXIgYml0cyBvZiBwYWdlLT5mbGFn cw0KICAqLw0K ---913833367-1386229017-1121689977=:2899-- -- 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: aart@kvack.org