From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 16 Aug 2001 15:43:06 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 16 Aug 2001 15:42:58 -0400 Received: from brooklyn-bridge.emea.veritas.com ([62.172.234.2]:4019 "EHLO alloc.wat.veritas.com") by vger.kernel.org with ESMTP id ; Thu, 16 Aug 2001 15:42:51 -0400 Date: Thu, 16 Aug 2001 20:46:17 +0100 (BST) From: Mark Hemment X-X-Sender: To: Andrea Arcangeli cc: Linus Torvalds , Subject: Re: [PATCH] Align VM locks In-Reply-To: <20010816205224.C8726@athlon.random> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="168457657-161575255-997991177=:3340" 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. --168457657-161575255-997991177=:3340 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 16 Aug 2001, Andrea Arcangeli wrote: > On Thu, Aug 16, 2001 at 07:44:04PM +0100, Mark Hemment wrote: > > KM_BOUNCE_WRITE may waste virtual address-space, but it saves on > > expensive shootdowns. > > I believe the slowdown is more a sign that kmap is not fast enoguh, not > that you really need the BOUNCE_WRITE. I did knock up a patch where the shooter didn't need to busy-wait. It worked, but it assumed an IPI would be delivered as soon as a processor re-enabled interrupts. After posting the patch, I was also made unsure that it would cover all conditions after seeing a comment in arch/i386/kernel/smp.c; /* * This was a BUG() but until someone can quote me the * line from the intel manual that guarantees an IPI to * multiple CPUs is retried _only_ on the erroring CPUs * its staying as a return */ Can't remember now why I thought this might cause my patch problems ...but I sure it does. Any, I've attached my posting to lse and the patch I sent. I think Andi Kleen replied saying you had played with using the NMI for shootdowns? I do believe that improving the shootdown code won't remove the need for BOUNCE_WRITE. Only a local, temporary, mapping is need and the lighter mapping is, the better. Mark --168457657-161575255-997991177=:3340 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="high.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: high.patch Content-Disposition: attachment; filename="high.patch" ZGlmZiAtdXJOIC1YIGRvbnRkaWZmIGxpbnV4LTIuNC41L2FyY2gvaTM4Ni9r ZXJuZWwvaTgyNTkuYyBoaWdoLTIuNC41L2FyY2gvaTM4Ni9rZXJuZWwvaTgy NTkuYw0KLS0tIGxpbnV4LTIuNC41L2FyY2gvaTM4Ni9rZXJuZWwvaTgyNTku YwlGcmkgRmViICA5IDE5OjI5OjQ0IDIwMDENCisrKyBoaWdoLTIuNC41L2Fy Y2gvaTM4Ni9rZXJuZWwvaTgyNTkuYwlUdWUgSnVsICAzIDExOjIwOjM4IDIw MDENCkBAIC04MCw2ICs4MCw3IEBADQogQlVJTERfU01QX0lOVEVSUlVQVChy ZXNjaGVkdWxlX2ludGVycnVwdCxSRVNDSEVEVUxFX1ZFQ1RPUikNCiBCVUlM RF9TTVBfSU5URVJSVVBUKGludmFsaWRhdGVfaW50ZXJydXB0LElOVkFMSURB VEVfVExCX1ZFQ1RPUikNCiBCVUlMRF9TTVBfSU5URVJSVVBUKGNhbGxfZnVu Y3Rpb25faW50ZXJydXB0LENBTExfRlVOQ1RJT05fVkVDVE9SKQ0KK0JVSUxE X1NNUF9JTlRFUlJVUFQoZmx1c2hfYWxsX2ludGVycnVwdCxGTFVTSF9UTEJf VkVDVE9SKQ0KICNlbmRpZg0KIA0KIC8qDQpAQCAtNDczLDYgKzQ3NCw5IEBA DQogDQogCS8qIElQSSBmb3IgZ2VuZXJpYyBmdW5jdGlvbiBjYWxsICovDQog CXNldF9pbnRyX2dhdGUoQ0FMTF9GVU5DVElPTl9WRUNUT1IsIGNhbGxfZnVu Y3Rpb25faW50ZXJydXB0KTsNCisNCisJLyogSVBJIGZvciBmbHVzaCBhbGwg VExCIGZ1bmN0aW9uIGNhbGwgKi8NCisJc2V0X2ludHJfZ2F0ZShGTFVTSF9U TEJfVkVDVE9SLCBmbHVzaF9hbGxfaW50ZXJydXB0KTsNCiAjZW5kaWYJDQog DQogI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQw0KZGlmZiAtdXJOIC1Y IGRvbnRkaWZmIGxpbnV4LTIuNC41L2FyY2gvaTM4Ni9rZXJuZWwvc21wLmMg aGlnaC0yLjQuNS9hcmNoL2kzODYva2VybmVsL3NtcC5jDQotLS0gbGludXgt Mi40LjUvYXJjaC9pMzg2L2tlcm5lbC9zbXAuYwlUdWUgRmViIDEzIDIyOjEz OjQzIDIwMDENCisrKyBoaWdoLTIuNC41L2FyY2gvaTM4Ni9rZXJuZWwvc21w LmMJVHVlIEp1bCAgMyAxMjowNDowOCAyMDAxDQpAQCAtMzk0LDE0ICszOTQs NDUgQEANCiAJCWxlYXZlX21tKGNwdSk7DQogfQ0KIA0KLXN0YXRpYyB2b2lk IGZsdXNoX3RsYl9hbGxfaXBpKHZvaWQqIGluZm8pDQorLyoNCisgKiBGbHVz aCB0aGUgVExCcyBvbiBhbGwgZW5naW5lcy4NCisgKiANCisgKiBUaGlzIGRv ZXMgbm90IHdhaXQgZm9yIHRoZSBvdGhlciBlbmdpbmVzIHRvIGFjayB0aGUg VExCIGZsdXNoLg0KKyAqIFRoaXMgaXMgT0sgKEkgdGhpbmspLCBidXQgbmVl ZHMgc29tZSBleHBsYWluYXRpb24uDQorICoNCisgKiBGb3IgYWxsIGNhc2Vz IG9mIGZsdXNoX3RsYl9hbGwoKSwgd2UgZG8gbm90IG5lZWQgdG8gc3luYyB3 aXRoIHRoZQ0KKyAqIGZsdXNoIG9uIGFsbCBlbmdpbmVzLiAgSSBzaG91bGQg ZXhwbGFpbiBlYWNoIGNhc2UsIGJ1dCBmb3Igbm93IHRoZXJlDQorICogaXMg anVzdCBhIHNpbXBsZSBkZXNjcmlwdGlvbiBvZiB0aGUgaGlnaG1lbSBjYXNl LiBYWFgNCisgKg0KKyAqIEZvciBoaWdobWVtLCB0aGUgVExCcyBhcmUgZmx1 c2hlZCB1bmRlciB0aGUga21hcCBsb2NrLiAgVGhpcyBsb2NrIGlzIHRha2Vu DQorICogd2l0aG91dCBibG9ja2luZyBpbnRlcnJ1cHRzLCBhbmQgX2Nhbm5v dF8gYmUgdGFrZW4gd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkDQorICogKGVs c2UgdGhlIHN5c3RlbSB3aWxsIGRlYWRsb2NrIC0gYXQgbGVhc3Qgd2l0aCB0 aGUgc3luYydpbmcgdmVyc2lvbiBvZg0KKyAqIGZsdXNoX3RsYl9hbGwoKSku ICBOZXcgaGlnaG1lbSB2aXJ0dWFsIG1hcHBpbmdzIGFyZSBvbmx5IGNyZWF0 ZWQgdW5kZXIgdGhlDQorICoga21hcF9sb2NrLCBhbmQgbWFwcGluZ3MgYXJl ICJyZWxlYXNlZCIgdW5kZXIgdGhpcyBsb2NrLg0KKyAqIEFzIG5ldyBtYXBw aW5ncyBjYW5ub3QgYmUgY3JlYXRlZCB3aXRoIGludHMgZGlzYWJsZWQsIG9y IGluc2lkZSBhbg0KKyAqIGludGVycnVwdCBjb250ZXh0LCBpZiBhbiBlbmdp bmUgaXMgaW4gZWl0aGVyIG9mIHRoZXNlIHN0YXRlcyBpdCBkb2Vzbid0DQor ICogaGF2ZSB0byBmbHVzaCBpdHMgVExCIHVudGlsIGl0IGxlYXZlcyB0aGUg c3RhdGUgKGllLiBpbnRlcnJ1cHRzIGJlY29tZQ0KKyAqIGVuYWJsZWQpLg0K KyAqLw0KK3N0YXRpYyB2b2lkIGZsdXNoX3RsYl9hbGxfaXBpKHZvaWQpDQog ew0KIAlkb19mbHVzaF90bGJfYWxsX2xvY2FsKCk7DQogfQ0KIA0KK3N0YXRp YyB2b2lkIGlubGluZSBzbXBfY2FsbF9mbHVzaF9hbGwodm9pZCkNCit7DQor CWludCBjcHVzID0gc21wX251bV9jcHVzLTE7DQorDQorCWlmICghY3B1cykN CisJCXJldHVybjsNCisNCisJLyogU2VuZCBhIG1lc3NhZ2UgdG8gYWxsIG90 aGVyIENQVXMgKi8NCisJc2VuZF9JUElfYWxsYnV0c2VsZihGTFVTSF9UTEJf VkVDVE9SKTsNCit9DQorDQogdm9pZCBmbHVzaF90bGJfYWxsKHZvaWQpDQog ew0KLQlzbXBfY2FsbF9mdW5jdGlvbiAoZmx1c2hfdGxiX2FsbF9pcGksMCwx LDEpOw0KKwlzbXBfY2FsbF9mbHVzaF9hbGwoKTsNCiANCiAJZG9fZmx1c2hf dGxiX2FsbF9sb2NhbCgpOw0KIH0NCkBAIC00ODMsNiArNTE0LDcgQEANCiAJ cmV0dXJuIDA7DQogfQ0KIA0KKw0KIHN0YXRpYyB2b2lkIHN0b3BfdGhpc19j cHUgKHZvaWQgKiBkdW1teSkNCiB7DQogCS8qDQpAQCAtNTM4LDUgKzU3MCwx MiBAQA0KIAkoKmZ1bmMpKGluZm8pOw0KIAlpZiAod2FpdCkNCiAJCWF0b21p Y19pbmMoJmNhbGxfZGF0YS0+ZmluaXNoZWQpOw0KK30NCisNCithc21saW5r YWdlIHZvaWQgc21wX2ZsdXNoX2FsbF9pbnRlcnJ1cHQodm9pZCkNCit7DQor CWFja19BUElDX2lycSgpOw0KKw0KKwlmbHVzaF90bGJfYWxsX2lwaSgpOw0K IH0NCiANCmRpZmYgLXVyTiAtWCBkb250ZGlmZiBsaW51eC0yLjQuNS9pbmNs dWRlL2FzbS1pMzg2L2hpZ2htZW0uaCBoaWdoLTIuNC41L2luY2x1ZGUvYXNt LWkzODYvaGlnaG1lbS5oDQotLS0gbGludXgtMi40LjUvaW5jbHVkZS9hc20t aTM4Ni9oaWdobWVtLmgJU2F0IE1heSAyNiAwMjowMToyNyAyMDAxDQorKysg aGlnaC0yLjQuNS9pbmNsdWRlL2FzbS1pMzg2L2hpZ2htZW0uaAlUdWUgSnVs ICAzIDEyOjA3OjQ0IDIwMDENCkBAIC01Myw2ICs1MywxMSBAQA0KICNkZWZp bmUgUEtNQVBfTlIodmlydCkgICgodmlydC1QS01BUF9CQVNFKSA+PiBQQUdF X1NISUZUKQ0KICNkZWZpbmUgUEtNQVBfQUREUihucikgIChQS01BUF9CQVNF ICsgKChucikgPDwgUEFHRV9TSElGVCkpDQogDQorLyoNCisgKiBTaG91bGQg b25seSBiZSB1c2VkIGluIGhpZ2htZW0uYy4NCisgKi8NCisjZGVmaW5lCVBL TUFQX1ZJUlRfVE9fUEtQKHZpcnQpCSZwa21hcFsoKCh2aXJ0KS1QS01BUF9C QVNFKSA+PiBQQUdFX1NISUZUKV0NCisNCiBleHRlcm4gdm9pZCAqIEZBU1RD QUxMKGttYXBfaGlnaChzdHJ1Y3QgcGFnZSAqcGFnZSkpOw0KIGV4dGVybiB2 b2lkIEZBU1RDQUxMKGt1bm1hcF9oaWdoKHN0cnVjdCBwYWdlICpwYWdlKSk7 DQogDQpkaWZmIC11ck4gLVggZG9udGRpZmYgbGludXgtMi40LjUvaW5jbHVk ZS9hc20taTM4Ni9od19pcnEuaCBoaWdoLTIuNC41L2luY2x1ZGUvYXNtLWkz ODYvaHdfaXJxLmgNCi0tLSBsaW51eC0yLjQuNS9pbmNsdWRlL2FzbS1pMzg2 L2h3X2lycS5oCVNhdCBNYXkgMjYgMDI6MDE6MjYgMjAwMQ0KKysrIGhpZ2gt Mi40LjUvaW5jbHVkZS9hc20taTM4Ni9od19pcnEuaAlUdWUgSnVsICAzIDEy OjA3OjQ0IDIwMDENCkBAIC00MSw2ICs0MSw4IEBADQogI2RlZmluZSBJTlZB TElEQVRFX1RMQl9WRUNUT1IJMHhmZA0KICNkZWZpbmUgUkVTQ0hFRFVMRV9W RUNUT1IJMHhmYw0KICNkZWZpbmUgQ0FMTF9GVU5DVElPTl9WRUNUT1IJMHhm Yg0KKy8qIGtkYiB1c2VzIDB4ZmEsIHNvIHVzZSAweGY5IGZvciB0aGUgZ2xv YmFsIFRMQiBzaG9vdGRvd24gKi8NCisjZGVmaW5lCUZMVVNIX1RMQl9WRUNU T1IJMHhmOQ0KIA0KIC8qDQogICogTG9jYWwgQVBJQyB0aW1lciBJUlEgdmVj dG9yIGlzIG9uIGEgZGlmZmVyZW50IHByaW9yaXR5IGxldmVsLA0KZGlmZiAt dXJOIC1YIGRvbnRkaWZmIGxpbnV4LTIuNC41L2luaXQvbWFpbi5jIGhpZ2gt Mi40LjUvaW5pdC9tYWluLmMNCi0tLSBsaW51eC0yLjQuNS9pbml0L21haW4u YwlUdWUgTWF5IDIyIDE3OjM1OjQyIDIwMDENCisrKyBoaWdoLTIuNC41L2lu aXQvbWFpbi5jCVR1ZSBKdWwgIDMgMTE6MjA6MzggMjAwMQ0KQEAgLTU1NSw2 ICs1NTUsMTQgQEANCiAJCWluaXRyZF9zdGFydCA9IDA7DQogCX0NCiAjZW5k aWYNCisNCisjaWZkZWYJQ09ORklHX0hJR0hNRU0NCisJew0KKwkJZXh0ZXJu IHZvaWQgaW5pdF9oaWdobWVtKHZvaWQpOw0KKwkJaW5pdF9oaWdobWVtKCk7 DQorCX0NCisjZW5kaWYNCisNCiAJbWVtX2luaXQoKTsNCiAJa21lbV9jYWNo ZV9zaXplc19pbml0KCk7DQogCW1lbXBhZ2VzID0gbnVtX3BoeXNwYWdlczsN CmRpZmYgLXVyTiAtWCBkb250ZGlmZiBsaW51eC0yLjQuNS9tbS9oaWdobWVt LmMgaGlnaC0yLjQuNS9tbS9oaWdobWVtLmMNCi0tLSBsaW51eC0yLjQuNS9t bS9oaWdobWVtLmMJU2F0IE1heSAyNiAwMTo1Nzo0NiAyMDAxDQorKysgaGln aC0yLjQuNS9tbS9oaWdobWVtLmMJVHVlIEp1bCAgMyAxMjo1MTo1MiAyMDAx DQpAQCAtMjAsNyArMjAsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFw Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4NCiAjaW5jbHVkZSA8 bGludXgvc3dhcC5oPg0KKyNpbmNsdWRlIDxsaW51eC9jYWNoZS5oPg0KICNp bmNsdWRlIDxsaW51eC9zbGFiLmg+DQorI2luY2x1ZGUgPGxpbnV4L2ludGVy cnVwdC5oPg0KIA0KIC8qDQogICogVmlydHVhbF9jb3VudCBpcyBub3QgYSBw dXJlICJjb3VudCIuDQpAQCAtMzAsOTIgKzMyLDE1MyBAQA0KICAqICAgIHNp bmNlIHRoZSBsYXN0IFRMQiBmbHVzaCAtIHNvIHdlIGNhbid0IHVzZSBpdC4N CiAgKiAgbiBtZWFucyB0aGF0IHRoZXJlIGFyZSAobi0xKSBjdXJyZW50IHVz ZXJzIG9mIGl0Lg0KICAqLw0KLXN0YXRpYyBpbnQgcGttYXBfY291bnRbTEFT VF9QS01BUF07DQotc3RhdGljIHVuc2lnbmVkIGludCBsYXN0X3BrbWFwX25y Ow0KLXN0YXRpYyBzcGlubG9ja190IGttYXBfbG9jayA9IFNQSU5fTE9DS19V TkxPQ0tFRDsNCiANCi1wdGVfdCAqIHBrbWFwX3BhZ2VfdGFibGU7DQorLyoN CisgKiBVc2UgYSBzdHJ1Y3R1cmUgc28gd2UgY2FuIGtlZXAgdGhlICJjb3Vu dCIgbmV4dCB0byB0aGUgbGlua2FnZSAoaWUuIG9uIHRoZQ0KKyAqIHNhbWUg TDEgY2FjaGUgbGluZSkuDQorICogVGhpcyBtYXkgc2VlbSBsaWtlIG92ZXJr aWxsLCBidXQgd2UgcmVhbGx5IHdhbnQgdG8gYXZvaWQgbGluZWFyIHNlYXJj aGVzLg0KKyAqIENvdWxkIGNhY3VsYXRlIHRoZSBpbmRleCAob2Zmc2V0IGZy b20gcGttYXApLCBidXQgaW5jbHVkaW5nIGl0IGRvZXNuJ3QNCisgKiBodXJ0 IGFuZCBnaXZlcyB1cyBhIG5pY2UgcG93ZXItb2YtMiBzaXplZCBzdHJ1Y3R1 cmUgKGNvdWxkIHB0ciBkaXJlY3RseQ0KKyAqIGludG8gcGFnZXRhYmxlPyBY WFgpLg0KKyAqLw0KK3R5cGVkZWYgc3RydWN0IHBrbWFwX3Mgew0KKwl1bnNp Z25lZCBpbnQJCSBwa19jb3VudDsNCisJc3RydWN0IHBrbWFwX3MJCSpwa19u ZXh0Ow0KK30gcGttYXBfdDsNCisNCitzdGF0aWMgcGttYXBfdAlwa21hcFtM QVNUX1BLTUFQXTsNCisNCisNCisvKg0KKyAqIFdlIGRvbid0IHdhbnQgdGhp cyBsb2NrIGZhbHNlIHNoYXJpbmcgd2l0aCBhbnl0aGluZyBlbHNlLCBzbyBM MQ0KKyAqIGNhY2hlIGFsaWduIGl0Lg0KKyAqLw0KK3N0YXRpYyBzcGlubG9j a190IGttYXBfbG9jayBfX2NhY2hlbGluZV9hbGlnbmVkOw0KKw0KKy8qDQor ICogSG9wZWZ1bGx5LCB0aGVzZSB0d28gd2lsbCBmYWxsIG9uIHRoZSBzYW1l IEwxIGxpbmUuDQorICovDQorcHRlX3QgKnBrbWFwX3BhZ2VfdGFibGU7DQor c3RhdGljIHBrbWFwX3QgKnBrbWFwX2ZyZWU7DQogDQogc3RhdGljIERFQ0xB UkVfV0FJVF9RVUVVRV9IRUFEKHBrbWFwX21hcF93YWl0KTsNCiANCit2b2lk DQoraW5pdF9oaWdobWVtKHZvaWQpDQorew0KKwlpbnQJaTsNCisNCisJc3Bp bl9sb2NrX2luaXQoJmttYXBfbG9jayk7DQorDQorCXBrbWFwX2ZyZWUgPSAm cGttYXBbMF07DQorDQorCWZvciAoaT0xOyBpIDwgTEFTVF9QS01BUDsgaSsr KQ0KKwkJcGttYXBbaS0xXS5wa19uZXh0ID0gJnBrbWFwW2ldOw0KKwlwa21h cFtpLTFdLnBrX25leHQgPSBOVUxMOw0KK30NCisNCiBzdGF0aWMgdm9pZCBm bHVzaF9hbGxfemVyb19wa21hcHModm9pZCkNCiB7DQotCWludCBpOw0KKwlw a21hcF90CQkqcGtwOw0KKwlpbnQJaTsNCiANCiAJZmx1c2hfY2FjaGVfYWxs KCk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBMQVNUX1BLTUFQOyBpKyspIHsN Ci0JCXN0cnVjdCBwYWdlICpwYWdlOw0KLQkJcHRlX3QgcHRlOw0KLQkJLyoN Ci0JCSAqIHplcm8gbWVhbnMgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBk bywNCi0JCSAqID4xIG1lYW5zIHRoYXQgaXQgaXMgc3RpbGwgaW4gdXNlLiBP bmx5DQotCQkgKiBhIGNvdW50IG9mIDEgbWVhbnMgdGhhdCBpdCBpcyBmcmVl IGJ1dA0KLQkJICogbmVlZHMgdG8gYmUgdW5tYXBwZWQNCi0JCSAqLw0KLQkJ aWYgKHBrbWFwX2NvdW50W2ldICE9IDEpDQorCXBrcCA9ICZwa21hcFswXTsN CisJZm9yIChpPTA7IGkgPCBMQVNUX1BLTUFQOyBpKyssIHBrcCsrKSB7DQor CQlwdGVfdAkqcHRlOw0KKw0KKwkJLyogcmUtaW5zdGF0ZSBjb21tZW50ISAq Lw0KKwkJaWYgKHBrcC0+cGtfY291bnQgIT0gMSkNCiAJCQljb250aW51ZTsN Ci0JCXBrbWFwX2NvdW50W2ldID0gMDsNCi0JCXB0ZSA9IHB0ZXBfZ2V0X2Fu ZF9jbGVhcihwa21hcF9wYWdlX3RhYmxlK2kpOw0KLQkJaWYgKHB0ZV9ub25l KHB0ZSkpDQorCQlwa3AtPnBrX2NvdW50ID0gMDsNCisNCisJCXBrcC0+cGtf bmV4dCA9IHBrbWFwX2ZyZWU7DQorCQlwa21hcF9mcmVlID0gcGtwOw0KKw0K KwkJcHRlID0gJnBrbWFwX3BhZ2VfdGFibGVbaV07DQorDQorCQkvKiBzYW5p dHkgY2hlY2sgKi8NCisJCWlmIChwdGVfbm9uZSgqcHRlKSkNCiAJCQlCVUco KTsNCi0JCXBhZ2UgPSBwdGVfcGFnZShwdGUpOw0KLQkJcGFnZS0+dmlydHVh bCA9IE5VTEw7DQorDQorCQkvKg0KKwkJICogRG9uJ3QgbmVlZCBhbiBhdG9t aWMgZmV0Y2gtYW5kLWNsZWFyIG9wIGhlcmU7DQorCQkgKiBuby1vbmUgaGFz IHRoZSBwYWdlIG1hcHBlZCwgYW5kIGNhbm5vdCBnZXQgYXQNCisJCSAqIGl0 cyB2aXJ0dWFsIGFkZHJlc3MgKGFuZCBoZW5jZSBQVEUpIHdpdGhvdXQgZmly c3QNCisJCSAqIGdldHRpbmcgdGhlIGttYXBfbG9jayAod2hpY2ggaXMgaGVs ZCBoZXJlKS4NCisJCSAqIFNvIG5vIGRhbmdlcnMsIGV2ZW4gd2l0aCBzcGVj dWxhdGl2ZSBleGVjdXRpb24uDQorCQkgKi8NCisJCXB0ZV9wYWdlKCpwdGUp LT52aXJ0dWFsID0gTlVMTDsNCisJCXB0ZV9jbGVhcihwdGUpOw0KIAl9DQor DQogCWZsdXNoX3RsYl9hbGwoKTsNCiB9DQogDQotc3RhdGljIGlubGluZSB1 bnNpZ25lZCBsb25nIG1hcF9uZXdfdmlydHVhbChzdHJ1Y3QgcGFnZSAqcGFn ZSkNCitzdGF0aWMgdm9pZCBmaWxsX3BrbWFwX2ZyZWUodm9pZCkNCiB7DQot CXVuc2lnbmVkIGxvbmcgdmFkZHI7DQotCWludCBjb3VudDsNCisJLyoNCisJ ICogVHJ5IHRvIGZyZWUgZW50cmllcy4NCisJICovDQorCWZsdXNoX2FsbF96 ZXJvX3BrbWFwcygpOw0KIA0KLXN0YXJ0Og0KLQljb3VudCA9IExBU1RfUEtN QVA7DQotCS8qIEZpbmQgYW4gZW1wdHkgZW50cnkgKi8NCi0JZm9yICg7Oykg ew0KLQkJbGFzdF9wa21hcF9uciA9IChsYXN0X3BrbWFwX25yICsgMSkgJiBM QVNUX1BLTUFQX01BU0s7DQotCQlpZiAoIWxhc3RfcGttYXBfbnIpIHsNCi0J CQlmbHVzaF9hbGxfemVyb19wa21hcHMoKTsNCi0JCQljb3VudCA9IExBU1Rf UEtNQVA7DQotCQl9DQotCQlpZiAoIXBrbWFwX2NvdW50W2xhc3RfcGttYXBf bnJdKQ0KLQkJCWJyZWFrOwkvKiBGb3VuZCBhIHVzYWJsZSBlbnRyeSAqLw0K LQkJaWYgKC0tY291bnQpDQotCQkJY29udGludWU7DQorCS8qDQorCSAqIEFu eSBmcmVlIGFmdGVyIGZsdXNoaW5nPw0KKwkgKi8NCisJaWYgKHBrbWFwX2Zy ZWUgPT0gTlVMTCkgew0KKwkJREVDTEFSRV9XQUlUUVVFVUUod2FpdCwgY3Vy cmVudCk7DQorDQorCQkvKg0KKwkJICogU2xlZXAgZm9yIHNvbWVib2R5IGVs c2UgdG8gdW5tYXAgdGhlaXIgZW50cmllcy4NCisJCSAqLw0KKwkJY3VycmVu dC0+c3RhdGUgPSBUQVNLX1VOSU5URVJSVVBUSUJMRTsNCisJCWFkZF93YWl0 X3F1ZXVlKCZwa21hcF9tYXBfd2FpdCwgJndhaXQpOw0KKwkJc3Bpbl91bmxv Y2soJmttYXBfbG9jayk7DQorCQlzY2hlZHVsZSgpOw0KKwkJcmVtb3ZlX3dh aXRfcXVldWUoJnBrbWFwX21hcF93YWl0LCAmd2FpdCk7DQorCQlzcGluX2xv Y2soJmttYXBfbG9jayk7DQorCX0NCit9DQorDQorc3RhdGljIGlubGluZSB2 b2lkICptYXBfbmV3X3ZpcnR1YWwoc3RydWN0IHBhZ2UgKnBhZ2UpDQorew0K Kwlwa21hcF90CQkqcGtwOw0KKwlpbnQJCSBpbmRleDsNCisNCisJd2hpbGUg KHBrbWFwX2ZyZWUgPT0gTlVMTCkgew0KIA0KIAkJLyoNCi0JCSAqIFNsZWVw IGZvciBzb21lYm9keSBlbHNlIHRvIHVubWFwIHRoZWlyIGVudHJpZXMNCisJ CSAqIEtlZXAgY29kZSB0byBoYW5kbGUgb3V0LW9mLWZyZWUtcGttYXBzIG91 dCBvZiBjb21tb24NCisJCSAqIGNvZGUgcGF0aC4NCiAJCSAqLw0KLQkJew0K LQkJCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJlbnQpOw0KKwkJZmls bF9wa21hcF9mcmVlKCk7DQogDQotCQkJY3VycmVudC0+c3RhdGUgPSBUQVNL X1VOSU5URVJSVVBUSUJMRTsNCi0JCQlhZGRfd2FpdF9xdWV1ZSgmcGttYXBf bWFwX3dhaXQsICZ3YWl0KTsNCi0JCQlzcGluX3VubG9jaygma21hcF9sb2Nr KTsNCi0JCQlzY2hlZHVsZSgpOw0KLQkJCXJlbW92ZV93YWl0X3F1ZXVlKCZw a21hcF9tYXBfd2FpdCwgJndhaXQpOw0KLQkJCXNwaW5fbG9jaygma21hcF9s b2NrKTsNCi0NCi0JCQkvKiBTb21lYm9keSBlbHNlIG1pZ2h0IGhhdmUgbWFw cGVkIGl0IHdoaWxlIHdlIHNsZXB0ICovDQotCQkJaWYgKHBhZ2UtPnZpcnR1 YWwpDQotCQkJCXJldHVybiAodW5zaWduZWQgbG9uZykgcGFnZS0+dmlydHVh bDsNCi0NCi0JCQkvKiBSZS1zdGFydCAqLw0KLQkJCWdvdG8gc3RhcnQ7DQot CQl9DQorCQkvKiBTb21lYm9keSBlbHNlIG1pZ2h0IGhhdmUgbWFwcGVkIGl0 IHdoaWxlIHdlIHNsZXB0ICovDQorCQlpZiAocGFnZS0+dmlydHVhbCkNCisJ CQlyZXR1cm4gcGFnZS0+dmlydHVhbDsNCiAJfQ0KLQl2YWRkciA9IFBLTUFQ X0FERFIobGFzdF9wa21hcF9ucik7DQotCXNldF9wdGUoJihwa21hcF9wYWdl X3RhYmxlW2xhc3RfcGttYXBfbnJdKSwgbWtfcHRlKHBhZ2UsIGttYXBfcHJv dCkpOw0KIA0KLQlwa21hcF9jb3VudFtsYXN0X3BrbWFwX25yXSA9IDE7DQot CXBhZ2UtPnZpcnR1YWwgPSAodm9pZCAqKSB2YWRkcjsNCisJcGtwID0gcGtt YXBfZnJlZTsNCisJcGttYXBfZnJlZSA9IHBrcC0+cGtfbmV4dDsNCisNCisJ aWYgKHBrcC0+cGtfY291bnQgIT0gMCkNCisJCUJVRygpOw0KKwlwa3AtPnBr X2NvdW50ID0gMTsNCisNCisJaW5kZXggPSBwa3AgLSBwa21hcDsNCisNCisJ c2V0X3B0ZSgmKHBrbWFwX3BhZ2VfdGFibGVbaW5kZXhdKSwgbWtfcHRlKHBh Z2UsIGttYXBfcHJvdCkpOw0KIA0KLQlyZXR1cm4gdmFkZHI7DQorCXBhZ2Ut PnZpcnR1YWwgPSAodm9pZCAqKVBLTUFQX0FERFIoaW5kZXgpOw0KKw0KKwly ZXR1cm4gcGFnZS0+dmlydHVhbDsNCiB9DQogDQorDQogdm9pZCAqa21hcF9o aWdoKHN0cnVjdCBwYWdlICpwYWdlKQ0KIHsNCisJcGttYXBfdAkqcGtwOw0K IAl1bnNpZ25lZCBsb25nIHZhZGRyOw0KIA0KIAkvKg0KQEAgLTEyNSwzOCAr MTg4LDU4IEBADQogCSAqIFdlIGNhbm5vdCBjYWxsIHRoaXMgZnJvbSBpbnRl cnJ1cHRzLCBhcyBpdCBtYXkgYmxvY2sNCiAJICovDQogCXNwaW5fbG9jaygm a21hcF9sb2NrKTsNCi0JdmFkZHIgPSAodW5zaWduZWQgbG9uZykgcGFnZS0+ dmlydHVhbDsNCisJdmFkZHIgPSAodW5zaWduZWQgbG9uZylwYWdlLT52aXJ0 dWFsOw0KIAlpZiAoIXZhZGRyKQ0KLQkJdmFkZHIgPSBtYXBfbmV3X3ZpcnR1 YWwocGFnZSk7DQotCXBrbWFwX2NvdW50W1BLTUFQX05SKHZhZGRyKV0rKzsN Ci0JaWYgKHBrbWFwX2NvdW50W1BLTUFQX05SKHZhZGRyKV0gPCAyKQ0KKwkJ dmFkZHIgPSAodW5zaWduZWQgbG9uZyltYXBfbmV3X3ZpcnR1YWwocGFnZSk7 DQorDQorCXBrcCA9IFBLTUFQX1ZJUlRfVE9fUEtQKHZhZGRyKTsNCisNCisJ cGtwLT5wa19jb3VudCsrOw0KKwlpZiAocGtwLT5wa19jb3VudCA8IDIpDQog CQlCVUcoKTsNCiAJc3Bpbl91bmxvY2soJmttYXBfbG9jayk7DQotCXJldHVy biAodm9pZCopIHZhZGRyOw0KKw0KKwlyZXR1cm4gKHZvaWQgKil2YWRkcjsN CiB9DQogDQogdm9pZCBrdW5tYXBfaGlnaChzdHJ1Y3QgcGFnZSAqcGFnZSkN CiB7DQorCXBrbWFwX3QJKnBrcDsNCisJdWludAkgbmVlZF93YWtldXA7DQog CXVuc2lnbmVkIGxvbmcgdmFkZHI7DQotCXVuc2lnbmVkIGxvbmcgbnI7DQor DQorCW5lZWRfd2FrZXVwID0gMDsNCiANCiAJc3Bpbl9sb2NrKCZrbWFwX2xv Y2spOw0KIAl2YWRkciA9ICh1bnNpZ25lZCBsb25nKSBwYWdlLT52aXJ0dWFs Ow0KIAlpZiAoIXZhZGRyKQ0KIAkJQlVHKCk7DQotCW5yID0gUEtNQVBfTlIo dmFkZHIpOw0KKwlwa3AgPSBQS01BUF9WSVJUX1RPX1BLUCh2YWRkcik7DQog DQogCS8qDQogCSAqIEEgY291bnQgbXVzdCBuZXZlciBnbyBkb3duIHRvIHpl cm8NCiAJICogd2l0aG91dCBhIFRMQiBmbHVzaCENCiAJICovDQotCXN3aXRj aCAoLS1wa21hcF9jb3VudFtucl0pIHsNCisJc3dpdGNoICgtLShwa3AtPnBr X2NvdW50KSkgew0KIAljYXNlIDA6DQogCQlCVUcoKTsNCiAJY2FzZSAxOg0K LQkJd2FrZV91cCgmcGttYXBfbWFwX3dhaXQpOw0KKwkJLyoNCisJCSAqIEF2 b2lkIGFuIHVubmVjZXNzYXJ5IHdha2VfdXAoKSBmdW5jdGlvbiBjYWxsLg0K KwkJICogVGhlIGNvbW1vbiBjYXNlIGlzIHBrbWFwX2NvdW50W10gPT0gMSwg YnV0DQorCQkgKiBubyB3YWl0ZXJzLg0KKwkJICogVGhlIHRhc2tzIHF1ZXVl ZCBpbiB0aGUgd2FpdC1xdWV1ZSBhcmUgZ3VhcmRlZA0KKwkJICogYnkgYm90 aCB0aGUgbG9jayBpbiB0aGUgd2FpdC1xdWV1ZS1oZWFkIGFuZCBieQ0KKwkJ ICogdGhlIGttYXBfbG9jay4gIEFzIHRoZSBrbWFwX2xvY2sgaXMgaGVsZCBo ZXJlLA0KKwkJICogbm8gbmVlZCBmb3IgdGhlIHdhaXQtcXVldWUtaGVhZCdz IGxvY2suICBTaW1wbHkNCisJCSAqIHRlc3QgaWYgdGhlIHF1ZXVlIGlzIGVt cHR5Lg0KKwkJICovDQorCQluZWVkX3dha2V1cCA9IHdhaXRxdWV1ZV9hY3Rp dmUoJnBrbWFwX21hcF93YWl0KTsNCiAJfQ0KIAlzcGluX3VubG9jaygma21h cF9sb2NrKTsNCisNCisJaWYgKG5lZWRfd2FrZXVwKQ0KKwkJd2FrZV91cCgm cGttYXBfbWFwX3dhaXQpOw0KIH0NCiANCiAjZGVmaW5lIFBPT0xfU0laRSAz Mg0K --168457657-161575255-997991177=:3340 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="lse.shootdown" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: lse-email Content-Disposition: attachment; filename="lse.shootdown" RnJvbSBtYXJraGVAdmVyaXRhcy5jb20gVGh1IEF1ZyAxNiAyMDoxNDoyNiAy MDAxDQpEYXRlOiBUdWUsIDMgSnVsIDIwMDEgMTI6MjA6NDcgKzAxMDAgKEJT VCkNCkZyb206IG1hcmtoZUB2ZXJpdGFzLmNvbQ0KU3ViamVjdDogUmU6IFtM c2UtdGVjaF0gRGJlbmNoIHNjYWxhYmlsaXR5IHJlc3VsdHMgb24gMi40LjAN Cg0KSGkgQmlsbCwNCg0KICBJJ3ZlIGJlZW4gZG9pbmcgc29tZSBtb3JlIHdv cmsgb24gdGhlIGttYXBfbG9jay4NCiAgVGhlIGZpcnN0IHBhcnQgaXNuJ3Qg dmVyeSBpbnRlcmVzdGluZyAtIGl0IG1vZGlmaWVzIGhpZ2htZW0uYyB0byB1 c2UgYQ0KZnJlZWxpc3QgbGlua2FnZS4gIFVuZGVyICJub3JtYWwiIHVzYWdl IHBhdHRlcm5zLCBJIHdvdWxkbid0IGV4cGVjdCB0aGlzDQp0byBnaXZlIG11 Y2ggb2YgYW4gaW1wcm92ZW1lbnQuDQoNCiAgVGhlIHNlY29uZCBwYXJ0IGlz IG1vcmUgaW50ZXJlc3RpbmcuIDopDQoNCiAgQ3VycmVudGx5LCBJIGRvbid0 IGhhdmUgYWNjZXNzIHRvIGFuIDgtd2F5IGJveCAob25seSBhIDQpLCBidXQg SSdtDQpndWVzc2luZyB0aGUga21hcCBsb2NrIGNvbnRlbnRpb24gaXMgY2F1 c2VkIGJ5IHRoZSBmbHVzaF90bGJfYWxsKCkgd2hpY2gNCmlzIGRvbmUgd2l0 aCB0aGUga21hcF9sb2NrIGhlbGQuDQoNCiAgTm93LCBmbHVzaF90bGJfYWxs KCkgc2VuZHMgYW4gSVBJIHRvIGFsbCBlbmdpbmVzIChwcm9jZXNzb3JzKSBh bmQNCl93YWl0c18gZm9yIHRoZW0gYWxsIHRvIHBlcmZvcm0gdGhlIHNob290 ZG93bi4NCiAgSWYgYW55IG9mIHRoZSBlbmdpbmVzIGhhdmUgaW50ZXJydXB0 cyBibG9ja2VkLCB0aGVuIGZsdXNoX3RsYl9hbGwoKSBidXN5LQ0Kd2FpdHMg dW50aWwgdGhlIGludGVycnVwdCAoSVBJKSBpcyBkZWxpZXZlZCBhbmQgcHJv Y2Vzc2VkLiAgVGhpcyBjYW4gYmUgYQ0Kc2lnbmlmaWNhbnQgbnVtYmVyIG9m IENQVSBjeWNsZXMgLSBlc3BpY2FsbHkgYXMgbG9ja3Mgd2hpY2ggcmVxdWly ZQ0KaW50ZXJydXB0cyB0byBiZSBibG9ja2VkIHNwaW4gd2l0aCBpbnRzIGRp c2FibGVkIChpbWFnZSBzdWNoIGEgbG9jayB3aGljaA0KaGFzIGNvbnRlbnRp b24gLSBpdCBjYW4gYmUgcXVpdGUgc29tZXRpbWUgdW50aWwgdGhlIGxhc3Qg Y29udGVudG9yIGJyZWFrcw0Kb3V0IG9mIHRoZSBjcml0aWNhbCByZWdpb24g YW5kIGVuYWJsZXMgaW50cykuDQoNCiAgQW5hbHlzaW5nIHRoZSB1c2FnZSBv ZiBmbHVzaF90bGJfYWxsKCkgc2hvd3MgdGhhdCBpdCBkb2VzIG5vdCBuZWVk IHRvDQpidXN5LXdhaXQgLSBpdCBjYW4gc2ltcGx5IHNlbmQgdGhlICJzaG9v dGRvd24iIElQSSBhbmQgY29udGludWU7IGl0DQpkb2Vzbid0IGV2ZW4gbmVl ZCB0byBidXN5LXdhaXQgZm9yIGFuIGFjayBmcm9tIHRoZSBvdGhlciBlbmdp bmVzLg0KaWUuIGZsdXNoX3RsYl9hbGwoKSBjYW4gYmVjb21lIGFzeW5jaHJv bm91cy4NCg0KICBGb3IgZXhhbXBsZSwgdGhpbmsgYWJvdXQgdGhlIGZsdXNo X3RsYl9hbGwoKSBmb3IgaGlnaG1lbS4gIE5ldyBtYXBwaW5ncw0KY2Fubm90 IGJlIGNyZWF0ZWQgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkIChlbHNlIHRo ZSBvcmlnbmFsDQpmbHVzaF90bGJfYWxsKCkgY291bGQgZGVhZGxvY2sgdGhl IHN5c3RlbSksIG5vciBmcm9tIHdpdGhpbiBhbiBpbnRlcnVwdA0KaGFuZGxl ci4gIFNhbWUgZm9yICJkcm9wcGluZyIgYSBtYXBwaW5nLCBhbmQgZ2Fpbmlu ZyBhIHJlZmVyZW5jZSB0byBhbg0KZXhpc3RpbmcgbWFwcGluZy4NCiAgSW5m YWN0LCBhbiBlbmdpbmUncyBUTEIgZG9lc24ndCBuZWVkIHRvIGJlIGZsdXNo ZWQgdW50aWwgaXRzIG5leHQgY2FsbA0KdG8ga21hcF9oaWdoKCkgb3IgdW50 aWwgYSBjb250ZXh0LXN3aXRjaCBvY2N1cnMgb24gdGhlIGVuZ2luZS4gIEFz IHRoZQ0KaGlnaG1lbSBUTEJzIGFyZSBtYXJrZWQgImdsb2JhbCIsIHdlJ2Qg bmVlZCB0byBhZGQgYW4gZXh0cmEgdGVzdCBpbg0Kc2NoZWR1bGUoKSB3aGlj aCBJJ2QgcmF0aGVyIHN0YXkgYXdheSBmcm9tLg0KICBTbywgaW5zdGVhZCwg d2UgY2FuIHdhaXQgZm9yIHRoZSBmbHVzaCBvbiBhbiBlbmdpbmUgdG8gb2Nj dXIgd2hlbiBpdA0KZW5hYmxlcyBpbnRlcnVwdHMuICBUaGlzIHdvcmtzIGZv ciB0aGUgaGlnaG1lbSBjYXNlLCBhbmQgb3RoZXIgdXNlcyBvZg0KZmx1c2hf dGxiX2FsbCgpLiAgQXQgbGVhc3QsIEkgYmVsaWV2ZSBpdCBkb2VzIC0gY2Fu IGFueW9uZSBmaW5kIGFuDQpleGlzdGluZyBjYXNlIHdoZXJlIGl0IGRvZXNu J3Q/DQoNCiAgSW5nbywgeW91IGtub3cgdGhlIHJldmVsZW50IGNvZGUgYmV0 dGVyIHRoYW4gYW55b25lIGVsc2UuICBJcyB0aGUgaWRlYQ0Kc291bmQ/DQoN CiAgRG9lcyB0aGlzIHNvdW5kIGZyYWdpbGU/ICBZZXMsIGl0IGlzLCBidXQg aWYgaXQgaW1wcm92ZXMgc2NhbGFiaWxpdHkgYW5kDQppcyB3ZWxsIGRvY3Vt ZW50ZWQsIHRoZW4gaXQgaXMgd29ydGggZG9pbmcuDQoNCiAgSSd2ZSBhdHRh Y2hlZCBhIHBhdGNoIGFnYWluc3QgMi40LjUuICBUaGUgb3JpZ2luYWwgY29k ZSB3YXMgcHVsbGVkIGZyb20NCmEgaGlnaGx5IG1vZGlmaWVkIHRyZWUsIGJ1 dCBJIGRvbid0IHRoaW5rIEkndmUgbWFkZSBhbnkgbWlzdGFrZXMuLi4NCg0K TWFyaw0K --168457657-161575255-997991177=:3340--