From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4327 invoked by alias); 17 Aug 2007 08:08:48 -0000 Received: (qmail 4106 invoked by uid 22791); 17 Aug 2007 08:08:44 -0000 X-Spam-Check-By: sourceware.org Received: from rv-out-0910.google.com (HELO rv-out-0910.google.com) (209.85.198.188) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 17 Aug 2007 08:08:41 +0000 Received: by rv-out-0910.google.com with SMTP id c27so381209rvf for ; Fri, 17 Aug 2007 01:08:39 -0700 (PDT) Received: by 10.141.79.12 with SMTP id g12mr1140002rvl.1187338118993; Fri, 17 Aug 2007 01:08:38 -0700 (PDT) Received: by 10.141.33.13 with HTTP; Fri, 17 Aug 2007 01:08:38 -0700 (PDT) Message-ID: <950a36fb0708170108s3d66dde6yc42e5bd49efaff36@mail.gmail.com> Date: Fri, 17 Aug 2007 08:08:00 -0000 From: "Pieter-Jan Busschaert" To: "Alois Z." Cc: ecos-discuss@ecos.sourceware.org In-Reply-To: <20070817073354.22100@gmx.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_29331_28550287.1187338118944" References: <20070817073354.22100@gmx.net> Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: Re: [ECOS] Thread activation disturbed by lower priority threads] X-SW-Source: 2007-08/txt/msg00084.txt.bz2 ------=_Part_29331_28550287.1187338118944 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 1941 > I should have always only one mutex claimed per thread. And always only for a very short > period. What if several threads waiting for one mutex with priorities from 2 to 6 and the > tread with priority 7 is holding the mutex. First of all will there be a reschedule after the > mutex is realeased? > > Alois Hello, To have more detailed info about this, you could turn on kernel instrumentation and enable CLOCK, MUTEX and SCHEDULER events. For more info, see here : http://ecos.sourceware.org/docs-latest/user-guide/kernel-instrumentation.html In your ecos.ecc file, these values have to be changed (you can copy/paste this and use ecosconfig import) : %------ cdl_option CYGPKG_KERNEL_INSTRUMENT { user_value 1 }; cdl_option CYGNUM_KERNEL_INSTRUMENT_BUFFER_SIZE { user_value 0x1000 }; cdl_option CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP { user_value 0 }; cdl_component CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP { user_value 1 }; %------ This last option creates a binary ( [ecos.ecc path]/install/bin/dump_instr ) which can be used to examine the instrumentation buffer. I had to modify the source a little bit to account for little endian / big endian differences, support for wrapped around buffers and continuous time (ie: no time reset after each clock IRQ). Attached is my source file ( ecos\packages\kernel\host\instr\dump_instr.c ) Ofcourse, you still have to get the instrumentation buffer from your target. If you have filesystem and ftp support, this can be as easy as : FILE* fp; fp = fopen("/D/etc/instrument.raw", "w"); if (fp != NULL) { fwrite((void*) instrument_buffer, sizeof(instrument_buffer[0]), instrument_buffer_size, fp); fclose(fp); int wrap = (instrument_buffer_pointer - &instrument_buffer[0]); diag_printf("Instrumentation buffer wrap_around = %d\r\n", wrap); } Then you can see very easily which mutexes are locked/unlocked and why threads are waiting for them. Pieter-Jan ------=_Part_29331_28550287.1187338118944 Content-Type: text/plain; name=dump_instr.c; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f5ge01sq Content-Disposition: attachment; filename="dump_instr.c" Content-length: 8268 CiNpbmNsdWRlIDxwa2djb25mL2tlcm5lbC5oPgojaW5jbHVkZSA8Y3lnL2tl cm5lbC9rdHlwZXMuaD4gICAgICAgICAvLyBiYXNlIGtlcm5lbCB0eXBlcwoj aW5jbHVkZSA8Y3lnL2tlcm5lbC9pbnN0cm1udC5oPgoKI2luY2x1ZGUgPHN0 ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGludC5o PgoKI2RlZmluZSBDWUdfSU5TVFJVTUVOVF9DTE9DS19USUNLX1NUQVJUIChD WUdfSU5TVFJVTUVOVF9FVkVOVF9DTE9DS19USUNLX1NUQVJUfENZR19JTlNU UlVNRU5UX0NMQVNTX0NMT0NLKQojZGVmaW5lIENZR19JTlNUUlVNRU5UX0NM T0NLX0lTUiAoQ1lHX0lOU1RSVU1FTlRfRVZFTlRfQ0xPQ0tfSVNSfENZR19J TlNUUlVNRU5UX0NMQVNTX0NMT0NLKQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQovLyBJbnN0cnVtZW50YXRpb24gcmVjb3JkLgoKc3RydWN0 IEluc3RydW1lbnRfUmVjb3JkCnsKICAgIENZR19XT1JEMTYgIHR5cGU7ICAg ICAgICAgICAgICAgICAgIC8vIHJlY29yZCB0eXBlCiAgICBDWUdfV09SRDE2 ICB0aHJlYWQ7ICAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHRocmVhZCBp ZAogICAgQ1lHX1dPUkQgICAgdGltZXN0YW1wOyAgICAgICAgICAgICAgLy8g MzIgYml0IHRpbWVzdGFtcAogICAgQ1lHX1dPUkQgICAgYXJnMTsgICAgICAg ICAgICAgICAgICAgLy8gZmlyc3QgYXJnCiAgICBDWUdfV09SRCAgICBhcmcy OyAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmQgYXJnCn07CgovLyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzdGF0aWMgbG9uZyBydGNfcmVz b2x1dGlvbltdID0gQ1lHTlVNX0tFUk5FTF9DT1VOVEVSU19SVENfUkVTT0xV VElPTjsKc3RhdGljIENZR19XT1JENjQgbnNfcGVyX3RpY2s7CnN0YXRpYyBD WUdfV09SRDY0IHBzX3Blcl9oYWxfY2xvY2s7CnN0YXRpYyBDWUdfV09SRDY0 IHRpY2tzID0gLTE7CgojaWZkZWYgQ1lHREJHX0tFUk5FTF9JTlNUUlVNRU5U X01TR1MKI2RlZmluZSBDWUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfTVNHU19E RUZJTkVfVEFCTEUKI2luY2x1ZGUgPGN5Zy9rZXJuZWwvaW5zdHJ1bWVudF9k ZXNjLmg+CiNkZWZpbmUgTkVMRU0oeCkgKHNpemVvZih4KS9zaXplb2YqKHgp KQoKCmV4dGVybkMgY2hhciAqIGN5Z19pbnN0cnVtZW50X21zZyhDWUdfV09S RDE2IHR5cGUpCnsKICBzdHJ1Y3QgaW5zdHJ1bWVudF9kZXNjX3MgKnJlY29y ZDsKICBzdHJ1Y3QgaW5zdHJ1bWVudF9kZXNjX3MgKmVuZF9yZWNvcmQ7CiAg Q1lHX1dPUkQgY2wsIGV2ZW50OwoKICByZWNvcmQgPSBpbnN0cnVtZW50X2Rl c2M7CiAgZW5kX3JlY29yZCA9ICZpbnN0cnVtZW50X2Rlc2NbTkVMRU0oaW5z dHJ1bWVudF9kZXNjKS0xXTsKICBjbCA9IHR5cGUgJiAweGZmMDA7CiAgZXZl bnQgPSB0eXBlICYgMHgwMGZmOwoKICB3aGlsZSAoKHJlY29yZCAhPSBlbmRf cmVjb3JkKSAmJiAocmVjb3JkLT5udW0gIT0gY2wpKSB7CiAgICByZWNvcmQr KzsKICB9CgogIGlmIChyZWNvcmQtPm51bSA9PSBjbCkgewogICAgcmVjb3Jk Kys7CiAgICB3aGlsZSAoKHJlY29yZCAhPSBlbmRfcmVjb3JkKSAmJiAocmVj b3JkLT5udW0gIT0gZXZlbnQpICYmCiAgICAgICAgICAgKHJlY29yZC0+bnVt IDwgMHhmZikpIHsKICAgICAgcmVjb3JkKys7CiAgICB9CgogICAgaWYgKHJl Y29yZC0+bnVtID09IGV2ZW50KSB7CiAgICAgIHJldHVybiAocmVjb3JkLT5t c2cpOwogICAgfQogIH0KICByZXR1cm4oIlVua25vd24gZXZlbnQiKTsKfQoj ZW5kaWYgLy8gQ1lHREJHX0tFUk5FTF9JTlNUUlVNRU5UX01TR1MKCnZvaWQg dXNhZ2UoY2hhciAqbXluYW1lKSAKewogIGZwcmludGYoc3RkZXJyLCJVc2Fn ZTogJXMgPGZpbGVuYW1lPiBbc3RhcnQgaXRlbSAoaW4gY2FzZSBvZiB3cmFw YXJvdW5kKV1cbiIsbXluYW1lKTsKICBmcHJpbnRmKHN0ZGVyciwid2hlcmUg ZmlsZW5hbWUgaXMgdGhhdCBvZiB0aGUgaW5zdHJ1bWVudGF0aW9uIGRhdGFc biIpOwp9Cgp1aW50MTZfdCBzd2FwMmJ5dGVzKHVpbnQxNl90IGlucHV0KQp7 CiAgdWludDE2X3QgcmVzdWx0ID0gMDsKICByZXN1bHQgKz0gKGlucHV0ICYg MHhmZjAwKSA+PiA4OwogIHJlc3VsdCArPSAoaW5wdXQgJiAweDAwZmYpIDw8 IDg7CiAgcmV0dXJuIHJlc3VsdDsKfQoKdWludDMyX3Qgc3dhcDRieXRlcyh1 aW50MzJfdCBpbnB1dCkKewogIHVpbnQzMl90IHJlc3VsdCA9IDA7CiAgcmVz dWx0ICs9IChpbnB1dCAmIDB4ZmYwMDAwMDApID4+IDI0OwogIHJlc3VsdCAr PSAoaW5wdXQgJiAweDAwZmYwMDAwKSA+PiA4OwogIHJlc3VsdCArPSAoaW5w dXQgJiAweDAwMDBmZjAwKSA8PCA4OwogIHJlc3VsdCArPSAoaW5wdXQgJiAw eDAwMDAwMGZmKSA8PCAyNDsKICByZXR1cm4gcmVzdWx0Owp9CgovKiBSZXR1 cm4gdGhlIHRpbWUgaW4gbnMgKi8KQ1lHX1dPUkQ2NCBjdnRfdGltZShDWUdf V09SRCB0aW1lc3RhbXApIAp7CiAgcmV0dXJuICggICh0aWNrcyAqIG5zX3Bl cl90aWNrICogMTAwMCkgKyAKICAgICAgICAgICAgKChDWUdfV09SRDY0KXRp bWVzdGFtcCAqIHBzX3Blcl9oYWxfY2xvY2spICApOwp9Cgp2b2lkIGZpbmRf Zmlyc3RfdGljayhGSUxFKiBmaWxlLCBpbnQgZmlyc3RpdGVtKQp7CiAgc3Ry dWN0IEluc3RydW1lbnRfUmVjb3JkIHJlY29yZDsKICBib29sIHdyYXBwZWQg PSBmYWxzZTsKCiAgZnNlZWsoZmlsZSwgc2l6ZW9mKHJlY29yZCkqZmlyc3Rp dGVtLCBTRUVLX1NFVCk7CiAgaW50IGNudCA9IGZpcnN0aXRlbTsKCiAgd2hp bGUgKCFmZW9mKGZpbGUpKSB7CiAgICBpZiAoZnJlYWQoJnJlY29yZCxzaXpl b2YocmVjb3JkKSwxLGZpbGUpID09IDApIHsgICAgLy8gRU9GIHJlYWNoZWQs IHdyYXAgYXJvdW5kCiAgICAgIGlmICghd3JhcHBlZCkKICAgICAgewogICAg ICAgIGZzZWVrKGZpbGUsIDAsIFNFRUtfU0VUKTsKICAgICAgICBjbnQgPSAw OwogICAgICAgIHdyYXBwZWQgPSB0cnVlOwogICAgICAgIGNvbnRpbnVlOwog ICAgICB9CiAgICAgIGJyZWFrOwogICAgfQoKICAgIGlmICh3cmFwcGVkICYm IGNudCA9PSBmaXJzdGl0ZW0pICAgICAgICAgICAgICAgICAgICAvLyBlbmQg b2YgYnVmZmVyIHJlYWNoZWQKICAgIHsKICAgICAgYnJlYWs7CiAgICB9Cgog ICAgaWYgKHJlY29yZC50eXBlID09IDApIHsKICAgICAgYnJlYWs7CiAgICB9 CgogICAgcmVjb3JkLnR5cGUgPSBzd2FwMmJ5dGVzKHJlY29yZC50eXBlKTsK ICAgIHJlY29yZC50aHJlYWQgPSBzd2FwMmJ5dGVzKHJlY29yZC50aHJlYWQp OwogICAgcmVjb3JkLnRpbWVzdGFtcCA9IHN3YXA0Ynl0ZXMocmVjb3JkLnRp bWVzdGFtcCk7CiAgICByZWNvcmQuYXJnMSA9IHN3YXA0Ynl0ZXMocmVjb3Jk LmFyZzEpOwogICAgcmVjb3JkLmFyZzIgPSBzd2FwNGJ5dGVzKHJlY29yZC5h cmcyKTsKCiAgICBpZiAocmVjb3JkLnR5cGUgPT0gQ1lHX0lOU1RSVU1FTlRf Q0xPQ0tfVElDS19TVEFSVCkgewogICAgICB0aWNrcyA9ICgoQ1lHX1dPUkQ2 NClyZWNvcmQuYXJnMiA8PCAzMikgKyAoKENZR19XT1JENjQpcmVjb3JkLmFy ZzEpOwogICAgICBwcmludGYoImZpcnN0IHRpY2sgZm91bmQgb24gaXRlbSAl ZCA9PiAlZFxyXG4iLCBjbnQsIHRpY2tzKTsKICAgICAgdGlja3MtLTsKICAg ICAgcmV0dXJuOwogICAgfQoKICAgIGNudCsrOwogIH0KICBwcmludGYoImZp cnN0IHRpY2sgbm90IGZvdW5kXHJcbiIpOwp9CgppbnQgbWFpbihpbnQgYXJn YywgY2hhciAqIGFyZ3ZbXSkgCnsKICBGSUxFICogZmlsZTsKICBjaGFyICog ZmlsZW5hbWU7CiAgc3RydWN0IEluc3RydW1lbnRfUmVjb3JkIHJlY29yZDsK ICBpbnQgY250PTA7CiAgaW50IGZpcnN0aXRlbSA9IDA7CiAgYm9vbCB3cmFw cGVkID0gZmFsc2U7CgogIG5zX3Blcl90aWNrID0gMTAwMDAwMC9ydGNfcmVz b2x1dGlvblsxXTsKICBwc19wZXJfaGFsX2Nsb2NrID0gbnNfcGVyX3RpY2sg KiAxMDAwIC8gQ1lHTlVNX0tFUk5FTF9DT1VOVEVSU19SVENfUEVSSU9EOwoK ICBpZiAoYXJnYyAhPSAyICYmIGFyZ2MgIT0gMykgewogICAgdXNhZ2UoYXJn dlswXSk7CiAgICBleGl0KDEpOwogIH0KCiAgZmlsZW5hbWUgPSBhcmd2WzFd OwoKICBpZiAoYXJnYyA9PSAzKQogIHsKICAgIGZpcnN0aXRlbSA9IGF0b2ko YXJndlsyXSk7CiAgfQoKICBmaWxlID0gZm9wZW4oZmlsZW5hbWUsICJyIik7 CiAgaWYgKCFmaWxlKSB7CiAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3Igb3Bl bmluZyBmaWxlICVzOiAiLGZpbGVuYW1lKTsKICAgIHBlcnJvcigiIik7CiAg ICBleGl0KDEpOwogIH0KCiAgZmluZF9maXJzdF90aWNrKGZpbGUsIGZpcnN0 aXRlbSk7CgogIGZzZWVrKGZpbGUsIHNpemVvZihyZWNvcmQpKmZpcnN0aXRl bSwgU0VFS19TRVQpOwogIGNudCA9IGZpcnN0aXRlbTsKCiAgd2hpbGUgKCFm ZW9mKGZpbGUpKSB7CiAgICBpZiAoZnJlYWQoJnJlY29yZCxzaXplb2YocmVj b3JkKSwxLGZpbGUpID09IDApIHsgICAgLy8gRU9GIHJlYWNoZWQsIHdyYXAg YXJvdW5kCiAgICAgIGlmICghd3JhcHBlZCkKICAgICAgewogICAgICAgIGZz ZWVrKGZpbGUsIDAsIFNFRUtfU0VUKTsKICAgICAgICBjbnQgPSAwOwogICAg ICAgIHdyYXBwZWQgPSB0cnVlOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9 CiAgICAgIGJyZWFrOwogICAgfQoKICAgIGlmICh3cmFwcGVkICYmIGNudCA9 PSBmaXJzdGl0ZW0pICAgICAgICAgICAgICAgICAgICAvLyBlbmQgb2YgYnVm ZmVyIHJlYWNoZWQKICAgIHsKICAgICAgYnJlYWs7CiAgICB9CgogICAgaWYg KHJlY29yZC50eXBlID09IDApIHsKICAgICAgYnJlYWs7CiAgICB9CgogICAg cmVjb3JkLnR5cGUgPSBzd2FwMmJ5dGVzKHJlY29yZC50eXBlKTsKICAgIHJl Y29yZC50aHJlYWQgPSBzd2FwMmJ5dGVzKHJlY29yZC50aHJlYWQpOwogICAg cmVjb3JkLnRpbWVzdGFtcCA9IHN3YXA0Ynl0ZXMocmVjb3JkLnRpbWVzdGFt cCk7CiAgICByZWNvcmQuYXJnMSA9IHN3YXA0Ynl0ZXMocmVjb3JkLmFyZzEp OwogICAgcmVjb3JkLmFyZzIgPSBzd2FwNGJ5dGVzKHJlY29yZC5hcmcyKTsK CgogICAgaWYgKHJlY29yZC50eXBlID09IENZR19JTlNUUlVNRU5UX0NMT0NL X1RJQ0tfU1RBUlQpCiAgICB7CiAgICAgIGlmICh0aWNrcyAhPSAoKENZR19X T1JENjQpcmVjb3JkLmFyZzIgPDwgMzIpICsgKChDWUdfV09SRDY0KXJlY29y ZC5hcmcxKSkKICAgICAgewogICAgICAgIHByaW50ZigidGljayBjb3VudCBl cnJvciA6IHRpY2tzID0gJWxsZCwgc2hvdWxkIGJlICVsbGRcclxuIiwgCiAg ICAgICAgICB0aWNrcywgKChDWUdfV09SRDY0KXJlY29yZC5hcmcyIDw8IDMy KSArICgoQ1lHX1dPUkQ2NClyZWNvcmQuYXJnMSkpOwogICAgICAgIHRpY2tz ID0gKChDWUdfV09SRDY0KXJlY29yZC5hcmcyIDw8IDMyKSArICgoQ1lHX1dP UkQ2NClyZWNvcmQuYXJnMSk7CiAgICAgIH0KICAgIH0KCgojaWZkZWYgQ1lH REJHX0tFUk5FTF9JTlNUUlVNRU5UX01TR1MgCiAgICBwcmludGYoIiU0ZCBS ZWNvcmQgdHlwZSAoMHglMDR4KTogJS0yMHMgdGhyZWFkICUyZCwgIiwKICAg ICAgICAgICBjbnQrKyxyZWNvcmQudHlwZSxjeWdfaW5zdHJ1bWVudF9tc2co cmVjb3JkLnR5cGUpLCAKICAgICAgICAgICByZWNvcmQudGhyZWFkKTsKI2Vs c2UKICAgIHByaW50ZigiJTRkIFJlY29yZCB0eXBlIDB4JTA0eCwgdGhyZWFk ICUyZCwgIiwKICAgICAgICAgICBjbnQrKyxyZWNvcmQudHlwZSwgcmVjb3Jk LnRocmVhZCk7CiNlbmRpZgogICAgcHJpbnRmKCJ0aW1lICUxMGxsZCwgYXJn MSAweCUwOHgsIGFyZzIgMHglMDh4XG4iLAogICAgICAgICAgIGN2dF90aW1l KHJlY29yZC50aW1lc3RhbXApLCByZWNvcmQuYXJnMSwKICAgICAgICAgICBy ZWNvcmQuYXJnMik7CgogICAgaWYgKHJlY29yZC50eXBlID09IENZR19JTlNU UlVNRU5UX0NMT0NLX0lTUikKICAgIHsKICAgICAgcHJpbnRmKCJ0aWNrIGlu Y3JlYXNlXHJcbiIpOwogICAgICB0aWNrcysrOwogICAgfQogIH0KCiAgZmNs b3NlKGZpbGUpOwogIHByaW50ZigiZW5kLW9mLWluc3RydW1lbnRhdGlvblxy XG4iKTsKICByZXR1cm4gKDApOwp9Cg== ------=_Part_29331_28550287.1187338118944 Content-Type: text/plain; charset=us-ascii Content-length: 148 -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ------=_Part_29331_28550287.1187338118944--