Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Fri, 3 Nov 2000 10:46:34 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Fri, 3 Nov 2000 10:46:24 -0500 Received: from www.wen-online.de ([212.223.88.39]:11026 "EHLO wen-online.de") by vger.kernel.org with ESMTP id ; Fri, 3 Nov 2000 10:46:14 -0500 Date: Fri, 3 Nov 2000 16:45:51 +0100 (CET) From: Mike Galbraith To: linux-kernel cc: Jens Axboe , Rik van Riel , Tigran Aivazian Subject: Re: [BUG] /proc//stat access stalls badly for swapping process, 2.4.0-test10 In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="432202577-1720070474-973266351=:1496" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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. --432202577-1720070474-973266351=:1496 Content-Type: TEXT/PLAIN; charset=US-ASCII On Fri, 3 Nov 2000, Mike Galbraith wrote: > On Thu, 2 Nov 2000, Jens Axboe wrote: > > > On Thu, Nov 02 2000, Val Henson wrote: > > > > > 3) combine this with the elevator starvation stuff (ask Jens > > > > > Axboe for blk-7 to alleviate this issue) and you have a > > > > > scenario where processes using /proc//stat have the > > > > > possibility to block on multiple processes that are in the > > > > > process of handling a page fault (but are being starved) > > > > > > > > I'm experimenting with blk.[67] in test10 right now. The stalls > > > > are not helped at all. It doesn't seem to become request bound > > > > (haven't instrumented that yet to be sure) but the stalls persist. > > > > > > > > -Mike > > > > > > This is not an elevator starvation problem. > > > > True, but the blk-xx patches help work-around (what I believe) is > > bad flushing behaviour by the vm. > > I very much agree. Kflushd is still hungry for free write > bandwidth here. In the LKML tradition of code talks and silly opinions walk... Attached is a diagnostic patch which gets kflushd under control, and takes make -j30 bzImage build times down from 12 minutes to 9 here. I have no more massive context switching on write, and copies seem to go a lot quicker to boot. (that may be because some of my failures were really _really_ horrible) Comments are very welcome. I haven't had problems with this yet, but it's early so... This patch isn't supposed to be pretty either (hw techs don't do pretty;) it's only supposed to say 'Huston...' so be sure to grab a barfbag before you take a look. -Mike P.S. almost forgot. vmstat freezes were shortened too :-) --432202577-1720070474-973266351=:1496 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="vm_pudding.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="vm_pudding.diff" ZGlmZiAtdXJOIGxpbnV4LTIuNC4wLXRlc3QxMC52aXJnaW4vZnMvYnVmZmVy LmMgbGludXgtMi40LjAtdGVzdDEwLm1pa2UvZnMvYnVmZmVyLmMNCi0tLSBs aW51eC0yLjQuMC10ZXN0MTAudmlyZ2luL2ZzL2J1ZmZlci5jCVdlZCBOb3Yg IDEgMDY6NDI6NDAgMjAwMA0KKysrIGxpbnV4LTIuNC4wLXRlc3QxMC5taWtl L2ZzL2J1ZmZlci5jCUZyaSBOb3YgIDMgMTQ6NTk6MTAgMjAwMA0KQEAgLTM4 LDYgKzM4LDcgQEANCiAjaW5jbHVkZSA8bGludXgvc3dhcGN0bC5oPg0KICNp bmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KICNpbmNsdWRlIDxsaW51eC92 bWFsbG9jLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Jsay5oPg0KICNpbmNsdWRl IDxsaW51eC9ibGtkZXYuaD4NCiAjaW5jbHVkZSA8bGludXgvc3lzcnEuaD4N CiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KQEAgLTcwNSwxMyArNzA2LDEy IEBADQogLyoNCiAgKiBXZSB1c2VkIHRvIHRyeSB2YXJpb3VzIHN0cmFuZ2Ug dGhpbmdzLiBMZXQncyBub3QuDQogICovDQorc3RhdGljIGludCBmbHVzaF9k aXJ0eV9idWZmZXJzKGludCBtb2RlKTsNCisNCiBzdGF0aWMgdm9pZCByZWZp bGxfZnJlZWxpc3QoaW50IHNpemUpDQogew0KLQlpZiAoIWdyb3dfYnVmZmVy cyhzaXplKSkgew0KLQkJd2FrZXVwX2JkZmx1c2goMSk7ICAvKiBTZXRzIHRh c2stPnN0YXRlIHRvIFRBU0tfUlVOTklORyAqLw0KLQkJY3VycmVudC0+cG9s aWN5IHw9IFNDSEVEX1lJRUxEOw0KLQkJc2NoZWR1bGUoKTsNCi0JfQ0KKwlp ZiAoIWdyb3dfYnVmZmVycyhzaXplKSkNCisJCWZsdXNoX2RpcnR5X2J1ZmZl cnMoMik7DQogfQ0KIA0KIHZvaWQgaW5pdF9idWZmZXIoc3RydWN0IGJ1ZmZl cl9oZWFkICpiaCwgYmhfZW5kX2lvX3QgKmhhbmRsZXIsIHZvaWQgKnByaXZh dGUpDQpAQCAtODU5LDcgKzg1OSw5IEBADQogDQogLyogLTEgLT4gbm8gbmVl ZCB0byBmbHVzaA0KICAgICAwIC0+IGFzeW5jIGZsdXNoDQotICAgIDEgLT4g c3luYyBmbHVzaCAod2FpdCBmb3IgSS9PIGNvbXBsZXRhdGlvbikgKi8NCisg ICAgMSAtPiBzeW5jIGZsdXNoICh3YWl0IGZvciBJL08gY29tcGxldGF0aW9u KQ0KKyAgICB0aHJvdHRsZV9JTyB3aWxsIGJlIHNldCBieSBrZmx1c2hkIHRv IGluZGljYXRlIElPIHNhdHVyYXRpb24uICovDQoraW50IHRocm90dGxlX0lP Ow0KIGludCBiYWxhbmNlX2RpcnR5X3N0YXRlKGtkZXZfdCBkZXYpDQogew0K IAl1bnNpZ25lZCBsb25nIGRpcnR5LCB0b3QsIGhhcmRfZGlydHlfbGltaXQs IHNvZnRfZGlydHlfbGltaXQ7DQpAQCAtMjQ2OSw2ICsyNDcxLDcgQEANCiAg KiByZXNwb25zZSB0byBkaXJ0eSBidWZmZXJzLiAgT25jZSB0aGlzIHByb2Nl c3MgaXMgYWN0aXZhdGVkLCB3ZSB3cml0ZSBiYWNrDQogICogYSBsaW1pdGVk IG51bWJlciBvZiBidWZmZXJzIHRvIHRoZSBkaXNrcyBhbmQgdGhlbiBnbyBi YWNrIHRvIHNsZWVwIGFnYWluLg0KICAqLw0KK3N0YXRpYyBERUNMQVJFX1dB SVRfUVVFVUVfSEVBRChiZGZsdXNoX3dhaXQpOw0KIHN0YXRpYyBERUNMQVJF X1dBSVRfUVVFVUVfSEVBRChiZGZsdXNoX2RvbmUpOw0KIHN0cnVjdCB0YXNr X3N0cnVjdCAqYmRmbHVzaF90c2sgPSAwOw0KIA0KQEAgLTI0NzYsMTEgKzI0 NzksMTIgQEANCiB7DQogCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJl bnQpOw0KIA0KLQlpZiAoY3VycmVudCA9PSBiZGZsdXNoX3RzaykNCisJaWYg KGN1cnJlbnQtPmZsYWdzICYgUEZfTUVNQUxMT0MpDQogCQlyZXR1cm47DQog DQogCWlmICghYmxvY2spIHsNCi0JCXdha2VfdXBfcHJvY2VzcyhiZGZsdXNo X3Rzayk7DQorCQlpZiAod2FpdHF1ZXVlX2FjdGl2ZSgmYmRmbHVzaF93YWl0 KSkNCisJCXdha2VfdXAoJmJkZmx1c2hfd2FpdCk7DQogCQlyZXR1cm47DQog CX0NCiANCkBAIC0yNDkxLDcgKzI0OTUsOSBAQA0KIAlfX3NldF9jdXJyZW50 X3N0YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsNCiAJYWRkX3dhaXRfcXVl dWUoJmJkZmx1c2hfZG9uZSwgJndhaXQpOw0KIA0KLQl3YWtlX3VwX3Byb2Nl c3MoYmRmbHVzaF90c2spOw0KKwlpZiAod2FpdHF1ZXVlX2FjdGl2ZSgmYmRm bHVzaF93YWl0KSkNCisJCXdha2VfdXAoJmJkZmx1c2hfd2FpdCk7DQorCWN1 cnJlbnQtPnBvbGljeSB8PSBTQ0hFRF9ZSUVMRDsNCiAJc2NoZWR1bGUoKTsN CiANCiAJcmVtb3ZlX3dhaXRfcXVldWUoJmJkZmx1c2hfZG9uZSwgJndhaXQp Ow0KQEAgLTI1MDMsMTEgKzI1MDksMTkgQEANCiAgICBOT1RFTk9URU5PVEVO T1RFOiB3ZSBfb25seV8gbmVlZCB0byBicm93c2UgdGhlIERJUlRZIGxydSBs aXN0DQogICAgYXMgYWxsIGRpcnR5IGJ1ZmZlcnMgbGl2ZXMgX29ubHlfIGlu IHRoZSBESVJUWSBscnUgbGlzdC4NCiAgICBBcyB3ZSBuZXZlciBicm93c2Ug dGhlIExPQ0tFRCBhbmQgQ0xFQU4gbHJ1IGxpc3RzIHRoZXkgYXJlIGluZmFj dA0KLSAgIGNvbXBsZXRseSB1c2VsZXNzLiAqLw0KLXN0YXRpYyBpbnQgZmx1 c2hfZGlydHlfYnVmZmVycyhpbnQgY2hlY2tfZmx1c2h0aW1lKQ0KKyAgIGNv bXBsZXRseSB1c2VsZXNzLg0KKyAgIG1vZGVzOiAwID0gY2hlY2sgYmRmX3By bS5iX3VuLm5kaXJ0eSBba2ZsdXNoZF0NCisgICAgICAgICAgMSA9IGNoZWNr IGZsdXNodGltZSBba3VwZGF0ZV0NCisgICAgICAgICAgMiA9IGNoZWNrIGJk Zl9wcm0uYl91bi5ucmVmaWxsIFtyZWZpbGxfZnJlZWxpc3QoKV0gKi8NCisj ZGVmaW5lICBNT0RFX0tGTFVTSEQgMA0KKyNkZWZpbmUgIE1PREVfS1VQREFU RSAxDQorI2RlZmluZSAgTU9ERV9SRUZJTEwgMg0KK3N0YXRpYyBpbnQgZmx1 c2hfZGlydHlfYnVmZmVycyhpbnQgbW9kZSkNCiB7DQogCXN0cnVjdCBidWZm ZXJfaGVhZCAqIGJoLCAqbmV4dDsNCisJcmVxdWVzdF9xdWV1ZV90ICpxOw0K IAlpbnQgZmx1c2hlZCA9IDAsIGk7DQorCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 DQogDQogIHJlc3RhcnQ6DQogCXNwaW5fbG9jaygmbHJ1X2xpc3RfbG9jayk7 DQpAQCAtMjUyNCwzMSArMjUzOCw1MiBAQA0KIAkJaWYgKGJ1ZmZlcl9sb2Nr ZWQoYmgpKQ0KIAkJCWNvbnRpbnVlOw0KIA0KLQkJaWYgKGNoZWNrX2ZsdXNo dGltZSkgew0KKwkJaWYgKG1vZGUgPT0gTU9ERV9LVVBEQVRFKSB7DQogCQkJ LyogVGhlIGRpcnR5IGxydSBsaXN0IGlzIGNocm9ub2xvZ2ljYWxseSBvcmRl cmVkIHNvDQogCQkJICAgaWYgdGhlIGN1cnJlbnQgYmggaXMgbm90IHlldCB0 aW1lZCBvdXQsDQogCQkJICAgdGhlbiBhbHNvIGFsbCB0aGUgZm9sbG93aW5n IGJocw0KIAkJCSAgIHdpbGwgYmUgdG9vIHlvdW5nLiAqLw0KIAkJCWlmICh0 aW1lX2JlZm9yZShqaWZmaWVzLCBiaC0+Yl9mbHVzaHRpbWUpKQ0KIAkJCQln b3RvIG91dF91bmxvY2s7DQorCQl9IGVsc2UgaWYgKE1PREVfS0ZMVVNIRCkg ew0KKwkJCWlmIChmbHVzaGVkID49IGJkZl9wcm0uYl91bi5uZGlydHkpDQor CQkJCWdvdG8gb3V0X3VubG9jazsNCiAJCX0gZWxzZSB7DQotCQkJaWYgKCsr Zmx1c2hlZCA+IGJkZl9wcm0uYl91bi5uZGlydHkpDQorCQkJaWYgKGZsdXNo ZWQgPj0gYmRmX3BybS5iX3VuLm5yZWZpbGwpDQogCQkJCWdvdG8gb3V0X3Vu bG9jazsNCiAJCX0NCiANCi0JCS8qIE9LLCBub3cgd2UgYXJlIGNvbW1pdHRl ZCB0byB3cml0ZSBpdCBvdXQuICovDQorCQkvKiBXZSBhcmUgYWxtb3N0IGNv bW1pdHRlZCB0byB3cml0ZSBpdCBvdXQuICovDQogCQlhdG9taWNfaW5jKCZi aC0+Yl9jb3VudCk7DQorCQlxID0gYmxrX2dldF9xdWV1ZShiaC0+Yl9yZGV2 KTsNCisJCXNwaW5fbG9ja19pcnFzYXZlKCZxLT5yZXF1ZXN0X2xvY2ssIGZs YWdzKTsNCiAJCXNwaW5fdW5sb2NrKCZscnVfbGlzdF9sb2NrKTsNCisJCWlm IChsaXN0X2VtcHR5KCZxLT5yZXF1ZXN0X2ZyZWVsaXN0W1dSSVRFXSkpIHsN CisJCQl0aHJvdHRsZV9JTyA9IDE7DQorCQkJYXRvbWljX2RlYygmYmgtPmJf Y291bnQpOw0KKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnEtPnJlcXVl c3RfbG9jaywgZmxhZ3MpOw0KKwkJCXJ1bl90YXNrX3F1ZXVlKCZ0cV9kaXNr KTsNCisJCQlicmVhazsNCisJCX0gZWxzZQ0KKwkJCXRocm90dGxlX0lPID0g MDsNCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnEtPnJlcXVlc3RfbG9j aywgZmxhZ3MpOw0KKwkJLyogT0ssIG5vdyB3ZSBhcmUgcmVhbGx5IGNvbW1p dHRlZC4gKi8NCisNCiAJCWxsX3J3X2Jsb2NrKFdSSVRFLCAxLCAmYmgpOw0K IAkJYXRvbWljX2RlYygmYmgtPmJfY291bnQpOw0KKwkJZmx1c2hlZCsrOw0K IA0KLQkJaWYgKGN1cnJlbnQtPm5lZWRfcmVzY2hlZCkNCi0JCQlzY2hlZHVs ZSgpOw0KKwkJaWYgKGN1cnJlbnQtPm5lZWRfcmVzY2hlZCkgew0KKwkJCWlm ICghKG1vZGUgPT0gTU9ERV9LRkxVU0hEKSkNCisJCQkJc2NoZWR1bGUoKTsN CisJCQllbHNlDQorCQkJCWdvdG8gb3V0Ow0KKwkJfQ0KIAkJZ290byByZXN0 YXJ0Ow0KIAl9DQotIG91dF91bmxvY2s6DQorb3V0X3VubG9jazoNCiAJc3Bp bl91bmxvY2soJmxydV9saXN0X2xvY2spOw0KLQ0KK291dDoNCiAJcmV0dXJu IGZsdXNoZWQ7DQogfQ0KIA0KQEAgLTI2NDAsNyArMjY3NSw3IEBADQogaW50 IGJkZmx1c2godm9pZCAqc2VtKQ0KIHsNCiAJc3RydWN0IHRhc2tfc3RydWN0 ICp0c2sgPSBjdXJyZW50Ow0KLQlpbnQgZmx1c2hlZDsNCisJaW50IGZsdXNo ZWQsIGRpcnR5LCBwZGlydHk9MDsNCiAJLyoNCiAJICoJV2UgaGF2ZSBhIGJh cmUtYm9uZXMgdGFza19zdHJ1Y3QsIGFuZCByZWFsbHkgc2hvdWxkIGZpbGwN CiAJICoJaW4gYSBmZXcgbW9yZSB0aGluZ3Mgc28gInRvcCIgYW5kIC9wcm9j LzIve2V4ZSxyb290LGN3ZH0NCkBAIC0yNjQ5LDYgKzI2ODQsNyBAQA0KIA0K IAl0c2stPnNlc3Npb24gPSAxOw0KIAl0c2stPnBncnAgPSAxOw0KKwl0c2st PmZsYWdzIHw9IFBGX01FTUFMTE9DOw0KIAlzdHJjcHkodHNrLT5jb21tLCAi a2ZsdXNoZCIpOw0KIAliZGZsdXNoX3RzayA9IHRzazsNCiANCkBAIC0yNjY0 LDMyICsyNzAwLDM5IEBADQogCWZvciAoOzspIHsNCiAJCUNIRUNLX0VNRVJH RU5DWV9TWU5DDQogDQorCQlpZiAoYmFsYW5jZV9kaXJ0eV9zdGF0ZShOT0RF VikgPCAwKQ0KKwkJCWdvdG8gc2xlZXA7DQorDQogCQlmbHVzaGVkID0gZmx1 c2hfZGlydHlfYnVmZmVycygwKTsNCiAJCWlmIChmcmVlX3Nob3J0YWdlKCkp DQogCQkJZmx1c2hlZCArPSBwYWdlX2xhdW5kZXIoR0ZQX0JVRkZFUiwgMCk7 DQogDQotCQkvKiBJZiB3YWtldXBfYmRmbHVzaCB3aWxsIHdha2V1cCB1cw0K LQkJICAgYWZ0ZXIgb3VyIGJkZmx1c2hfZG9uZSB3YWtldXAsIHRoZW4NCi0J CSAgIHdlIG11c3QgbWFrZSBzdXJlIHRvIG5vdCBzbGVlcA0KLQkJICAgaW4g c2NoZWR1bGVfdGltZW91dCBvdGhlcndpc2UNCi0JCSAgIHdha2V1cF9iZGZs dXNoIG1heSB3YWl0IGZvciBvdXINCi0JCSAgIGJkZmx1c2hfZG9uZSB3YWtl dXAgdGhhdCB3b3VsZCBuZXZlciBhcnJpdmUNCi0JCSAgIChhcyB3ZSB3b3Vs ZCBiZSBzbGVlcGluZykgYW5kIHNvIGl0IHdvdWxkDQotCQkgICBkZWFkbG9j ayBpbiBTTVAuICovDQotCQlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5U RVJSVVBUSUJMRSk7DQotCQl3YWtlX3VwX2FsbCgmYmRmbHVzaF9kb25lKTsN CisjaWYgMA0KKwkJLyoNCisJCSAqIERpZCBzb21lb25lIGNyZWF0ZSBsb3Rz IG9mIGRpcnR5IGJ1ZmZlcnMgd2hpbGUgd2Ugc2xlcHQ/DQorCQkgKi8NCisJ CWRpcnR5ID0gc2l6ZV9idWZmZXJzX3R5cGVbQlVGX0RJUlRZXSA+PiBQQUdF X1NISUZUOw0KKwkJaWYgKGRpcnR5IC0gcGRpcnR5ID4gZmx1c2hlZCAmJiB0 aHJvdHRsZV9JTykgew0KKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgDQorCQkJ ImtmbHVzaGQ6IHBkaXJ0eSglZCkgZGlydGllZCAoJWQpIGZsdXNoZWQgKCVk KVxuIiwNCisJCQlwZGlydHksIHBkaXJ0eSAtIGRpcnR5LCBmbHVzaGVkKTsN CisJCX0NCisJCXBkaXJ0eSA9IGRpcnR5Ow0KKyNlbmRpZg0KKw0KKwkJcnVu X3Rhc2tfcXVldWUoJnRxX2Rpc2spOw0KKwkJaWYgKGZsdXNoZWQpDQorCQkJ d2FrZV91cF9hbGwoJmJkZmx1c2hfZG9uZSk7DQogCQkvKg0KIAkJICogSWYg dGhlcmUgYXJlIHN0aWxsIGEgbG90IG9mIGRpcnR5IGJ1ZmZlcnMgYXJvdW5k LA0KLQkJICogc2tpcCB0aGUgc2xlZXAgYW5kIGZsdXNoIHNvbWUgbW9yZS4g T3RoZXJ3aXNlLCB3ZQ0KKwkJICogd2Ugc2xlZXAgYW5kIHRoZSBmbHVzaCBz b21lIG1vcmUuIE90aGVyd2lzZSwgd2UNCiAJCSAqIGdvIHRvIHNsZWVwIHdh aXRpbmcgYSB3YWtldXAuDQogCQkgKi8NCi0JCWlmICghZmx1c2hlZCB8fCBi YWxhbmNlX2RpcnR5X3N0YXRlKE5PREVWKSA8IDApIHsNCi0JCQlydW5fdGFz a19xdWV1ZSgmdHFfZGlzayk7DQotCQkJc2NoZWR1bGUoKTsNCisJCWlmIChi YWxhbmNlX2RpcnR5X3N0YXRlKE5PREVWKSA8IDApIHsNCitzbGVlcDoNCisJ CQl3YWtlX3VwX2FsbCgmYmRmbHVzaF9kb25lKTsNCisJCQlpbnRlcnJ1cHRp YmxlX3NsZWVwX29uX3RpbWVvdXQoJmJkZmx1c2hfd2FpdCwgSFovMTApOw0K IAkJfQ0KLQkJLyogUmVtZW1iZXIgdG8gbWFyayB1cyBhcyBydW5uaW5nIG90 aGVyd2lzZQ0KLQkJICAgdGhlIG5leHQgc2NoZWR1bGUgd2lsbCBibG9jay4g Ki8NCi0JCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsNCiAJ fQ0KIH0NCiANCkBAIC0yNzA2LDYgKzI3NDksNyBAQA0KIA0KIAl0c2stPnNl c3Npb24gPSAxOw0KIAl0c2stPnBncnAgPSAxOw0KKwl0c2stPmZsYWdzIHw9 IFBGX01FTUFMTE9DOw0KIAlzdHJjcHkodHNrLT5jb21tLCAia3VwZGF0ZSIp Ow0KIA0KIAkvKiBzaWdzdG9wIGFuZCBzaWdjb250IHdpbGwgc3RvcCBhbmQg d2FrZXVwIGt1cGRhdGUgKi8NCmRpZmYgLXVyTiBsaW51eC0yLjQuMC10ZXN0 MTAudmlyZ2luL21tL3BhZ2VfYWxsb2MuYyBsaW51eC0yLjQuMC10ZXN0MTAu bWlrZS9tbS9wYWdlX2FsbG9jLmMNCi0tLSBsaW51eC0yLjQuMC10ZXN0MTAu dmlyZ2luL21tL3BhZ2VfYWxsb2MuYwlXZWQgTm92ICAxIDA2OjQyOjQ1IDIw MDANCisrKyBsaW51eC0yLjQuMC10ZXN0MTAubWlrZS9tbS9wYWdlX2FsbG9j LmMJRnJpIE5vdiAgMyAxNToyMjo1NSAyMDAwDQpAQCAtMjg1LDcgKzI4NSw3 IEBADQogc3RydWN0IHBhZ2UgKiBfX2FsbG9jX3BhZ2VzKHpvbmVsaXN0X3Qg KnpvbmVsaXN0LCB1bnNpZ25lZCBsb25nIG9yZGVyKQ0KIHsNCiAJem9uZV90 ICoqem9uZTsNCi0JaW50IGRpcmVjdF9yZWNsYWltID0gMDsNCisJaW50IGRp cmVjdF9yZWNsYWltID0gMCwgc3RyaWtlcyA9IDA7DQogCXVuc2lnbmVkIGlu dCBnZnBfbWFzayA9IHpvbmVsaXN0LT5nZnBfbWFzazsNCiAJc3RydWN0IHBh Z2UgKiBwYWdlOw0KIA0KQEAgLTMxMCwyMiArMzEwLDMwIEBADQogCQkJIShj dXJyZW50LT5mbGFncyAmIFBGX01FTUFMTE9DKSkNCiAJCWRpcmVjdF9yZWNs YWltID0gMTsNCiANCi0JLyoNCi0JICogSWYgd2UgYXJlIGFib3V0IHRvIGdl dCBsb3cgb24gZnJlZSBwYWdlcyBhbmQgd2UgYWxzbyBoYXZlDQotCSAqIGFu IGluYWN0aXZlIHBhZ2Ugc2hvcnRhZ2UsIHdha2UgdXAga3N3YXBkLg0KLQkg Ki8NCi0JaWYgKGluYWN0aXZlX3Nob3J0YWdlKCkgPiBpbmFjdGl2ZV90YXJn ZXQgLyAyICYmIGZyZWVfc2hvcnRhZ2UoKSkNCi0JCXdha2V1cF9rc3dhcGQo MCk7DQorI2RlZmluZSBTVFJJS0VfT05FIFwNCisJKHN0cmlrZXMrKyAmJiAo Z2ZwX21hc2sgJiBHRlBfVVNFUikgPT0gR0ZQX1VTRVIpDQorI2RlZmluZSBT VFJJS0VfVFdPIFwNCisJKHN0cmlrZXMrKyA8IDIgJiYgKGdmcF9tYXNrICYg R0ZQX1VTRVIpID09IEdGUF9VU0VSKQ0KKyNkZWZpbmUgU1RSSUtFX1RIUkVF IFwNCisJKHN0cmlrZXMrKyA8IDMgJiYgKGdmcF9tYXNrICYgR0ZQX1VTRVIp ID09IEdGUF9VU0VSKQ0KKyNkZWZpbmUgU1RSSUtFX1RIUkVFX05PSU8gXA0K Kwkoc3RyaWtlcysrIDwgMyAmJiAoZ2ZwX21hc2sgJiBHRlBfVVNFUikgPT0g X19HRlBfV0FJVCkNCiAJLyoNCiAJICogSWYgd2UgYXJlIGFib3V0IHRvIGdl dCBsb3cgb24gZnJlZSBwYWdlcyBhbmQgY2xlYW5pbmcNCiAJICogdGhlIGlu YWN0aXZlX2RpcnR5IHBhZ2VzIHdvdWxkIGZpeCB0aGUgc2l0dWF0aW9uLA0K IAkgKiB3YWtlIHVwIGJkZmx1c2guDQogCSAqLw0KLQllbHNlIGlmIChmcmVl X3Nob3J0YWdlKCkgJiYgbnJfaW5hY3RpdmVfZGlydHlfcGFnZXMgPiBmcmVl X3Nob3J0YWdlKCkNCit0cnlfYWdhaW46DQorCWlmIChmcmVlX3Nob3J0YWdl KCkgJiYgbnJfaW5hY3RpdmVfZGlydHlfcGFnZXMgPiBmcmVlX3Nob3J0YWdl KCkNCiAJCQkmJiBucl9pbmFjdGl2ZV9kaXJ0eV9wYWdlcyA+PSBmcmVlcGFn ZXMuaGlnaCkNCi0JCXdha2V1cF9iZGZsdXNoKDApOw0KKwkJd2FrZXVwX2Jk Zmx1c2goU1RSSUtFX09ORSk7DQorCS8qDQorCSAqIElmIHdlIGFyZSBhYm91 dCB0byBnZXQgbG93IG9uIGZyZWUgcGFnZXMgYW5kIHdlIGFsc28gaGF2ZQ0K KwkgKiBhbiBpbmFjdGl2ZSBwYWdlIHNob3J0YWdlLCB3YWtlIHVwIGtzd2Fw ZC4NCisJICovDQorCWVsc2UgaWYgKGluYWN0aXZlX3Nob3J0YWdlKCkgfHwg ZnJlZV9zaG9ydGFnZSgpKQ0KKwkJd2FrZXVwX2tzd2FwZChTVFJJS0VfT05F KTsNCiANCi10cnlfYWdhaW46DQogCS8qDQogCSAqIEZpcnN0LCBzZWUgaWYg d2UgaGF2ZSBhbnkgem9uZXMgd2l0aCBsb3RzIG9mIGZyZWUgbWVtb3J5Lg0K IAkgKg0KQEAgLTM3NCwzNSArMzgyLDE2IEBADQogCWlmIChwYWdlKQ0KIAkJ cmV0dXJuIHBhZ2U7DQogDQotCS8qDQotCSAqIE9LLCBub25lIG9mIHRoZSB6 b25lcyBvbiBvdXIgem9uZWxpc3QgaGFzIGxvdHMNCi0JICogb2YgcGFnZXMg ZnJlZS4NCi0JICoNCi0JICogV2Ugd2FrZSB1cCBrc3dhcGQsIGluIHRoZSBo b3BlIHRoYXQga3N3YXBkIHdpbGwNCi0JICogcmVzb2x2ZSB0aGlzIHNpdHVh dGlvbiBiZWZvcmUgbWVtb3J5IGdldHMgdGlnaHQuDQotCSAqDQotCSAqIFdl IGFsc28geWllbGQgdGhlIENQVSwgYmVjYXVzZSB0aGF0Og0KLQkgKiAtIGdp dmVzIGtzd2FwZCBhIGNoYW5jZSB0byBkbyBzb21ldGhpbmcNCi0JICogLSBz bG93cyBkb3duIGFsbG9jYXRpb25zLCBpbiBwYXJ0aWN1bGFyIHRoZQ0KLQkg KiAgIGFsbG9jYXRpb25zIGZyb20gdGhlIGZhc3QgYWxsb2NhdG9yIHRoYXQn cw0KLQkgKiAgIGNhdXNpbmcgdGhlIHByb2JsZW1zIC4uLg0KLQkgKiAtIC4u LiB3aGljaCBtaW5pbWlzZXMgdGhlIGltcGFjdCB0aGUgImJhZCBndXlzIg0K LQkgKiAgIGhhdmUgb24gdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbQ0KLQkgKiAt IGlmIHdlIGRvbid0IGhhdmUgX19HRlBfSU8gc2V0LCBrc3dhcGQgbWF5IGJl DQotCSAqICAgYWJsZSB0byBmcmVlIHNvbWUgbWVtb3J5IHdlIGNhbid0IGZy ZWUgb3Vyc2VsdmVzDQotCSAqLw0KLQl3YWtldXBfa3N3YXBkKDApOw0KLQlp ZiAoZ2ZwX21hc2sgJiBfX0dGUF9XQUlUKSB7DQotCQlfX3NldF9jdXJyZW50 X3N0YXRlKFRBU0tfUlVOTklORyk7DQorCWlmIChTVFJJS0VfVFdPKSB7DQog CQljdXJyZW50LT5wb2xpY3kgfD0gU0NIRURfWUlFTEQ7DQotCQlzY2hlZHVs ZSgpOw0KKwkJZ290byB0cnlfYWdhaW47DQogCX0NCiANCiAJLyoNCi0JICog QWZ0ZXIgd2FraW5nIHVwIGtzd2FwZCwgd2UgdHJ5IHRvIGFsbG9jYXRlIGEg cGFnZQ0KKwkgKiBBZnRlciB3YWtpbmcgdXAgZGFlbW9ucywgd2UgdHJ5IHRv IGFsbG9jYXRlIGEgcGFnZQ0KIAkgKiBmcm9tIGFueSB6b25lIHdoaWNoIGlz bid0IGNyaXRpY2FsIHlldC4NCiAJICoNCi0JICogS3N3YXBkIHNob3VsZCwg aW4gbW9zdCBzaXR1YXRpb25zLCBicmluZyB0aGUgc2l0dWF0aW9uDQorCSAq IEtzd2FwZC9rZmx1c2hkIHNob3VsZCwgaW4gbW9zdCBzaXR1YXRpb25zLCBi cmluZyB0aGUgc2l0dWF0aW9uDQogCSAqIGJhY2sgdG8gbm9ybWFsIGluIG5v IHRpbWUuDQogCSAqLw0KIAlwYWdlID0gX19hbGxvY19wYWdlc19saW1pdCh6 b25lbGlzdCwgb3JkZXIsIFBBR0VTX01JTiwgZGlyZWN0X3JlY2xhaW0pOw0K QEAgLTQyNiw3ICs0MTUsNyBAQA0KIAkJICogaW4gdGhlIGhvcGUgb2YgY3Jl YXRpbmcgYSBsYXJnZSwgcGh5c2ljYWxseSBjb250aWd1b3VzDQogCQkgKiBw aWVjZSBvZiBmcmVlIG1lbW9yeS4NCiAJCSAqLw0KLQkJaWYgKG9yZGVyID4g MCAmJiAoZ2ZwX21hc2sgJiBfX0dGUF9XQUlUKSkgew0KKwkJaWYgKGdmcF9t YXNrICYgX19HRlBfV0FJVCkgew0KIAkJCXpvbmUgPSB6b25lbGlzdC0+em9u ZXM7DQogCQkJLyogRmlyc3QsIGNsZWFuIHNvbWUgZGlydHkgcGFnZXMuICov DQogCQkJcGFnZV9sYXVuZGVyKGdmcF9tYXNrLCAxKTsNCkBAIC00NjMsMjYg KzQ1MiwyMyBAQA0KIAkJICogc2ltcGx5IGNhbm5vdCBmcmVlIGEgbGFyZ2Ug ZW5vdWdoIGNvbnRpZ3VvdXMgYXJlYQ0KIAkJICogb2YgbWVtb3J5ICpldmVy Ki4NCiAJCSAqLw0KLQkJaWYgKChnZnBfbWFzayAmIChfX0dGUF9XQUlUfF9f R0ZQX0lPKSkgPT0gKF9fR0ZQX1dBSVR8X19HRlBfSU8pKSB7DQorCQlpZiAo fmdmcF9tYXNrICYgX19HRlBfSElHSCAmJiBTVFJJS0VfVEhSRUUpIHsNCisJ CQltZW1vcnlfcHJlc3N1cmUrKzsNCiAJCQl3YWtldXBfa3N3YXBkKDEpOw0K KwkJCWdvdG8gdHJ5X2FnYWluOw0KKwkJfSBlbHNlIGlmICh+Z2ZwX21hc2sg JiBfX0dGUF9ISUdIICYmIFNUUklLRV9USFJFRV9OT0lPKSB7DQorCQkJLyoN CisJCSAJKiBJZiBfX0dGUF9JTyBpc24ndCBzZXQsIHdlIGNhbid0IHdhaXQg b24ga3N3YXBkIGJlY2F1c2UNCisJCSAJKiBkYWVtb25zIGp1c3QgbWlnaHQg bmVlZCBzb21lIElPIGxvY2tzIC93ZS8gYXJlIGhvbGRpbmcgLi4uDQorCQkg CSoNCisJCSAJKiBTVUJUTEU6IFRoZSBzY2hlZHVsaW5nIHBvaW50IGFib3Zl IG1ha2VzIHN1cmUgdGhhdA0KKwkJIAkqIGtzd2FwZCBkb2VzIGdldCB0aGUg Y2hhbmNlIHRvIGZyZWUgbWVtb3J5IHdlIGNhbid0DQorCQkgCSogZnJlZSBv dXJzZWx2ZXMuLi4NCisJCSAJKi8NCiAJCQltZW1vcnlfcHJlc3N1cmUrKzsN Ci0JCQlpZiAoIW9yZGVyKQ0KLQkJCQlnb3RvIHRyeV9hZ2FpbjsNCi0JCS8q DQotCQkgKiBJZiBfX0dGUF9JTyBpc24ndCBzZXQsIHdlIGNhbid0IHdhaXQg b24ga3N3YXBkIGJlY2F1c2UNCi0JCSAqIGtzd2FwZCBqdXN0IG1pZ2h0IG5l ZWQgc29tZSBJTyBsb2NrcyAvd2UvIGFyZSBob2xkaW5nIC4uLg0KLQkJICoN Ci0JCSAqIFNVQlRMRTogVGhlIHNjaGVkdWxpbmcgcG9pbnQgYWJvdmUgbWFr ZXMgc3VyZSB0aGF0DQotCQkgKiBrc3dhcGQgZG9lcyBnZXQgdGhlIGNoYW5j ZSB0byBmcmVlIG1lbW9yeSB3ZSBjYW4ndA0KLQkJICogZnJlZSBvdXJzZWx2 ZXMuLi4NCi0JCSAqLw0KLQkJfSBlbHNlIGlmIChnZnBfbWFzayAmIF9fR0ZQ X1dBSVQpIHsNCiAJCQl0cnlfdG9fZnJlZV9wYWdlcyhnZnBfbWFzayk7DQot CQkJbWVtb3J5X3ByZXNzdXJlKys7DQotCQkJaWYgKCFvcmRlcikNCi0JCQkJ Z290byB0cnlfYWdhaW47DQorCQkJZ290byB0cnlfYWdhaW47DQogCQl9DQot DQogCX0NCiANCiAJLyoNCmRpZmYgLXVyTiBsaW51eC0yLjQuMC10ZXN0MTAu dmlyZ2luL21tL3Ztc2Nhbi5jIGxpbnV4LTIuNC4wLXRlc3QxMC5taWtlL21t L3Ztc2Nhbi5jDQotLS0gbGludXgtMi40LjAtdGVzdDEwLnZpcmdpbi9tbS92 bXNjYW4uYwlXZWQgTm92ICAxIDA2OjQyOjQ1IDIwMDANCisrKyBsaW51eC0y LjQuMC10ZXN0MTAubWlrZS9tbS92bXNjYW4uYwlGcmkgTm92ICAzIDE1OjIw OjMyIDIwMDANCkBAIC01NjIsNiArNTYyLDcgQEANCiAgKiBnbyBvdXQgdG8g TWF0dGhldyBEaWxsb24uDQogICovDQogI2RlZmluZSBNQVhfTEFVTkRFUiAJ CSg0ICogKDEgPDwgcGFnZV9jbHVzdGVyKSkNCitleHRlcm4gaW50IHRocm90 dGxlX0lPOw0KIGludCBwYWdlX2xhdW5kZXIoaW50IGdmcF9tYXNrLCBpbnQg c3luYykNCiB7DQogCWludCBsYXVuZGVyX2xvb3AsIG1heHNjYW4sIGNsZWFu ZWRfcGFnZXMsIG1heGxhdW5kZXI7DQpAQCAtNTczLDcgKzU3NCw3IEBADQog CSAqIFdlIGNhbiBvbmx5IGdyYWIgdGhlIElPIGxvY2tzIChlZy4gZm9yIGZs dXNoaW5nIGRpcnR5DQogCSAqIGJ1ZmZlcnMgdG8gZGlzaykgaWYgX19HRlBf SU8gaXMgc2V0Lg0KIAkgKi8NCi0JY2FuX2dldF9pb19sb2NrcyA9IGdmcF9t YXNrICYgX19HRlBfSU87DQorCWNhbl9nZXRfaW9fbG9ja3MgPSBnZnBfbWFz ayAmIF9fR0ZQX0lPICYmICF0aHJvdHRsZV9JTzsNCiANCiAJbGF1bmRlcl9s b29wID0gMDsNCiAJbWF4bGF1bmRlciA9IDA7DQpAQCAtMTA1MCwxMyArMTA1 MSwyMyBAQA0KIAlmb3IgKDs7KSB7DQogCQlzdGF0aWMgaW50IHJlY2FsYyA9 IDA7DQogDQorCQkvKiBPbmNlIGEgc2Vjb25kLCByZWNhbGN1bGF0ZSBzb21l IFZNIHN0YXRzLiAqLw0KKwkJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgcmVj YWxjICsgSFopKSB7DQorCQkJcmVjYWxjID0gamlmZmllczsNCisJCQlyZWNh bGN1bGF0ZV92bV9zdGF0cygpOw0KKwkJfQ0KKw0KIAkJLyogSWYgbmVlZGVk LCB0cnkgdG8gZnJlZSBzb21lIG1lbW9yeS4gKi8NCiAJCWlmIChpbmFjdGl2 ZV9zaG9ydGFnZSgpIHx8IGZyZWVfc2hvcnRhZ2UoKSkgew0KIAkJCWludCB3 YWl0ID0gMDsNCiAJCQkvKiBEbyB3ZSBuZWVkIHRvIGRvIHNvbWUgc3luY2hy b25vdXMgZmx1c2hpbmc/ICovDQogCQkJaWYgKHdhaXRxdWV1ZV9hY3RpdmUo Jmtzd2FwZF9kb25lKSkNCiAJCQkJd2FpdCA9IDE7DQorI2lmIDAgLyogVW5k byB0aGlzIGFuZCB3YXRjaCBhbGxvY2F0aW9ucyBmYWlsIHVuZGVyIGhlYXZ5 IHN0cmVzcyAqLw0KIAkJCWRvX3RyeV90b19mcmVlX3BhZ2VzKEdGUF9LU1dB UEQsIHdhaXQpOw0KKyNlbHNlDQorCQkJZG9fdHJ5X3RvX2ZyZWVfcGFnZXMo R0ZQX0tTV0FQRCwgMCk7DQorI2VuZGlmDQogCQl9DQogDQogCQkvKg0KQEAg LTEwNjcsMTIgKzEwNzgsNiBAQA0KIAkJICovDQogCQlyZWZpbGxfaW5hY3Rp dmVfc2Nhbig2LCAwKTsNCiANCi0JCS8qIE9uY2UgYSBzZWNvbmQsIHJlY2Fs Y3VsYXRlIHNvbWUgVk0gc3RhdHMuICovDQotCQlpZiAodGltZV9hZnRlcihq aWZmaWVzLCByZWNhbGMgKyBIWikpIHsNCi0JCQlyZWNhbGMgPSBqaWZmaWVz Ow0KLQkJCXJlY2FsY3VsYXRlX3ZtX3N0YXRzKCk7DQotCQl9DQotDQogCQkv Kg0KIAkJICogV2FrZSB1cCBldmVyeWJvZHkgd2FpdGluZyBmb3IgZnJlZSBt ZW1vcnkNCiAJCSAqIGFuZCB1bnBsdWcgdGhlIGRpc2sgcXVldWUuDQpAQCAt MTExMiw3ICsxMTE3LDcgQEANCiB7DQogCURFQ0xBUkVfV0FJVFFVRVVFKHdh aXQsIGN1cnJlbnQpOw0KIA0KLQlpZiAoY3VycmVudCA9PSBrc3dhcGRfdGFz aykNCisJaWYgKGN1cnJlbnQtPmZsYWdzICYgUEZfTUVNQUxMT0MpDQogCQly ZXR1cm47DQogDQogCWlmICghYmxvY2spIHsNCg== --432202577-1720070474-973266351=:1496-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/