From owner-freebsd-acpi@FreeBSD.ORG Tue May 18 14:04:09 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D95211065670; Tue, 18 May 2010 14:04:09 +0000 (UTC) (envelope-from giovanni.trematerra@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 0512A8FC1A; Tue, 18 May 2010 14:04:08 +0000 (UTC) Received: by fxm19 with SMTP id 19so2388552fxm.13 for ; Tue, 18 May 2010 07:04:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=VTQYoclu0w/gd74IJKTSf31sB2krtjtLrTwlDYg4nCc=; b=tcC83B8KxJaZhPEnGzzhP2H4E9oT6930T5o/gfAJ3XCavFZ9K3HXuYDkygIZC28M2Q JawBWTkjWkPw9/cn/+YZPB20aC505wthTMPo/elGwC5vD2eaqzjVi4sqD+qM9+vb+80s qSNnkPygir862huyf9qKxCaUvtqOIg2xBxonc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=XunPNQkpL5FJUpcaDF+rrTyUrB8+JtY8xe/bV3Cyh3oRMcGKoQDId2mA/G3OyM+Qk2 jNu7vdRsDvd33oRb4kVhmqOGJyvBoA4ETRZx9S6v/bYdtOuEVN8f6CWApHeXlBrm2TdB joi63XXQxXvPXlcjJGAxhkP/V4fhUfpiSDado= MIME-Version: 1.0 Received: by 10.223.63.17 with SMTP id z17mr1866937fah.66.1274191447724; Tue, 18 May 2010 07:04:07 -0700 (PDT) Received: by 10.223.103.209 with HTTP; Tue, 18 May 2010 07:04:07 -0700 (PDT) In-Reply-To: References: <4DEBDE2C-C0D2-469D-AC42-DD5027926424@FreeBSD.org> <1273257226.1671.3.camel@malikania.fr> Date: Tue, 18 May 2010 16:04:07 +0200 Message-ID: From: Giovanni Trematerra To: Brandon Gooch Content-Type: multipart/mixed; boundary=000e0ce07e9e9e15430486ded055 Cc: freebsd-acpi@freebsd.org, freebsd-stable@freebsd.org Subject: Re: Kernel panic when unpluggin AC adaptor X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 14:04:09 -0000 --000e0ce07e9e9e15430486ded055 Content-Type: text/plain; charset=ISO-8859-1 On Sat, May 15, 2010 at 9:12 PM, Brandon Gooch wrote: > On Thu, May 13, 2010 at 7:25 PM, Giovanni Trematerra > wrote: >> On Thu, May 13, 2010 at 1:09 AM, Brandon Gooch >> wrote: >>> On Wed, May 12, 2010 at 9:41 AM, Attilio Rao wrote: >>>> 2010/5/12 David DEMELIER : >>>>> I remove the patch, and built the kernel (I updated the src this >>>>> morning) and it does not panic now. It's really odd. If it reappears >>>>> soon I will tell you. >>>> >>>> I looked at the code with Giovanni and I have the feeling that the >>>> race with the idle thread may still be fatal. >>>> We need to fix that. >>>> >>>> Attilio >>>> >>> >>> That seems to be the case, as my laptop shows about an 80-85 % chance >>> of experiencing a panic if left idle for long-ish periods of time (2 >>> to 4 hours). I usually rebuild world or big ports overnight, and more >>> often than not I wake up to a panicked machine, same situation every >>> time: >>> >>> ... >>> rman_get_bushandle() at rman_get_bushandle+0x1 >>> sched_idletd() at sched_idletd+0x123 >>> fork_exit() at fork_exit+0x12a >>> fork_trampoline() at fork_trampoline+0xe >>> ... >>> >>> The kernel/userland is rebuilt, the ports are finished compiling -- >>> it's in the time AFTER the completion of all tasks that the machine >>> gets bored and tries to kill itself :) >>> >>> I have seen the AC adapter plug/unplug "hang" in the past on this >>> laptop, but I never made the connection between the events, as >>> nowadays my laptop usually stays plugged in :( >>> >>> Attilio, I hope you can track this one down, let me know if I can do >>> anything to help or test... >>> >> >> Attilio and I came up with this patch. It seems ready for stress >> testing and review >> Please test and report back. >> >> Thank you >> >> P.S: all the faults are only mine. > > I tried the patch, and my kernel panics I panic on boot. I have > 8.5MB(!) of JPG images (6 of them) if anyone needs to see them. I'm > looking for a place to post them, but if anyone wants, I can send via > e-mail... Hi Brandon, Could you please, try this new one? The panic at boot stage should be solved, at least I tried on a 8-way machine and all went ok at boot. Please, remove WITNESS_SKIPSPIN from your kernel config file. This patch might be sub-optimal and contains style(9) error but if it works we are on the right way. Let me know if it works for you. Thanks -- Gianni --000e0ce07e9e9e15430486ded055 Content-Type: text/plain; charset=US-ASCII; name="acpi_idle5.diff.txt" Content-Disposition: attachment; filename="acpi_idle5.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9csbpza0 ZGlmZiAtciBkN2QwZTA0ZjQyZTMgc3lzL2Rldi9hY3BpY2EvYWNwaV9jcHUuYwotLS0gYS9zeXMv ZGV2L2FjcGljYS9hY3BpX2NwdS5jCVdlZCBNYXkgMTIgMDQ6MDE6NTYgMjAxMCArMDIwMAorKysg Yi9zeXMvZGV2L2FjcGljYS9hY3BpX2NwdS5jCU1vbiBNYXkgMTcgMDk6MjE6MjUgMjAxMCArMDIw MApAQCAtODgsNiArODgsOCBAQCBzdHJ1Y3QgYWNwaV9jcHVfc29mdGMgewogICAgIGludAkJCSBj cHVfY3hfbG93ZXN0OwogICAgIGNoYXIgCQkgY3B1X2N4X3N1cHBvcnRlZFs2NF07CiAgICAgaW50 CQkJIGNwdV9yaWQ7CisJc3RydWN0IG10eAkgY3B1X2xvY2s7CisJaW50CQkJIGNwdV9kaXNhYmxl X2lkbGU7CiB9OwogCiBzdHJ1Y3QgYWNwaV9jcHVfZGV2aWNlIHsKQEAgLTEwMCw2ICsxMDIsMTAg QEAgc3RydWN0IGFjcGlfY3B1X2RldmljZSB7CiAjZGVmaW5lIENQVV9TRVRfUkVHKHJlZywgd2lk dGgsIHZhbCkJCQkJCVwKICAgICAoYnVzX3NwYWNlX3dyaXRlXyAjIyB3aWR0aChybWFuX2dldF9i dXN0YWcoKHJlZykpLCAJCQlcCiAJCSAgICAgICBybWFuX2dldF9idXNoYW5kbGUoKHJlZykpLCAw LCAodmFsKSkpCisjZGVmaW5lIEFDUElfQ1BVX0xPQ0soc2MpIFwKKwltdHhfbG9ja19zcGluKCZz Yy0+Y3B1X2xvY2spCisjZGVmaW5lIEFDUElfQ1BVX1VOTE9DSyhzYykgXAorCW10eF91bmxvY2tf c3Bpbigmc2MtPmNwdV9sb2NrKQogCiAjZGVmaW5lIFBNX1VTRUMoeCkJICgoeCkgPj4gMikJLyog fjQgY2xvY2tzIHBlciB1c2VjICgzLjU3OTU1IE1oeikgKi8KIApAQCAtMTI3LDcgKzEzMyw2IEBA IHN0YXRpYyB1aW50OF90CQkgY3B1X2NzdF9jbnQ7CS8qIEluZGljYXQKIHN0YXRpYyBpbnQJCSBj cHVfcXVpcmtzOwkvKiBJbmRpY2F0ZSBhbnkgaGFyZHdhcmUgYnVncy4gKi8KIAogLyogUnVudGlt ZSBzdGF0ZS4gKi8KLXN0YXRpYyBpbnQJCSBjcHVfZGlzYWJsZV9pZGxlOyAvKiBEaXNhYmxlIGVu dHJ5IHRvIGlkbGUgZnVuY3Rpb24gKi8KIHN0YXRpYyBpbnQJCSBjcHVfY3hfY291bnQ7CS8qIE51 bWJlciBvZiB2YWxpZCBDeCBzdGF0ZXMgKi8KIAogLyogVmFsdWVzIGZvciBzeXNjdGwuICovCkBA IC0yODQsNiArMjg5LDcgQEAgYWNwaV9jcHVfYXR0YWNoKGRldmljZV90IGRldikKICAgICBBQ1BJ X0ZVTkNUSU9OX1RSQUNFKChjaGFyICopKHVpbnRwdHJfdClfX2Z1bmNfXyk7CiAKICAgICBzYyA9 IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKwltdHhfaW5pdCgmc2MtPmNwdV9sb2NrLCAibnRmbGNr IiwgTlVMTCwgTVRYX1NQSU4pOwogICAgIHNjLT5jcHVfZGV2ID0gZGV2OwogICAgIHNjLT5jcHVf aGFuZGxlID0gYWNwaV9nZXRfaGFuZGxlKGRldik7CiAgICAgY3B1X2lkID0gKGludCkoaW50cHRy X3QpYWNwaV9nZXRfcHJpdmF0ZShkZXYpOwpAQCAtNDA5LDI3ICs0MTUsMzAgQEAgYWNwaV9jcHVf cG9zdGF0dGFjaCh2b2lkICp1bnVzZWQgX191bnVzZQogU1lTSU5JVChhY3BpX2NwdSwgU0lfU1VC X0NPTkZJR1VSRSwgU0lfT1JERVJfTUlERExFLAogICAgIGFjcGlfY3B1X3Bvc3RhdHRhY2gsIE5V TEwpOwogCi0vKgotICogRGlzYWJsZSBhbnkgZW50cnkgdG8gdGhlIGlkbGUgZnVuY3Rpb24gZHVy aW5nIHN1c3BlbmQgYW5kIHJlLWVuYWJsZSBpdAotICogZHVyaW5nIHJlc3VtZS4KLSAqLwogc3Rh dGljIGludAogYWNwaV9jcHVfc3VzcGVuZChkZXZpY2VfdCBkZXYpCiB7CisgICAgc3RydWN0IGFj cGlfY3B1X3NvZnRjICpzYzsKICAgICBpbnQgZXJyb3I7CiAKKyAgICBzYyA9IGRldmljZV9nZXRf c29mdGMoZGV2KTsKICAgICBlcnJvciA9IGJ1c19nZW5lcmljX3N1c3BlbmQoZGV2KTsKICAgICBp ZiAoZXJyb3IpCiAJcmV0dXJuIChlcnJvcik7Ci0gICAgY3B1X2Rpc2FibGVfaWRsZSA9IFRSVUU7 CisJQUNQSV9DUFVfTE9DSyhzYyk7CisgICAgc2MtPmNwdV9kaXNhYmxlX2lkbGUgPSBUUlVFOwor CUFDUElfQ1BVX1VOTE9DSyhzYyk7CisKICAgICByZXR1cm4gKDApOwogfQogCiBzdGF0aWMgaW50 CiBhY3BpX2NwdV9yZXN1bWUoZGV2aWNlX3QgZGV2KQogeworICAgIHN0cnVjdCBhY3BpX2NwdV9z b2Z0YyAqc2M7CiAKLSAgICBjcHVfZGlzYWJsZV9pZGxlID0gRkFMU0U7CisgICAgc2MgPSBkZXZp Y2VfZ2V0X3NvZnRjKGRldik7CisgICAgc2MtPmNwdV9kaXNhYmxlX2lkbGUgPSBGQUxTRTsKICAg ICByZXR1cm4gKGJ1c19nZW5lcmljX3Jlc3VtZShkZXYpKTsKIH0KIApAQCAtNTIzLDE2ICs1MzIs MTYgQEAgYWNwaV9jcHVfc2h1dGRvd24oZGV2aWNlX3QgZGV2KQogewogICAgIEFDUElfRlVOQ1RJ T05fVFJBQ0UoKGNoYXIgKikodWludHB0cl90KV9fZnVuY19fKTsKIAorICAgIHN0cnVjdCBhY3Bp X2NwdV9zb2Z0YyAqc2M7CisKKyAgICBzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKwogICAg IC8qIEFsbG93IGNoaWxkcmVuIHRvIHNodXRkb3duIGZpcnN0LiAqLwogICAgIGJ1c19nZW5lcmlj X3NodXRkb3duKGRldik7CiAKLSAgICAvKgotICAgICAqIERpc2FibGUgYW55IGVudHJ5IHRvIHRo ZSBpZGxlIGZ1bmN0aW9uLiAgVGhlcmUgaXMgYSBzbWFsbCByYWNlIHdoZXJlCi0gICAgICogYW4g aWRsZSB0aHJlYWQgaGF2ZSBwYXNzZWQgdGhpcyBjaGVjayBidXQgbm90IGdvbmUgdG8gc2xlZXAu ICBUaGlzCi0gICAgICogaXMgb2sgc2luY2UgZGV2aWNlX3NodXRkb3duKCkgZG9lcyBub3QgZnJl ZSB0aGUgc29mdGMsIG90aGVyd2lzZQotICAgICAqIHdlJ2QgaGF2ZSB0byBiZSBzdXJlIGFsbCB0 aHJlYWRzIHdlcmUgZXZpY3RlZCBiZWZvcmUgcmV0dXJuaW5nLgotICAgICAqLwotICAgIGNwdV9k aXNhYmxlX2lkbGUgPSBUUlVFOworCUFDUElfQ1BVX0xPQ0soc2MpOworICAgIHNjLT5jcHVfZGlz YWJsZV9pZGxlID0gVFJVRTsKKwlBQ1BJX0NQVV9VTkxPQ0soc2MpOwogCiAgICAgcmV0dXJuX1ZB TFVFICgwKTsKIH0KQEAgLTYwOSw3ICs2MTgsOSBAQCBhY3BpX2NwdV9nZW5lcmljX2N4X3Byb2Jl KHN0cnVjdCBhY3BpX2NwCiAJICAgIGN4X3B0ci0+dHJhbnNfbGF0ID0gQWNwaUdibF9GQURULkMy TGF0ZW5jeTsKIAkgICAgY3hfcHRyKys7CiAJICAgIHNjLT5jcHVfY3hfY291bnQrKzsKLQl9CisJ fSBlbHNlCisJCXBhbmljKCIlczogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlICVkIGZvciBDMyBz dGF0ZSIsIF9fZnVuY19fLCAKKwkJICAgIGN4X3B0ci0+cmVzX3R5cGUpOwogICAgIH0KICAgICBp ZiAoc2MtPmNwdV9wX2Jsa19sZW4gPCA2KQogCXJldHVybjsKQEAgLTYyNSw3ICs2MzYsOSBAQCBh Y3BpX2NwdV9nZW5lcmljX2N4X3Byb2JlKHN0cnVjdCBhY3BpX2NwCiAJICAgIGN4X3B0ci0+dHJh bnNfbGF0ID0gQWNwaUdibF9GQURULkMzTGF0ZW5jeTsKIAkgICAgY3hfcHRyKys7CiAJICAgIHNj LT5jcHVfY3hfY291bnQrKzsKLQl9CisJfSBlbHNlCisJCXBhbmljKCIlczogQ2Fubm90IGFsbG9j YXRlIHJlc291cmNlICVkIGZvciBDMyBzdGF0ZSIsIF9fZnVuY19fLCAKKwkJICAgIGN4X3B0ci0+ cmVzX3R5cGUpOwogICAgIH0KIH0KIApAQCAtNjM3LDEzICs2NTAsMTQgQEAgYWNwaV9jcHVfZ2Vu ZXJpY19jeF9wcm9iZShzdHJ1Y3QgYWNwaV9jcAogc3RhdGljIGludAogYWNwaV9jcHVfY3hfY3N0 KHN0cnVjdCBhY3BpX2NwdV9zb2Z0YyAqc2MpCiB7CisgICAgc3RydWN0IAkgcmVzb3VyY2UgKmx2 bHg7CiAgICAgc3RydWN0CSBhY3BpX2N4ICpjeF9wdHI7CiAgICAgQUNQSV9TVEFUVVMJIHN0YXR1 czsKICAgICBBQ1BJX0JVRkZFUgkgYnVmOwogICAgIEFDUElfT0JKRUNUCSp0b3A7CiAgICAgQUNQ SV9PQkpFQ1QJKnBrZzsKICAgICB1aW50MzJfdAkgY291bnQ7Ci0gICAgaW50CQkgaTsKKyAgICBp bnQJCSBpLCB0eXBlLCByaWQ7CiAKICAgICBBQ1BJX0ZVTkNUSU9OX1RSQUNFKChjaGFyICopKHVp bnRwdHJfdClfX2Z1bmNfXyk7CiAKQEAgLTcyMiw4ICs3MzYsMTggQEAgYWNwaV9jcHVfY3hfY3N0 KHN0cnVjdCBhY3BpX2NwdV9zb2Z0YyAqcwogI2VuZGlmCiAKIAkvKiBBbGxvY2F0ZSB0aGUgY29u dHJvbCByZWdpc3RlciBmb3IgQzIgb3IgQzMuICovCi0JYWNwaV9Qa2dHYXMoc2MtPmNwdV9kZXYs IHBrZywgMCwgJmN4X3B0ci0+cmVzX3R5cGUsICZzYy0+Y3B1X3JpZCwKLQkgICAgJmN4X3B0ci0+ cF9sdmx4LCBSRl9TSEFSRUFCTEUpOworCWFjcGlfUGtnR2FzKHNjLT5jcHVfZGV2LCBwa2csIDAs ICZ0eXBlLCAmcmlkLAorCSAgICAmbHZseCwgUkZfU0hBUkVBQkxFKTsKKwlBQ1BJX0NQVV9MT0NL KHNjKTsKKworCS8qIAorCSAqICBpZiB5b3UgY2Fubm90IGFsbG9jYXRlIHRoZSBjb250cm9sIHJl Z2lzdGVyIHlvdSBuZWVkIHRvIHN0b3AKKwkgKiAgdGhlIGFjcGlfY3B1X2lkbGUgaG9vay4KKwkg Ki8KKwlzYy0+Y3B1X2Rpc2FibGVfaWRsZSA9IChsdmx4ID09IE5VTEwpID8gVFJVRSA6IEZBTFNF OworCXNjLT5jcHVfcmlkICAJID0gcmlkOworCWN4X3B0ci0+cF9sdmx4ICAgPSBsdmx4OworCWN4 X3B0ci0+cmVzX3R5cGUgPSB0eXBlOwogCWlmIChjeF9wdHItPnBfbHZseCkgewogCSAgICBzYy0+ Y3B1X3JpZCsrOwogCSAgICBBQ1BJX0RFQlVHX1BSSU5UKChBQ1BJX0RCX0lORk8sCkBAIC03MzIs NyArNzU2LDEwIEBAIGFjcGlfY3B1X2N4X2NzdChzdHJ1Y3QgYWNwaV9jcHVfc29mdGMgKnMKIAkJ CSAgICAgY3hfcHRyLT50cmFuc19sYXQpKTsKIAkgICAgY3hfcHRyKys7CiAJICAgIHNjLT5jcHVf Y3hfY291bnQrKzsKLQl9CisJfSBlbHNlCisJCWRldmljZV9wcmludGYoc2MtPmNwdV9kZXYsICJj YW5ub3QgYWxsb2NhdGUgY29udHJvbCByZWdpc3RlciIKKwkJICAgICIgZm9yIEMyIG8gQzMuIik7 CisJQUNQSV9DUFVfVU5MT0NLKHNjKTsKICAgICB9CiAgICAgQWNwaU9zRnJlZShidWYuUG9pbnRl cik7CiAKQEAgLTgxMyw3ICs4NDAsMTAgQEAgYWNwaV9jcHVfc3RhcnR1cCh2b2lkICphcmcpCiAK ICAgICAvKiBUYWtlIG92ZXIgaWRsaW5nIGZyb20gY3B1X2lkbGVfZGVmYXVsdCgpLiAqLwogICAg IGNwdV9jeF9sb3dlc3QgPSAwOwotICAgIGNwdV9kaXNhYmxlX2lkbGUgPSBGQUxTRTsKKwlmb3Ig KGkgPSAwOyBpIDwgY3B1X25kZXZpY2VzOyBpKyspIHsKKwkgICAgc2MgPSBkZXZpY2VfZ2V0X3Nv ZnRjKGNwdV9kZXZpY2VzW2ldKTsKKyAgICAJc2MtPmNwdV9kaXNhYmxlX2lkbGUgPSBGQUxTRTsK Kwl9CiAgICAgY3B1X2lkbGVfaG9vayA9IGFjcGlfY3B1X2lkbGU7CiB9CiAKQEAgLTg4MywxMSAr OTEzLDYgQEAgYWNwaV9jcHVfaWRsZSgpCiAgICAgdWludDMyX3QJc3RhcnRfdGltZSwgZW5kX3Rp bWU7CiAgICAgaW50CQlibV9hY3RpdmUsIGN4X25leHRfaWR4LCBpOwogCi0gICAgLyogSWYgZGlz YWJsZWQsIHJldHVybiBpbW1lZGlhdGVseS4gKi8KLSAgICBpZiAoY3B1X2Rpc2FibGVfaWRsZSkg ewotCUFDUElfRU5BQkxFX0lSUVMoKTsKLQlyZXR1cm47Ci0gICAgfQogCiAgICAgLyoKICAgICAg KiBMb29rIHVwIG91ciBDUFUgaWQgdG8gZ2V0IG91ciBzb2Z0Yy4gIElmIGl0J3MgTlVMTCwgd2Un bGwgdXNlIEMxCkBAIC05MDAsNiArOTI1LDE0IEBAIGFjcGlfY3B1X2lkbGUoKQogCXJldHVybjsK ICAgICB9CiAKKyAgICBBQ1BJX0NQVV9MT0NLKHNjKTsKKworICAgIGlmIChzYy0+Y3B1X2Rpc2Fi bGVfaWRsZSkgeworCUFDUElfQ1BVX1VOTE9DSyhzYyk7CisJQUNQSV9FTkFCTEVfSVJRUygpOwor CXJldHVybjsKKyAgICB9CisKICAgICAvKiBGaW5kIHRoZSBsb3dlc3Qgc3RhdGUgdGhhdCBoYXMg c21hbGwgZW5vdWdoIGxhdGVuY3kuICovCiAgICAgY3hfbmV4dF9pZHggPSAwOwogICAgIGZvciAo aSA9IHNjLT5jcHVfY3hfbG93ZXN0OyBpID49IDA7IGktLSkgewpAQCAtOTM1LDYgKzk2OCw3IEBA IGFjcGlfY3B1X2lkbGUoKQogICAgICAqLwogICAgIGlmIChjeF9uZXh0LT50eXBlID09IEFDUElf U1RBVEVfQzEpIHsKIAlzYy0+Y3B1X3ByZXZfc2xlZXAgPSAoc2MtPmNwdV9wcmV2X3NsZWVwICog MyArIDUwMDAwMCAvIGh6KSAvIDQ7CisJQUNQSV9DUFVfVU5MT0NLKHNjKTsKIAlhY3BpX2NwdV9j MSgpOwogCXJldHVybjsKICAgICB9CkBAIC05NzUsNiArMTAwOSw3IEBAIGFjcGlfY3B1X2lkbGUo KQogCUFjcGlXcml0ZUJpdFJlZ2lzdGVyKEFDUElfQklUUkVHX0FSQl9ESVNBQkxFLCAwKTsKIAlB Y3BpV3JpdGVCaXRSZWdpc3RlcihBQ1BJX0JJVFJFR19CVVNfTUFTVEVSX1JMRCwgMCk7CiAgICAg fQorCUFDUElfQ1BVX1VOTE9DSyhzYyk7CiAgICAgQUNQSV9FTkFCTEVfSVJRUygpOwogCiAgICAg LyogRmluZCB0aGUgYWN0dWFsIHRpbWUgYXNsZWVwIGluIG1pY3Jvc2Vjb25kcy4gKi8K --000e0ce07e9e9e15430486ded055--