From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changli Gao Subject: Re: [RFC] mm: generic adaptive large memory allocation APIs Date: Thu, 6 May 2010 08:37:46 +0800 Message-ID: References: <1273105838-4441-1-git-send-email-xiaosuo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Cc: Eric Dumazet , Jiri Slaby , Changli Gao , Alexander Viro , "Paul E. McKenney" , Alexey Dobriyan , Ingo Molnar , Peter Zijlstra , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Avi Kivity , Tetsuo Handa To: akpm@linux-foundation.org Return-path: In-Reply-To: <1273105838-4441-1-git-send-email-xiaosuo@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org T24gVGh1LCBNYXkgNiwgMjAxMCBhdCA4OjMwIEFNLCBDaGFuZ2xpIEdhbyA8eGlhb3N1b0BnbWFp bC5jb20+IHdyb3RlOgo+IGt2bWFsbG9jKCkgd2lsbCB0cnkgdG8gYWxsb2NhdGUgcGh5c2ljYWxs eSBjb250aWd1b3VzIG1lbW9yeSBmaXJzdCwgYW5kIHRyeQo+IHZtYWxsb2MgdG8gYWxsb2NhdGUg dmlydHVhbGx5IGNvbnRpZ3VvdXMgbWVtb3J5IHdoZW4gdGhlIGZvcm1lciBhbGxvY2F0aW9uCj4g ZmFpbHMuCj4KPiBrdmZyZWUoKSBpcyB1c2VkIHRvIGZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQg Ynkga3ZtYWxsb2MoKS4gSXQgY2FuJ3QgYmUgdXNlZAo+IGluIGF0b21pYyBjb250ZXh0LiBJZiB0 aGUgY2FsbGVycyBhcmUgaW4gYXRvbWljIGNvbnRleCwgdGhleSBjYW4gdXNlCj4ga3ZmcmVlX2lu YXRvbWljKCkgaW5zdGVhZC4KPgo+IFRoZXJlIGlzIG11Y2ggZHVwbGljYXRlIGNvZGUgdG8gZG8g c3VjaCB0aGluZ3MgaW4ga2VybmVsLCBzbyBJIGdlbmVyYXRlIHRoZQo+IGFib3ZlIEFQSXMuCj4K PiBUaGFuayBFcmljIER1bWF6ZXQgZm9yIHRoZSAia3YiIHByZWZpeC4gOikKPgo+ICNpbmNsdWRl IDxsaW51eC9rZXJuZWwuaD4KPiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gI2luY2x1ZGUg PGxpbnV4L21tLmg+Cj4gI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KPiAjaW5jbHVkZSA8bGludXgv c2xhYi5oPgo+ICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+Cj4gI2luY2x1ZGUgPGxpbnV4L2lu dGVycnVwdC5oPgo+Cj4gdm9pZCAqa3ZtYWxsb2Moc2l6ZV90IHNpemUpCj4gewo+IMKgIMKgIMKg IMKgdm9pZCAqcHRyOwo+Cj4gwqAgwqAgwqAgwqBpZiAoc2l6ZSA8IFBBR0VfU0laRSkKPiDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoHJldHVybiBrbWFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5FTCk7 Cj4gwqAgwqAgwqAgwqBwdHIgPSBhbGxvY19wYWdlc19leGFjdChzaXplLCBHRlBfS0VSTkVMIHwg X19HRlBfTk9XQVJOKTsKPiDCoCDCoCDCoCDCoGlmIChwdHIgIT0gTlVMTCkKPiDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoHJldHVybiBwdHI7Cj4KPiDCoCDCoCDCoCDCoHJldHVybiB2bWFsbG9jKHNp emUpOwo+IH0KPiBFWFBPUlRfU1lNQk9MKGt2bWFsbG9jKTsKPgo+IHZvaWQga3ZmcmVlKHZvaWQg KnB0ciwgc2l6ZV90IHNpemUpCj4gewo+IMKgIMKgIMKgIMKgaWYgKHNpemUgPCBQQUdFX1NJWkUp Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBrZnJlZShwdHIpOwo+IMKgIMKgIMKgIMKgZWxzZSBp ZiAoaXNfdm1hbGxvY19hZGRyKHB0cikpCj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB2ZnJlZShw dHIpOwo+IMKgIMKgIMKgIMKgZWxzZQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZnJlZV9wYWdl c19leGFjdChwdHIsIHNpemUpOwo+IH0KPiBFWFBPUlRfU1lNQk9MKGt2ZnJlZSk7Cj4KPiBzdHJ1 Y3Qga3ZmcmVlX3dvcmtfc3RydWN0IHsKPiDCoCDCoCDCoCDCoHN0cnVjdCB3b3JrX3N0cnVjdCDC oCDCoCDCoHdvcms7Cj4gwqAgwqAgwqAgwqB2b2lkIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgKmhlYWQ7Cj4gwqAgwqAgwqAgwqB2b2lkIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg KipwdGFpbDsKPiB9Owo+Cj4gREVGSU5FX1BFUl9DUFUoc3RydWN0IGt2ZnJlZV93b3JrX3N0cnVj dCwga3ZmcmVlX3dvcmtfc3RydWN0KTsKPgo+IHN0YXRpYyB2b2lkIGt2ZnJlZV93b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqX3dvcmspCj4gewo+IMKgIMKgIMKgIMKgc3RydWN0IGt2ZnJlZV93b3Jr X3N0cnVjdCAqd29yazsKPiDCoCDCoCDCoCDCoHZvaWQgKmhlYWQsICp0bXA7Cj4KPiDCoCDCoCDC oCDCoHdvcmsgPSBjb250YWluZXJfb2YoX3dvcmssIHN0cnVjdCBrdmZyZWVfd29ya19zdHJ1Y3Qs IHdvcmspOwo+IMKgIMKgIMKgIMKgbG9jYWxfYmhfZGlzYWJsZSgpOwo+IMKgIMKgIMKgIMKgaGVh ZCA9IHdvcmstPmhlYWQ7Cj4gwqAgwqAgwqAgwqB3b3JrLT5oZWFkID0gTlVMTDsKPiDCoCDCoCDC oCDCoHdvcmstPnB0YWlsID0gJndvcmstPmhlYWQ7Cj4gwqAgwqAgwqAgwqBsb2NhbF9iaF9lbmFi bGUoKTsKCmxvY2FsX2JoX2Rpc2FibGUgc2hvdWxkIGJlIGxvY2FsX2lycV9kaXNhYmxlKCksIGFu ZCBsb2NhbF9iaF9lbmFibGUoKQpzaG91bGQgYmUgbG9jYWxfaXJxX2VuYWJsZSgpLgoKPgo+IMKg IMKgIMKgIMKgd2hpbGUgKGhlYWQpIHsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHRtcCA9IGhl YWQ7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBoZWFkID0gKih2b2lkICoqKWhlYWQ7Cj4gwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqB2ZnJlZSh0bXApOwo+IMKgIMKgIMKgIMKgfQo+IH0KPgo+IHZv aWQga3ZmcmVlX2luYXRvbWljKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpCj4gewo+IMKgIMKgIMKg IMKgaWYgKHNpemUgPCBQQUdFX1NJWkUpIHsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGtmcmVl KHB0cik7Cj4gwqAgwqAgwqAgwqB9IGVsc2UgaWYgKGlzX3ZtYWxsb2NfYWRkcihwdHIpKSB7Cj4g wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBzdHJ1Y3Qga3ZmcmVlX3dvcmtfc3RydWN0ICp3b3JrOwo+ Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAqKHZvaWQgKiopcHRyID0gTlVMTDsKPiDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoGxvY2FsX2lycV9kaXNhYmxlKCk7Cj4gwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqB3b3JrID0gdGhpc19jcHVfcHRyKCZrdmZyZWVfd29ya19zdHJ1Y3QpOwo+IMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgKih3b3JrLT5wdGFpbCkgPSBwdHI7Cj4gwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqB3b3JrLT5wdGFpbCA9ICh2b2lkKiopcHRyOwo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg c2NoZWR1bGVfd29yaygmd29yay0+d29yayk7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBsb2Nh bF9pcnFfZW5hYmxlKCk7Cj4gwqAgwqAgwqAgwqB9IGVsc2Ugewo+IMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgZnJlZV9wYWdlc19leGFjdChwdHIsIHNpemUpOwo+IMKgIMKgIMKgIMKgfQo+IH0KPiBF WFBPUlRfU1lNQk9MKGt2ZnJlZV9pbmF0b21pYyk7Cj4KPiBzdGF0aWMgaW50IGt2ZnJlZV93b3Jr X3N0cnVjdF9pbml0KHZvaWQpCj4gewo+IMKgIMKgIMKgIMKgaW50IGNwdTsKPiDCoCDCoCDCoCDC oHN0cnVjdCBrdmZyZWVfd29ya19zdHJ1Y3QgKndvcms7Cj4KPiDCoCDCoCDCoCDCoGZvcl9lYWNo X3Bvc3NpYmxlX2NwdShjcHUpIHsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHdvcmsgPSBwZXJf Y3B1X3B0cigma3ZmcmVlX3dvcmtfc3RydWN0LCBjcHUpOwo+IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgSU5JVF9XT1JLKCZ3b3JrLT53b3JrLCBrdmZyZWVfd29yayk7Cj4gwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqB3b3JrLT5oZWFkID0gTlVMTDsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHdvcmst PnB0YWlsID0gJndvcmstPmhlYWQ7Cj4gwqAgwqAgwqAgwqB9Cj4KPiDCoCDCoCDCoCDCoHJldHVy biAwOwo+IH0KPiAvL3B1cmVfaW5pdGNhbGwoa3ZmcmVlX3dvcmtfc3RydWN0X2luaXQpOwo+Cj4g Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC8vIGZvciB0ZXN0aW5nCj4gc3RhdGljIGludCB0ZXN0 X2luaXQodm9pZCkKPiB7Cj4gwqAgwqAgwqAgwqBpbnQgc2l6ZTsKPiDCoCDCoCDCoCDCoHZvaWQg KnB0cjsKPgo+IMKgIMKgIMKgIMKga3ZmcmVlX3dvcmtfc3RydWN0X2luaXQoKTsKPiDCoCDCoCDC oCDCoGZvciAoc2l6ZSA9IDE7IHNpemUgPCAoMTw8MzApOyBzaXplIDw8PSAxKSB7Cj4gwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqBwdHIgPSBrdm1hbGxvYyhzaXplKTsKPiDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoGlmIChpc192bWFsbG9jX2FkZHIocHRyKSkgewo+IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgcHJpbnRrKCIlZFxuIiwgc2l6ZSk7Cj4gwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqBicmVhazsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoH0KPiDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoGt2ZnJlZShwdHIsIHNpemUpOwo+IMKgIMKgIMKgIMKgfQo+Cj4g wqAgwqAgwqAgwqByZXR1cm4gMDsKPiB9Cj4gbW9kdWxlX2luaXQodGVzdF9pbml0KTsKPgo+IHN0 YXRpYyB2b2lkIHRlc3RfZXhpdCh2b2lkKQo+IHsKPiDCoCDCoCDCoCDCoGludCBjcHU7Cj4gwqAg wqAgwqAgwqBzdHJ1Y3Qga3ZmcmVlX3dvcmtfc3RydWN0ICp3b3JrOwo+Cj4gwqAgwqAgwqAgwqBm b3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB3b3Jr ID0gcGVyX2NwdV9wdHIoJmt2ZnJlZV93b3JrX3N0cnVjdCwgY3B1KTsKPiDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoGNhbmNlbF93b3JrX3N5bmMoJndvcmstPndvcmspOwo+IMKgIMKgIMKgIMKgfQo+ IH0KPiBtb2R1bGVfZXhpdCh0ZXN0X2V4aXQpOwo+Cj4gTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+ CgoKCi0tIApSZWdhcmRz77yMCkNoYW5nbGkgR2FvKHhpYW9zdW9AZ21haWwuY29tKQo=