Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S268800AbUI2Ssb (ORCPT ); Wed, 29 Sep 2004 14:48:31 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S268805AbUI2Ssb (ORCPT ); Wed, 29 Sep 2004 14:48:31 -0400 Received: from e34.co.us.ibm.com ([32.97.110.132]:42426 "EHLO e34.co.us.ibm.com") by vger.kernel.org with ESMTP id S268800AbUI2Sqc (ORCPT ); Wed, 29 Sep 2004 14:46:32 -0400 Date: Wed, 29 Sep 2004 11:46:07 -0700 (PDT) From: Ram Pai X-X-Sender: ram@localhost.localdomain Reply-To: linuxram@us.ibm.com To: Steven Pratt cc: akpm@osdl.org, Subject: Re: [PATCH/RFC] Simplified Readahead In-Reply-To: <415872E5.1050004@austin.ibm.com> Message-ID: Organization: IBM Linux Technology Center MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1869086533-1096483567=:4449" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 23808 Lines: 466 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-1869086533-1096483567=:4449 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 27 Sep 2004, Steven Pratt wrote: > Ram Pai wrote: > > >On Mon, 2004-09-27 at 08:30, Steven Pratt wrote: > > > > > >>Ram Pai wrote: > >> > >> > >>>On Fri, 24 Sep 2004, Ram Pai wrote: > >>> > >>> > >>> > >>>>On Thu, 23 Sep 2004, Steven Pratt wrote: > >>>> > >>>> > >>>> > > > > ..snip.. > > > > > >>>To summarize you noticed 3 problems: > >>> > >>>1. page cache hits not handled properly. > >>>2. readahead thrashing not accounted. > >>>3. read congestion not accounted. I have enclosed 5 patches that address each of the issues. 1 . Code is obtuse and hard to maintain The best I could do is update the comments to reflect the current code. Hopefully that should help. attached patch 1_comment.patch takes care of that part to some extent. 2. page cache hits not handled properly. I fixed this by decrementing the size of the next readahead window by the number of pages hit in the page cache. Now it slowly accomodates the page cache hits. attached patch 2_cachehits.patch takes care of this issue. 3. queue congestion not handled. The fix is: call force_page_cache_readahead() if we are populating pages in the current window. And call do_page_cache_readahead() if we are populating pages in the ahead window. However if do_page_cache_readahead() return with congestion, the readahead window is collapsed back to size zero. This will ensure that the next time ahead window is attempted to populate. attached patch 3_queuecongestion.patch handles this issue. 4. page thrash handled ineffectively. The fix is: on page thrash detection shutdown readahead. attached patch 4_pagethrash.patch handles this issue. 5. slow read path is too slow. I could not figure out a way to atleast-read-the-requested- number-of-pages if readahead is shutdown, without incorporating the readsize parameter to page_cache_readahead(). So had to pick some of your code in filemap.c to do that. Thanks! attached patch 5_fixedslowread.patch handles this issue. Apart from this you have noticed other issues 6. cache lookup done unneccessrily twice for pagecache_hits. I have not handled this issue currently. But should be doable if I introducing a flag, which notes when readahead is shutdown by pagecahche hits. And hence attempts to lookup the page only once. And you have other features in your patch which will be the real differentiating factors. 7. exponential expand and shrink of window sizes. 8. overlapped read of current window and ahead window. ( I think both are desirable feature ) I did run some premilinary tests using your patch and the above patches and found your patch was doing slightly better on iozone and sysbench. however the above patch were doing slightly better with DSS workload. But my setup is rather tiny compared to your setup, so my comparison is rather incomplete. RP --8323328-1869086533-1096483567=:4449 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="1_comment.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="1_comment.patch" LS0tIHRtcC9tbS9yZWFkYWhlYWQuYwkyMDA0LTA5LTI5IDE3OjQ1OjAyLjEy MDcwMzIzMiAtMDcwMA0KKysrIGxpbnV4LTIuNi44L21tL3JlYWRhaGVhZC5j CTIwMDQtMDktMjkgMTc6NDU6MTIuMDQzMTk0Nzg0IC0wNzAwDQpAQCAtMTM5 LDggKzEzOSw3IEBAIG91dDoNCiAgKiBzdGFydDoJUGFnZSBpbmRleCBhdCB3 aGljaCB3ZSBzdGFydGVkIHRoZSByZWFkYWhlYWQNCiAgKiBzaXplOglOdW1i ZXIgb2YgcGFnZXMgaW4gdGhhdCByZWFkDQogICogICAgICAgICAgICAgIFRv Z2V0aGVyLCB0aGVzZSBmb3JtIHRoZSAiY3VycmVudCB3aW5kb3ciLg0KLSAq ICAgICAgICAgICAgICBUb2dldGhlciwgc3RhcnQgYW5kIHNpemUgcmVwcmVz ZW50IHRoZSBgcmVhZGFoZWFkIHdpbmRvdycuDQotICogbmV4dF9zaXplOiAg IFRoZSBudW1iZXIgb2YgcGFnZXMgdG8gcmVhZCBvbiB0aGUgbmV4dCByZWFk YWhlYWQgbWlzcy4NCisgKiBuZXh0X3NpemU6ICAgVGhlIG51bWJlciBvZiBw YWdlcyB0byByZWFkIGluIHRoZSBuZXh0ICJhaGVhZCB3aW5kb3ciLg0KICAq ICAgICAgICAgICAgICBIYXMgdGhlIG1hZ2ljYWwgdmFsdWUgLTFVTCBpZiBy ZWFkYWhlYWQgaGFzIGJlZW4gZGlzYWJsZWQuDQogICogcHJldl9wYWdlOiAg IFRoZSBwYWdlIHdoaWNoIHRoZSByZWFkYWhlYWQgYWxnb3JpdGhtIG1vc3Qt cmVjZW50bHkgaW5zcGVjdGVkLg0KICAqICAgICAgICAgICAgICBwcmV2X3Bh Z2UgaXMgbWFpbmx5IGFuIG9wdGltaXNhdGlvbjogaWYgcGFnZV9jYWNoZV9y ZWFkYWhlYWQNCkBAIC0xNDksNiArMTQ4LDEyIEBAIG91dDoNCiAgKgkJY2hh bmdlcy4NCiAgKiBhaGVhZF9zdGFydCwNCiAgKiBhaGVhZF9zaXplOiAgVG9n ZXRoZXIsIHRoZXNlIGZvcm0gdGhlICJhaGVhZCB3aW5kb3ciLg0KKyAqIGN1 cnJudF93bmRfaGl0OiBUaGUgYXZlcmFnZSBudW1iZXIgb2YgcGFnZXMgYWNj ZXNzZWQgaW4gY3VycmVudCANCisgKiAJCSdjdXJyZW50IHdpbmRvdycNCisg KiBhdmVyYWdlOglUcmFja3MgdGhlIGF2ZXJhZ2UgbGluZWFyaXR5IG9mIHJl YWQgcmVxdWVzdHMuIFRoaXMgdmFsdWUgaXMNCisgKiAJCXVzZWQgdG8gKGEp IGRldGVybWluZSBpZiAiYWhlYWQgd2luZG93IiBoYXMgdG8gYmUgcmVhZCBp biBvciBub3QNCisgKiAJCShiKSBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBw YWdlcyB0byByZWFkIGludG8gdGhlIG5ldyANCisgKiAJCQkJImN1cnJlbnQg d2luZG93Ig0KICAqIHJhX3BhZ2VzOglUaGUgZXh0ZXJuYWxseSBjb250cm9s bGVkIG1heCByZWFkYWhlYWQgZm9yIHRoaXMgZmQuDQogICoNCiAgKiBXaGVu IHJlYWRhaGVhZCBpcyBpbiB0aGUgIm1heGltYWxseSBzaHJ1bmsiIHN0YXRl IChuZXh0X3NpemUgPT0gLTFVTCksDQpAQCAtMTU5LDkgKzE2NCw5IEBAIG91 dDoNCiAgKg0KICAqIFRoZSByZWFkYWhlYWQgY29kZSBtYW5hZ2VzIHR3byB3 aW5kb3dzIC0gdGhlICJjdXJyZW50IiBhbmQgdGhlICJhaGVhZCINCiAgKiB3 aW5kb3dzLiAgVGhlIGludGVudCBpcyB0aGF0IHdoaWxlIHRoZSBhcHBsaWNh dGlvbiBpcyB3YWxraW5nIHRoZSBwYWdlcw0KLSAqIGluIHRoZSBjdXJyZW50 IHdpbmRvdywgSS9PIGlzIHVuZGVyd2F5IG9uIHRoZSBhaGVhZCB3aW5kb3cu ICBXaGVuIHRoZQ0KLSAqIGN1cnJlbnQgd2luZG93IGlzIGZ1bGx5IHRyYXZl cnNlZCwgaXQgaXMgcmVwbGFjZWQgYnkgdGhlIGFoZWFkIHdpbmRvdw0KLSAq IGFuZCB0aGUgYWhlYWQgd2luZG93IGlzIGludmFsaWRhdGVkLiAgV2hlbiB0 aGlzIGNvcHlpbmcgaGFwcGVucywgdGhlDQorICogaW4gdGhlICJjdXJyZW50 IHdpbmRvdyIsIEkvTyBpcyB1bmRlcndheSBvbiB0aGUgImFoZWFkIHdpbmRv dyIuICBXaGVuIHRoZQ0KKyAqICJjdXJyZW50IHdpbmRvdyIgaXMgZnVsbHkg dHJhdmVyc2VkLCBpdCBpcyByZXBsYWNlZCBieSB0aGUgImFoZWFkIHdpbmRv dyINCisgKiBhbmQgdGhlICJhaGVhZCB3aW5kb3ciIGlzIGludmFsaWRhdGVk LiAgV2hlbiB0aGlzIGNvcHlpbmcgaGFwcGVucywgdGhlDQogICogbmV3IGN1 cnJlbnQgd2luZG93J3MgcGFnZXMgYXJlIHByb2JhYmx5IHN0aWxsIGxvY2tl ZC4gIFdoZW4gSS9PIGhhcw0KICAqIGNvbXBsZXRlZCwgd2Ugc3VibWl0IGEg bmV3IGJhdGNoIG9mIEkvTywgY3JlYXRpbmcgYSBuZXcgYWhlYWQgd2luZG93 Lg0KICAqDQpAQCAtMTcxLDExICsxNzYsMTIgQEAgb3V0Og0KICAqICAgICAg IF5zdGFydCAgICAgICAgICAgXnN0YXJ0K3NpemUNCiAgKiAgICAgICAgICAg ICAgICAgICAgICAgIF5haGVhZF9zdGFydCAgICAgXmFoZWFkX3N0YXJ0K2Fo ZWFkX3NpemUNCiAgKg0KLSAqICAgICAgICAgXiBXaGVuIHRoaXMgcGFnZSBp cyByZWFkLCB3ZSBzdWJtaXQgSS9PIGZvciB0aGUNCi0gKiAgICAgICAgICAg YWhlYWQgd2luZG93Lg0KKyAqICAgICAgICAgXiB3ZSBzdWJtaXQgSS9PIGZv ciB0aGUgYWhlYWQgd2luZG93IG9ubHkgaWYgdGhlIHJlYWRzDQorICogICAg ICAgICAgIGluIHRoZSBwYXN0IGFyZSBzdWZmaWNpZW50bHkgbGluZWFyIHdp dGggYW4gYXZlcmFnZQ0KKyAqICAgICAgICAgICBsaW5lYXJpdHkgdGhhdCBp cyBncmVhdGVyIHRoYW4gdGhlIG1heCByZWFkYWhlYWQgc2l6ZS4NCiAgKg0K ICAqIEEgYHJlYWRhaGVhZCBoaXQnIG9jY3VycyB3aGVuIGEgcmVhZCByZXF1 ZXN0IGlzIG1hZGUgYWdhaW5zdCBhIHBhZ2Ugd2hpY2ggaXMNCi0gKiBpbnNp ZGUgdGhlIGN1cnJlbnQgd2luZG93LiAgSGl0cyBhcmUgZ29vZCwgYW5kIHRo ZSB3aW5kb3cgc2l6ZSAobmV4dF9zaXplKQ0KKyAqIGluc2lkZSB0aGUgImN1 cnJlbnQgd2luZG93Ii4gIEhpdHMgYXJlIGdvb2QsIGFuZCB0aGUgd2luZG93 IHNpemUgKG5leHRfc2l6ZSkNCiAgKiBpcyBncm93biBhZ2dyZXNzaXZlbHkg d2hlbiBoaXRzIG9jY3VyLiAgVHdvIHBhZ2VzIGFyZSBhZGRlZCB0byB0aGUg bmV4dA0KICAqIHdpbmRvdyBzaXplIG9uIGVhY2ggaGl0LCB3aGljaCB3aWxs IGVuZCB1cCBkb3VibGluZyB0aGUgbmV4dCB3aW5kb3cgc2l6ZSBieQ0KICAq IHRoZSB0aW1lIEkvTyBpcyBzdWJtaXR0ZWQgZm9yIGl0Lg0KQEAgLTE4Mywx OCArMTg5LDE3IEBAIG91dDoNCiAgKiBJZiByZWFkYWhlYWQgaGl0cyBhcmUg bW9yZSBzcGFyc2UgKHNheSwgdGhlIGFwcGxpY2F0aW9uIGlzIG9ubHkgcmVh ZGluZw0KICAqIGV2ZXJ5IHNlY29uZCBwYWdlKSB0aGVuIHRoZSB3aW5kb3cg d2lsbCBidWlsZCBtb3JlIHNsb3dseS4NCiAgKg0KLSAqIE9uIGEgcmVhZGFo ZWFkIG1pc3MgKHRoZSBhcHBsaWNhdGlvbiBzZWVrZWQgYXdheSkgdGhlIHJl YWRhaGVhZCB3aW5kb3cgaXMNCi0gKiBzaHJ1bmsgYnkgMjUlLiAgV2UgZG9u J3Qgd2FudCB0byBkcm9wIGl0IHRvbyBhZ2dyZXNzaXZlbHksIGJlY2F1c2Ug aXQgaXMgYQ0KLSAqIGdvb2QgYXNzdW1wdGlvbiB0aGF0IGFuIGFwcGxpY2F0 aW9uIHdoaWNoIGhhcyBidWlsdCBhIGdvb2QgcmVhZGFoZWFkIHdpbmRvdw0K LSAqIHdpbGwgY29udGludWUgdG8gcGVyZm9ybSBsaW5lYXIgcmVhZHMuICBF aXRoZXIgYXQgdGhlIG5ldyBmaWxlIHBvc2l0aW9uLCBvcg0KLSAqIGF0IHRo ZSBvbGQgb25lIGFmdGVyIGFub3RoZXIgc2Vlay4NCisgKiBPbiBhICJjdXJy ZW50IHdpbmRvdyIgbWlzcyAodGhlIGFwcGxpY2F0aW9uIHNlZWtlZCBhd2F5 KSB0aGUgcmVhZGFoZWFkIA0KKyAqIHdpbmRvdyBpcyBzaHJ1bmsgYnkgMiBw YWdlcy4gIFdlIGRvbid0IHdhbnQgdG8gZHJvcCBpdCB0b28gYWdncmVzc2l2 ZWx5LCANCisgKiBiZWNhdXNlIGl0IGlzIGEgZ29vZCBhc3N1bXB0aW9uIHRo YXQgYW4gYXBwbGljYXRpb24gd2hpY2ggaGFzIGJ1aWx0IGEgDQorICogZ29v ZCByZWFkYWhlYWQgd2luZG93IHdpbGwgY29udGludWUgdG8gcGVyZm9ybSBs aW5lYXIgcmVhZHMuICBFaXRoZXIgDQorICogYXQgdGhlIG5ldyBmaWxlIHBv c2l0aW9uLCBvciBhdCB0aGUgb2xkIG9uZSBhZnRlciBhbm90aGVyIHNlZWsu DQogICoNCiAgKiBBZnRlciBlbm91Z2ggbWlzc2VzLCByZWFkYWhlYWQgaXMg ZnVsbHkgZGlzYWJsZWQuIChuZXh0X3NpemUgPSAtMVVMKS4NCiAgKg0KLSAq IFRoZXJlIGlzIGEgc3BlY2lhbC1jYXNlOiBpZiB0aGUgZmlyc3QgcGFnZSB3 aGljaCB0aGUgYXBwbGljYXRpb24gdHJpZXMgdG8NCi0gKiByZWFkIGhhcHBl bnMgdG8gYmUgdGhlIGZpcnN0IHBhZ2Ugb2YgdGhlIGZpbGUsIGl0IGlzIGFz c3VtZWQgdGhhdCBhIGxpbmVhcg0KLSAqIHJlYWQgaXMgYWJvdXQgdG8gaGFw cGVuIGFuZCB0aGUgd2luZG93IGlzIGltbWVkaWF0ZWx5IHNldCB0byBoYWxm IG9mIHRoZQ0KLSAqIGRldmljZSBtYXhpbXVtLg0KKyAqIFRoZXJlIGlzIGEg c3BlY2lhbC1jYXNlOiBJcnJlc3BlY3RpdmUgb2Ygd2hpY2ggcGFnZSBpbiB0 aGUgZmlsZSBpcyBhY2Nlc3NlZA0KKyAqIHRoZSBmaXJzdCB0aW1lLCBpdCBp cyBhc3N1bWVkIHRoYXQgYSBsaW5lYXIgcmVhZCBpcyBhYm91dCB0byBoYXBw ZW4gYW5kIHRoZSANCisgKiB3aW5kb3cgaXMgaW1tZWRpYXRlbHkgc2V0IHRv IGhhbGYgb2YgdGhlIG1heCByZWFkYWhlYWQgc2l6ZS4NCiAgKiANCiAgKiBB IHBhZ2UgcmVxdWVzdCBhdCAoc3RhcnQgKyBzaXplKSBpcyBub3QgYSBtaXNz IGF0IGFsbCAtIGl0J3MganVzdCBhIHBhcnQgb2YNCiAgKiBzZXF1ZW50aWFs IGZpbGUgcmVhZGluZy4NCkBAIC00NDMsOSArNDQ4LDEyIEBAIHBhZ2VfY2Fj aGVfcmVhZGFoZWFkKHN0cnVjdCBhZGRyZXNzX3NwYWMNCiAJCQkvKg0KIAkJ CSAqIENvbnRyb2wgbm93IHJldHVybnMsIHByb2JhYmx5IHRvIHNsZWVwIHVu dGlsIEkvTw0KIAkJCSAqIGNvbXBsZXRlcyBhZ2FpbnN0IHRoZSBmaXJzdCBh aGVhZCBwYWdlLg0KLQkJCSAqIFdoZW4gdGhlIHNlY29uZCBwYWdlIGluIHRo ZSBvbGQgYWhlYWQgd2luZG93IGlzDQotCQkJICogcmVxdWVzdGVkLCBjb250 cm9sIHdpbGwgcmV0dXJuIGhlcmUgYW5kIG1vcmUgSS9PDQotCQkJICogd2ls bCBiZSBzdWJtaXR0ZWQgdG8gYnVpbGQgdGhlIG5ldyBhaGVhZCB3aW5kb3cu DQorCQkJICogV2hlbiBzb21lIHBhZ2UgaW4gdGhlIG9sZCAiYWhlYWQgd2lu ZG93IiAod2hpY2ggaXMgDQorCQkJICogbm93IHRoZSAiY3VycmVudCB3aW5k b3ciKSBpcyByZXF1ZXN0ZWQsIG1vcmUgSS9PIA0KKwkJCSAqIHdpbGwgYmUg c3VibWl0dGVkIHRvIGJ1aWxkIHRoZSBuZXcgYWhlYWQgd2luZG93LCANCisJ CQkgKiBwcm92aWRlZCB0aGUgcGFzdCByZWFkIHBhdHRlcm5zIGhhdmUgZGVt b25zdHJhdGVkIA0KKwkJCSAqIHRoYXQgdGhlIHBhZ2VzIGluIHRoZSBhaGVh ZCB3aW5kb3cgYXJlIG5vdCB3YXN0ZWQNCisJCQkgKiBleGVzc2l2ZWx5Lg0K IAkJCSAqLw0KIAkJCWdvdG8gb3V0Ow0KIAkJfQ0KQEAgLTQ2MCw3ICs0Njgs OCBAQCBkb19pbzoNCiAJCQkgLyogSGV1cmlzdGljOiB0aGVyZSBpcyBhIGhp Z2ggcHJvYmFiaWxpdHkNCiAJCQkgICogdGhhdCBhcm91bmQgIHJhLT5hdmVy YWdlIG51bWJlciBvZg0KIAkJCSAgKiBwYWdlcyBzaGFsbCBiZSBhY2Nlc3Nl ZCBpbiB0aGUgbmV4dA0KLQkJCSAgKiBjdXJyZW50IHdpbmRvdy4NCisJCQkg ICogY3VycmVudCB3aW5kb3cuIFNvIHdlIGp1c3QgYnJpbmcgaW4NCisJCQkg ICogdGhhdCBtYW55IHBhZ2VzLg0KIAkJCSAgKi8NCiAJCQlhdmVyYWdlID0g cmEtPmF2ZXJhZ2U7DQogCQkJaWYgKHJhLT5jdXJybnRfd25kX2hpdCA+IGF2 ZXJhZ2UpDQpAQCAtNDkyLDcgKzUwMSw3IEBAIGRvX2lvOg0KIAkJCS8qDQog CQkJICogSWYgdGhlIGF2ZXJhZ2UgaW8tc2l6ZSBpcyBtb3JlIHRoYW4gbWF4 aW11bQ0KIAkJCSAqIHJlYWRhaGVhZCBzaXplIG9mIHRoZSBmaWxlIHRoZSBp byBwYXR0ZXJuIGlzDQotCQkJICogc2VxdWVudGlhbC4gSGVuY2UgIGJyaW5n IGluIHRoZSByZWFkYWhlYWQgd2luZG93DQorCQkJICogbGluZWFyLiBIZW5j ZSAgYnJpbmcgaW4gdGhlIHJlYWRhaGVhZCB3aW5kb3cNCiAJCQkgKiBpbW1l ZGlhdGVseS4NCiAJCQkgKiBJZiB0aGUgYXZlcmFnZSBpby1zaXplIGlzIGxl c3MgdGhhbiBtYXhpbXVtDQogCQkJICogcmVhZGFoZWFkIHNpemUgb2YgdGhl IGZpbGUgdGhlIGlvIHBhdHRlcm4gaXMNCg== --8323328-1869086533-1096483567=:4449 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="2_cachehits.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="2_cachehits.patch" LS0tIGxpbnV4LTIuNi44L21tL3JlYWRhaGVhZC5jCTIwMDQtMDktMjkgMTc6 NDc6MDIuNjc3Mzc1ODMyIC0wNzAwDQorKysgbGludXgtMi42LjguY29tbWVu dC9tbS9yZWFkYWhlYWQuYwkyMDA0LTA5LTI5IDE3OjM5OjAwLjg4MDYyMDA3 MiAtMDcwMA0KQEAgLTMyOSwxOCArMzI5LDE2IEBAIGludCBkb19wYWdlX2Nh Y2hlX3JlYWRhaGVhZChzdHJ1Y3QgYWRkcmUNCiAgKiBvY2Nhc2lvbmFsbHku DQogICovDQogc3RhdGljIGlubGluZSB2b2lkDQotY2hlY2tfcmFfc3VjY2Vz cyhzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHBnb2ZmX3QgYXR0ZW1wdCwN Ci0JCQlwZ29mZl90IGFjdHVhbCwgcGdvZmZfdCBvcmlnX25leHRfc2l6ZSkN CitjaGVja19yYV9zdWNjZXNzKHN0cnVjdCBmaWxlX3JhX3N0YXRlICpyYSwg cGdvZmZfdCBhdHRlbXB0LCBwZ29mZl90IGFjdHVhbCkNCiB7DQotCWlmIChh Y3R1YWwgPT0gMCkgew0KLQkJaWYgKG9yaWdfbmV4dF9zaXplID4gMSkgew0K LQkJCXJhLT5uZXh0X3NpemUgPSBvcmlnX25leHRfc2l6ZSAtIDE7DQotCQkJ aWYgKHJhLT5haGVhZF9zaXplKQ0KLQkJCQlyYS0+YWhlYWRfc2l6ZSA9IHJh LT5uZXh0X3NpemU7DQotCQl9IGVsc2Ugew0KLQkJCXJhLT5uZXh0X3NpemUg PSAtMVVMOw0KLQkJCXJhLT5zaXplID0gMDsNCi0JCX0NCisJLyogDQorCSAq IGRlY3JlbWVudCB3aW5kb3cgc2l6ZSBieSB0aGUgbnVtYmVyIG9mIHBhZ2Vz IGhpdHRpbmcgDQorCSAqIHRoZSBwYWdlIGNhY2hlDQorCSAqLw0KKwlyYS0+ bmV4dF9zaXplIC09IGF0dGVtcHQgLSBhY3R1YWw7DQorCWlmIChyYS0+bmV4 dF9zaXplIDw9IDApIHsNCisJCXJhLT5uZXh0X3NpemUgPSAtMVVMOw0KKwkJ cmEtPnNpemUgPSAwOw0KIAl9DQogfQ0KIA0KQEAgLTM1Myw3ICszNTEsNiBA QCBwYWdlX2NhY2hlX3JlYWRhaGVhZChzdHJ1Y3QgYWRkcmVzc19zcGFjDQog CQkJc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQ0K IHsNCiAJdW5zaWduZWQgbWF4Ow0KLQl1bnNpZ25lZCBvcmlnX25leHRfc2l6 ZTsNCiAJdW5zaWduZWQgYWN0dWFsOw0KIAlpbnQgZmlyc3RfYWNjZXNzPTA7 DQogCXVuc2lnbmVkIGxvbmcgYXZlcmFnZTsNCkBAIC0zNzcsNyArMzc0LDYg QEAgcGFnZV9jYWNoZV9yZWFkYWhlYWQoc3RydWN0IGFkZHJlc3Nfc3BhYw0K IAlpZiAobWF4ID09IDApDQogCQlnb3RvIG91dDsJLyogTm8gcmVhZGFoZWFk ICovDQogDQotCW9yaWdfbmV4dF9zaXplID0gcmEtPm5leHRfc2l6ZTsNCiAN CiAJaWYgKHJhLT5uZXh0X3NpemUgPT0gMCkgew0KIAkJLyoNCkBAIC00ODks NyArNDg1LDcgQEAgZG9faW86DQogCQkJICogdGltZSwgdGhlIGFoZWFkIHdp bmRvdyBtaWdodCBnZXQgY2xvc2VkIGlmIGFsbA0KIAkJCSAqIHRoZSBwYWdl cyBhcmUgYWxyZWFkeSBpbiB0aGUgY2FjaGUuDQogCQkJICovDQotCQkJY2hl Y2tfcmFfc3VjY2VzcyhyYSwgcmEtPnNpemUsIGFjdHVhbCwgb3JpZ19uZXh0 X3NpemUpOw0KKwkJCWNoZWNrX3JhX3N1Y2Nlc3MocmEsIHJhLT5zaXplLCBh Y3R1YWwpOw0KIAkJfQ0KIAl9IGVsc2Ugew0KIAkJLyoNCkBAIC01MTYsOCAr NTEyLDcgQEAgZG9faW86DQogCQkJCXJhLT5haGVhZF9zaXplID0gcmEtPm5l eHRfc2l6ZTsNCiAJCQkJYWN0dWFsID0gZG9fcGFnZV9jYWNoZV9yZWFkYWhl YWQobWFwcGluZywgZmlscCwNCiAJCQkJCXJhLT5haGVhZF9zdGFydCwgcmEt PmFoZWFkX3NpemUpOw0KLQkJCQljaGVja19yYV9zdWNjZXNzKHJhLCByYS0+ YWhlYWRfc2l6ZSwNCi0JCQkJCQlhY3R1YWwsIG9yaWdfbmV4dF9zaXplKTsN CisJCQkJY2hlY2tfcmFfc3VjY2VzcyhyYSwgcmEtPmFoZWFkX3NpemUsIGFj dHVhbCk7DQogCQkJfQ0KIAkJfQ0KIAl9DQo= --8323328-1869086533-1096483567=:4449 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="3_queuecongestion.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="3_queuecongestion.patch" LS0tIGxpbnV4LTIuNi44L21tL3JlYWRhaGVhZC5jCTIwMDQtMDktMjkgMTc6 NDg6MTcuNzgwOTU4MzUyIC0wNzAwDQorKysgbGludXgtMi42LjguY29tbWVu dC5wYWdlY2FjaGVoaXQvbW0vcmVhZGFoZWFkLmMJMjAwNC0wOS0yOSAxNzo1 Mjo0OS4yOTk2ODEyMzIgLTA3MDANCkBAIC0zMTQsMTAgKzMxNCwxMSBAQCBp bnQgZm9yY2VfcGFnZV9jYWNoZV9yZWFkYWhlYWQoc3RydWN0IGFkDQogaW50 IGRvX3BhZ2VfY2FjaGVfcmVhZGFoZWFkKHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLCBzdHJ1Y3QgZmlsZSAqZmlscCwNCiAJCQl1bnNpZ25lZCBs b25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBucl90b19yZWFkKQ0KIHsNCi0J aWYgKCFiZGlfcmVhZF9jb25nZXN0ZWQobWFwcGluZy0+YmFja2luZ19kZXZf aW5mbykpDQotCQlyZXR1cm4gX19kb19wYWdlX2NhY2hlX3JlYWRhaGVhZCht YXBwaW5nLCBmaWxwLA0KLQkJCQkJCW9mZnNldCwgbnJfdG9fcmVhZCk7DQot CXJldHVybiAwOw0KKwlpZiAoYmRpX3JlYWRfY29uZ2VzdGVkKG1hcHBpbmct PmJhY2tpbmdfZGV2X2luZm8pKQ0KKwkJcmV0dXJuIC1CRElfcmVhZF9jb25n ZXN0ZWQ7DQorDQorCXJldHVybiBfX2RvX3BhZ2VfY2FjaGVfcmVhZGFoZWFk KG1hcHBpbmcsIGZpbHAsDQorCQkJCW9mZnNldCwgbnJfdG9fcmVhZCk7DQog fQ0KIA0KIC8qDQpAQCAtNDc3LDE2ICs0NzgsOSBAQCBkb19pbzoNCiAJCXJh LT5zaXplID0gcmEtPm5leHRfc2l6ZTsNCiAJCXJhLT5haGVhZF9zdGFydCA9 IDA7CQkvKiBJbnZhbGlkYXRlIHRoZXNlICovDQogCQlyYS0+YWhlYWRfc2l6 ZSA9IDA7DQotCQlhY3R1YWwgPSBkb19wYWdlX2NhY2hlX3JlYWRhaGVhZCht YXBwaW5nLCBmaWxwLCBvZmZzZXQsDQorCQlhY3R1YWwgPSBmb3JjZV9wYWdl X2NhY2hlX3JlYWRhaGVhZChtYXBwaW5nLCBmaWxwLCBvZmZzZXQsDQogCQkJ CQkJIHJhLT5zaXplKTsNCi0JCWlmKCFmaXJzdF9hY2Nlc3MpIHsNCi0JCQkv Kg0KLQkJCSAqIGRvIG5vdCBhZGp1c3QgdGhlIHJlYWRhaGVhZCB3aW5kb3cg c2l6ZSB0aGUgZmlyc3QNCi0JCQkgKiB0aW1lLCB0aGUgYWhlYWQgd2luZG93 IG1pZ2h0IGdldCBjbG9zZWQgaWYgYWxsDQotCQkJICogdGhlIHBhZ2VzIGFy ZSBhbHJlYWR5IGluIHRoZSBjYWNoZS4NCi0JCQkgKi8NCi0JCQljaGVja19y YV9zdWNjZXNzKHJhLCByYS0+c2l6ZSwgYWN0dWFsKTsNCi0JCX0NCisJCWNo ZWNrX3JhX3N1Y2Nlc3MocmEsIHJhLT5zaXplLCBhY3R1YWwpOw0KIAl9IGVs c2Ugew0KIAkJLyoNCiAJCSAqIFRoaXMgcmVhZCByZXF1ZXN0IGlzIHdpdGhp biB0aGUgY3VycmVudCB3aW5kb3cuICBJdCBtYXkgYmUNCkBAIC01MTIsNyAr NTA2LDE3IEBAIGRvX2lvOg0KIAkJCQlyYS0+YWhlYWRfc2l6ZSA9IHJhLT5u ZXh0X3NpemU7DQogCQkJCWFjdHVhbCA9IGRvX3BhZ2VfY2FjaGVfcmVhZGFo ZWFkKG1hcHBpbmcsIGZpbHAsDQogCQkJCQlyYS0+YWhlYWRfc3RhcnQsIHJh LT5haGVhZF9zaXplKTsNCi0JCQkJY2hlY2tfcmFfc3VjY2VzcyhyYSwgcmEt PmFoZWFkX3NpemUsIGFjdHVhbCk7DQorCQkJCWlmIChhY3R1YWwgPT0gLUJE SV9yZWFkX2Nvbmdlc3RlZCkgew0KKwkJCQkJLyogcXVldWUgaXMgY29uZ2Vz dGVkIGFuZCBubyBwYWdlcw0KKwkJCQkJICogYXJlIHJlYWQuIFNvIGp1c3Qg YmVoYXZlIGFzIGlmDQorCQkJCQkgKiByZWFkYWhlYWQgd2FzIG5vdCBhdHRl bXB0ZWQgYXQgYWxsLg0KKwkJCQkJICovDQorCQkJCQlyYS0+YWhlYWRfc3Rh cnQgPSAwOw0KKwkJCQkJcmEtPmFoZWFkX3NpemUgPSAwOw0KKwkJCQl9IGVs c2Ugew0KKwkJCQkJY2hlY2tfcmFfc3VjY2VzcyhyYSwgcmEtPmFoZWFkX3Np emUsIA0KKwkJCQkJCQlhY3R1YWwpOw0KKwkJCQl9DQogCQkJfQ0KIAkJfQ0K IAl9DQo= --8323328-1869086533-1096483567=:4449 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="4_pagethrash.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="4_pagethrash.patch" LS0tIGxpbnV4LTIuNi44L21tL3JlYWRhaGVhZC5jCTIwMDQtMDktMjkgMTc6 NTM6MzcuMTIwNDExMzc2IC0wNzAwDQorKysgbGludXgtMi42LjguY29tbWVu dC5wYWdlY2FjaGVoaXQucXVldWVjb25nZXN0aW9uL21tL3JlYWRhaGVhZC5j CTIwMDQtMDktMjkgMTc6NTU6NDcuNjYyNTY1OTUyIC0wNzAwDQpAQCAtNTM1 LDEwICs1MzUsOCBAQCBvdXQ6DQogICogaWYgd2UgYXJlIGdldHRpbmcgbWlz c2VzIGFnYWluc3Qgc2VxdWVudGlhbCBmaWxlIG9mZnNldHMuICBJZiBzbywg YW5kIHRoaXMNCiAgKiBwZXJzaXN0cyB0aGVuIHJlc3VtZSByZWFkYWhlYWQu DQogICoNCi0gKiBPdGhlcndpc2Ugd2UncmUgdGhyYXNoaW5nLCBzbyBzaHJp bmsgdGhlIHJlYWRhaGVhZCB3aW5kb3cgYnkgdGhyZWUgcGFnZXMuDQotICog VGhpcyBpcyBiZWNhdXNlIGl0IGlzIGdyb3duIGJ5IHR3byBwYWdlcyBvbiBh IHJlYWRhaGVhZCBoaXQuICBUaGVvcnkgYmVpbmcNCi0gKiB0aGF0IHRoZSBy ZWFkYWhlYWQgd2luZG93IHNpemUgd2lsbCBzdGFiaWxpc2UgYXJvdW5kIHRo ZSBtYXhpbXVtIGxldmVsIGF0DQotICogd2hpY2ggdGhlcmUgaXMgbm8gdGhy YXNoaW5nLg0KKyAqIE90aGVyd2lzZSB3ZSdyZSB0aHJhc2hpbmcsIGNsb3Nl IHRoZSByZWFkYWhlYWQgd2luZG93LiBUaGVyZSBpcyBubyBwb2ludCANCisg KiByZWFkaW5nIGFoZWFkIGlmIHBhZ2UtdGhyYXNoaW5nIGlzIG5vdGljZWQu DQogICovDQogdm9pZCBoYW5kbGVfcmFfbWlzcyhzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywNCiAJCXN0cnVjdCBmaWxlX3JhX3N0YXRlICpyYSwg cGdvZmZfdCBvZmZzZXQpDQpAQCAtNTYxLDExICs1NTksOCBAQCB2b2lkIGhh bmRsZV9yYV9taXNzKHN0cnVjdCBhZGRyZXNzX3NwYWNlDQogCQl9DQogCQly YS0+cHJldl9wYWdlID0gb2Zmc2V0Ow0KIAl9IGVsc2Ugew0KLQkJY29uc3Qg dW5zaWduZWQgbG9uZyBtaW4gPSBnZXRfbWluX3JlYWRhaGVhZChyYSk7DQot DQotCQlyYS0+bmV4dF9zaXplIC09IDM7DQotCQlpZiAocmEtPm5leHRfc2l6 ZSA8IG1pbikNCi0JCQlyYS0+bmV4dF9zaXplID0gbWluOw0KKwkJcmEtPm5l eHRfc2l6ZSA9IC0xVUw7DQorCQlyYS0+c2l6ZSA9IDA7DQogCX0NCiB9DQog DQo= --8323328-1869086533-1096483567=:4449 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="5_fixedslowread.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="5_fixedslowread.patch" LS0tIGxpbnV4LTIuNi44L21tL3JlYWRhaGVhZC5jCTIwMDQtMDktMjkgMTc6 NTc6MDAuMTMzNTQ4Njg4IC0wNzAwDQorKysgbGludXgtMi42LjguY29tbWVu dC5wYWdlY2FjaGVoaXQucXVldWVjb25nZXN0aW9uLnBhZ2V0aHJhc2gvbW0v cmVhZGFoZWFkLmMJMjAwNC0wOS0yOSAxODoxMjo1OC45Njc3ODM3MjggLTA3 MDANCkBAIC0zNDYsMTMgKzM0NiwxOSBAQCBjaGVja19yYV9zdWNjZXNzKHN0 cnVjdCBmaWxlX3JhX3N0YXRlICpyDQogLyoNCiAgKiBwYWdlX2NhY2hlX3Jl YWRhaGVhZCBpcyB0aGUgbWFpbiBmdW5jdGlvbi4gIElmIHBlcmZvcm1zIHRo ZSBhZGFwdGl2ZQ0KICAqIHJlYWRhaGVhZCB3aW5kb3cgc2l6ZSBtYW5hZ2Vt ZW50IGFuZCBzdWJtaXRzIHRoZSByZWFkYWhlYWQgSS9PLg0KKyAqDQorICog VE9CRURPTkU6IHRoZSBzaXplIHBhcmFtZXRlciBpcyBjdXJyZW50bHkgdXNl ZCB0byByZWFkIHRoZSByZXF1ZXN0ZWQNCisgKiBudW1iZXIgb2YgcGFnZXMs IG9ubHkgd2hlbiB0aGUgcmVhZGFoZWFkIGlzIGRpc2FibGVkLiBUaGlzIHBh cmFtZXRlcg0KKyAqIGNhbiBiZSB1c2VkIHRvIGRvIG1vcmUgdXNlZnVsbHkg aW4gcmFtcGluZyB1cCBxdWlja2x5IHJlYWRhaGVhZCBzaXplDQorICogYXMg d2VsbCBhcyBvdmVybGFwaW5nIHJlYWQgb2YgY3VycmVudCB3aW5kb3cgYW5k IHJlYWRhaGVhZCB3aW5kb3cuDQogICovDQotdm9pZA0KK3Vuc2lnbmVkIGxv bmcNCiBwYWdlX2NhY2hlX3JlYWRhaGVhZChzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZywgc3RydWN0IGZpbGVfcmFfc3RhdGUgKnJhLA0KLQkJCXN0 cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBsb25nIG9mZnNldCkNCisJCQlz dHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBvZmZzZXQsDQorCQkJ dW5zaWduZWQgbG9uZyBzaXplKQ0KIHsNCi0JdW5zaWduZWQgbWF4Ow0KLQl1 bnNpZ25lZCBhY3R1YWw7DQorCXVuc2lnbmVkIGxvbmcgbWF4LCBtaW47DQor CXVuc2lnbmVkIGxvbmcgYWN0dWFsOw0KIAlpbnQgZmlyc3RfYWNjZXNzPTA7 DQogCXVuc2lnbmVkIGxvbmcgYXZlcmFnZTsNCiANCkBAIC0zNzUsNiArMzgx LDIwIEBAIHBhZ2VfY2FjaGVfcmVhZGFoZWFkKHN0cnVjdCBhZGRyZXNzX3Nw YWMNCiAJaWYgKG1heCA9PSAwKQ0KIAkJZ290byBvdXQ7CS8qIE5vIHJlYWRh aGVhZCAqLw0KIA0KKwlpZiAocmEtPm5leHRfc2l6ZSA9PSAtMVVMKSB7DQor CQl1bnNpZ25lZCBsb25nIHNfc2l6ZTsNCisJCS8qDQorCQkgKiBXZWxsIHJl YWRhaGVhZCBpcyBkaXNhYmxlZCEgU28ganVzdCByZWFkIGFzIG1hbnkNCisJ CSAqIHBhZ2VzIHJlcXVlc3RlZCBmb3Igbm93Lg0KKwkJICovDQorCQltaW4g PSBnZXRfbWluX3JlYWRhaGVhZChyYSk7DQorCQlzX3NpemUgPSBtaW4oKHVu c2lnbmVkIGxvbmcpKG1heCksICh1bnNpZ25lZCBsb25nKXNpemUpOw0KKwkJ aGFuZGxlX3JhX21pc3MobWFwcGluZywgcmEsIG9mZnNldCwgc19zaXplKTsN CisJCSh2b2lkIClmb3JjZV9wYWdlX2NhY2hlX3JlYWRhaGVhZChtYXBwaW5n LCBmaWxwLCANCisJCQkJCW9mZnNldCwgc19zaXplKTsNCisJCXJldHVybiBz X3NpemU7DQorCX0NCisNCiANCiAJaWYgKHJhLT5uZXh0X3NpemUgPT0gMCkg ew0KIAkJLyoNCkBAIC01MjEsNyArNTQxLDEwIEBAIGRvX2lvOg0KIAkJfQ0K IAl9DQogb3V0Og0KLQlyZXR1cm47DQorCSAvKiANCisJICAqIGhhbmRsZWQg dGhlIHJlcXVlc3QgZm9yIHBhZ2UgJ29mZnNldCcuIEhlbmNlIHJldHVybiAx Lg0KKwkgICovDQorCXJldHVybiAxOw0KIH0NCiANCiANCkBAIC01MzgsMjYg KzU2MSwyNyBAQCBvdXQ6DQogICogT3RoZXJ3aXNlIHdlJ3JlIHRocmFzaGlu ZywgY2xvc2UgdGhlIHJlYWRhaGVhZCB3aW5kb3cuIFRoZXJlIGlzIG5vIHBv aW50IA0KICAqIHJlYWRpbmcgYWhlYWQgaWYgcGFnZS10aHJhc2hpbmcgaXMg bm90aWNlZC4NCiAgKi8NCi12b2lkIGhhbmRsZV9yYV9taXNzKHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJc3RydWN0IGZpbGVfcmFfc3Rh dGUgKnJhLCBwZ29mZl90IG9mZnNldCkNCit2b2lkIA0KK2hhbmRsZV9yYV9t aXNzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3QgZmls ZV9yYV9zdGF0ZSAqcmEsIA0KKwkJcGdvZmZfdCBvZmZzZXQsIHVuc2lnbmVk IGxvbmcgc2l6ZSkNCiB7DQogCWlmIChyYS0+bmV4dF9zaXplID09IC0xVUwp IHsNCi0JCWNvbnN0IHVuc2lnbmVkIGxvbmcgbWF4ID0gZ2V0X21heF9yZWFk YWhlYWQocmEpOw0KLQ0KIAkJaWYgKG9mZnNldCAhPSByYS0+cHJldl9wYWdl ICsgMSkgew0KLQkJCXJhLT5zaXplID0gcmEtPnNpemU/cmEtPnNpemUtMTow OyAvKiBOb3Qgc2VxdWVudGlhbCAqLw0KKwkJCXJhLT5zaXplICs9IHNpemUg LSAyOw0KIAkJfSBlbHNlIHsNCi0JCQlyYS0+c2l6ZSsrOwkJCS8qIEEgc2Vx dWVudGlhbCByZWFkICovDQorCQkJY29uc3QgdW5zaWduZWQgbG9uZyBtYXgg PSBnZXRfbWF4X3JlYWRhaGVhZChyYSk7DQorCQkJcmEtPnNpemUgKz0gc2l6 ZTsNCiAJCQlpZiAocmEtPnNpemUgPj0gbWF4KSB7CQkvKiBSZXN1bWUgcmVh ZGFoZWFkICovDQotCQkJCXJhLT5zdGFydCA9IG9mZnNldCAtIG1heDsNCisJ CQkJcmEtPnN0YXJ0ID0gb2Zmc2V0ICsgc2l6ZSAtIG1heDsNCiAJCQkJcmEt Pm5leHRfc2l6ZSA9IG1heDsNCiAJCQkJcmEtPnNpemUgPSBtYXg7DQogCQkJ CXJhLT5haGVhZF9zdGFydCA9IDA7DQogCQkJCXJhLT5haGVhZF9zaXplID0g MDsNCiAJCQkJcmEtPmF2ZXJhZ2UgPSBtYXggLyAyOw0KKwkJCQlyYS0+Y3Vy cm50X3duZF9oaXQgPSAwOw0KIAkJCX0NCiAJCX0NCi0JCXJhLT5wcmV2X3Bh Z2UgPSBvZmZzZXQ7DQorCQlyYS0+cHJldl9wYWdlID0gb2Zmc2V0ICsgc2l6 ZSAtIDE7DQogCX0gZWxzZSB7DQogCQlyYS0+bmV4dF9zaXplID0gLTFVTDsN CiAJCXJhLT5zaXplID0gMDsNCg== --8323328-1869086533-1096483567=:4449-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/