Discussion:
Interrupt Monitor
(too old to reply)
spudarnia@yahoo.com [nuttx]
2018-01-15 15:37:13 UTC
Permalink
A couple of days ago, I added an interrupt monitor to NuttX which may be useful for verifying interrupt-related events. This feature is enabled with CONFIG_FS_PROCFS=y and CONFIG_SCHED_IRQMONITOR=y.

It works by creating a new file called irqs in the procfs file system. You can see the IRQ data by simply 'cat'-ing /proc/irqs:

nsh> cat /proc/irqs
IRQ HANDLER ARGUMENT COUNT RATE
3 00001bc5 00000000 1021 18.106
15 00008091 00000000 5644 100.000
30 00000fd7 20000018 47 0.832

In this case irq=3 is SVCALL and indicates the rate of "voluntary" context switches. irq=15 is the SysTick timer which will always have the configured rate (100Hz in this case). irq=30 is the serial console.

NSH also supports a special command 'irqinfo' to make this even simpler to use:

NuttShell (NSH) NuttX-7.23
nsh> irqinfo
IRQ HANDLER ARGUMENT COUNT RATE
3 00001bc5 00000000 198 18.853
15 00008091 00000000 1055 100.000
30 00000fd7 20000018 20 1.948

In this case, the network is also enable but there is no network activity but if I do:

nsh> ping 10.0.0.1
PING 10.0.0.1 56 bytes of data
...

Then I see:

nsh> irqinfo
IRQ HANDLER ARGUMENT COUNT RATE
3 00001bc5 00000000 612 23.420
15 00008091 00000000 2614 100.000
30 00000fd7 20000018 117 4.497
65 00008821 20000568 23 0.879

Where irq=65 is the Ethernet interrupt

Greg
Neilh NeilH20@biomonitors.com [nuttx]
2018-01-15 20:56:54 UTC
Permalink
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>







<body style="background-color: #fff;">
<span style="display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

<div id="ygrp-text" >


<p>


<p>Sounds like a nice addition. <br>
</p>
<pre class="moz-signature" cols="72">Neil Hancock</pre>
<div class="moz-cite-prefix">On 1/15/2018 7:37 AM,
<a class="moz-txt-link-abbreviated" href="mailto:***@yahoo.com">***@yahoo.com</a> [nuttx] wrote:<br>
</div>
<blockquote type="cite" cite="mid:p3ihr9+***@YahooGroups.com"> <span> </span>

<div id="ygrp-text">
<p>A couple of days ago, I added an interrupt monitor to
NuttX which may be useful for verifying interrupt-related
events. This feature is enabled with CONFIG_FS_PROCFS=y
and CONFIG_SCHED_IRQMONITOR=y.<br>
<br>
It works by creating a new file called irqs in the procfs
file system. You can see the IRQ data by simply 'cat'-ing
/proc/irqs:<br>
<br>
nsh&gt; cat /proc/irqs<br>
IRQ HANDLER ARGUMENT COUNT RATE<br>
3 00001bc5 00000000 1021 18.106<br>
15 00008091 00000000 5644 100.000<br>
30 00000fd7 20000018 47 0.832<br>
<br>
In this case irq=3 is SVCALL and indicates the rate of
"voluntary" context switches. irq=15 is the SysTick timer
which will always have the configured rate (100Hz in this
case). irq=30 is the serial console.<br>
<br>
NSH also supports a special command 'irqinfo' to make this
even simpler to use:<br>
<br>
NuttShell (NSH) NuttX-7.23<br>
nsh&gt; irqinfo<br>
IRQ HANDLER ARGUMENT COUNT RATE<br>
3 00001bc5 00000000 198 18.853<br>
15 00008091 00000000 1055 100.000<br>
30 00000fd7 20000018 20 1.948<br>
<br>
In this case, the network is also enable but there is no
network activity but if I do:<br>
<br>
nsh&gt; ping 10.0.0.1<br>
PING 10.0.0.1 56 bytes of data<br>
....<br>
<br>
Then I see:<br>
<br>
nsh&gt; irqinfo<br>
IRQ HANDLER ARGUMENT COUNT RATE<br>
3 00001bc5 00000000 612 23.420<br>
15 00008091 00000000 2614 100.000<br>
30 00000fd7 20000018 117 4.497<br>
65 00008821 20000568 23 0.879<br>
<br>
Where irq=65 is the Ethernet interrupt<br>
<br>
Greg<br>
<br>
</p>
</div>


<!-- end group email -->
</blockquote>
<br>


</p>

</div>


<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>






<div style="clear:both"> </div>

<div id="fromDMARC" style="margin-top: 10px;">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
Posted by: Neilh &lt;***@biomonitors.com&gt; <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<div style="clear:both"> </div>

<table cellspacing=4px style="margin-top: 10px; margin-bottom: 10px; color: #2D50FD;">
<tbody>
<tr>
<td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;" >
<a style="text-decoration: none; color: #2D50FD" href="https://groups.yahoo.com/neo/groups/nuttx/conversations/messages/17026;_ylc=X3oDMTJybHZndTdzBF9TAzk3MzU5NzE0BGdycElkAzIzMzg5MDcwBGdycHNwSWQDMTcwNTAwNjU1OQRtc2dJZAMxNzAyNgRzZWMDZnRyBHNsawNycGx5BHN0aW1lAzE1MTYwNDk4MTg-?act=reply&messageNum=17026">Reply via web post</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="mailto:***@biomonitors.com?subject=Re%3A%20%5Bnuttx%5D%20Interrupt%20Monitor" style="text-decoration: none; color: #2D50FD;">
Reply to sender </a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
<a href="mailto:***@yahoogroups.com?subject=Re%3A%20%5Bnuttx%5D%20Interrupt%20Monitor" style="text-decoration: none; color: #2D50FD">
Reply to group </a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="https://groups.yahoo.com/neo/groups/nuttx/conversations/newtopic;_ylc=X3oDMTJmZXIyZ3BpBF9TAzk3MzU5NzE0BGdycElkAzIzMzg5MDcwBGdycHNwSWQDMTcwNTAwNjU1OQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzE1MTYwNDk4MTg-" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
<a href="https://groups.yahoo.com/neo/groups/nuttx/conversations/topics/17025;_ylc=X3oDMTM3NzFtOG5pBF9TAzk3MzU5NzE0BGdycElkAzIzMzg5MDcwBGdycHNwSWQDMTcwNTAwNjU1OQRtc2dJZAMxNzAyNgRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzE1MTYwNDk4MTgEdHBjSWQDMTcwMjU-" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
(2)
</td>
</tr>
</tbody>
</table>


<div id="megaphoneModule">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
<div>
<div class="stream" style="margin-bottom:10px;">
<div style="background-color:white;">
<div class="sn-img" style="display:inline;"><img name="tn_file" style="padding:0px 10px;vertical-align:top;margin-top:5px;" src="https://s.yimg.com/ru/static/images/yg/img/megaphone/1464031581_phpFA8bON" height="82" width="82"></div>
<div class="mod-txt" style="display:inline-block;">
<a rel="nofollow" name="sub_url" target="_blank" href="https://yho.com/1wwmgg" style="color:#0000FF;display:block;margin-left:5px;text-decoration:none;"><span style="font-size:15px;">Have you tried the highest rated email app?</span></a>
<div style="max-width:530px;padding:2px 5px;">With 4.5 stars in iTunes, the Yahoo Mail app is the highest rated email app on the market. What are you waiting for? Now you can access all your inboxes (Gmail, Outlook, AOL and more) in one place. Never delete an email again with 1000GB of free cloud storage.</div>
</div>
</div>
</div> </div>

<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>

<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->






<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://groups.yahoo.com/neo/groups/nuttx/info;_ylc=X3oDMTJmNTcxZ2VyBF9TAzk3MzU5NzE0BGdycElkAzIzMzg5MDcwBGdycHNwSWQDMTcwNTAwNjU1OQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzE1MTYwNDk4MTg-" style="text-decoration: none;">Visit Your Group</a></span>

<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
<li style="border-right: 1px solid #000; font-weight: 700; display: inline; padding: 0 5px; margin-left: 0;">
<span class="cat"><a href="https://groups.yahoo.com/neo/groups/nuttx/members/all;_ylc=X3oDMTJnbm1taW43BF9TAzk3MzU5NzE0BGdycElkAzIzMzg5MDcwBGdycHNwSWQDMTcwNTAwNjU1OQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxNTE2MDQ5ODE4" style="text-decoration: none;">New Members</a></span>
<span class="ct" style="color: #ff7900;">4</span>
</li>
</ul>
</div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="https://groups.yahoo.com/neo;_ylc=X3oDMTJlbWZqODBuBF9TAzk3NDc2NTkwBGdycElkAzIzMzg5MDcwBGdycHNwSWQDMTcwNTAwNjU1OQRzZWMDZnRyBHNsawNnZnAEc3RpbWUDMTUxNjA0OTgxOA--" style="float: left;"><img src="Loading Image..." height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
<div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> &bull; <a href="mailto:nuttx-***@yahoogroups.com?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> &bull; <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

</div> <!-- ygrp-msg -->


<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->



</div> <!-- |**|end egp html banner|**| -->

<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>

<img src="http://geo.yahoo.com/serv?s=97359714/grpId=23389070/grpspId=1705006559/msgId=17026/stime=1516049818" width="1" height="1"> <br>

<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img&cf12=CP" width="1" height="1">

<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}

#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}

#ygrp-mkp #ads {
margin-bottom: 10px;
}

#ygrp-mkp .ad {
padding: 0 0;
}

#ygrp-mkp .ad p {
margin: 0;
}

#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}

#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}

#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}

#activity span {
font-weight: 700;
}

#activity span:first-child {
text-transform: uppercase;
}

#activity span a {
color: #5085b6;
text-decoration: none;
}

#activity span span {
color: #ff7900;
}

#activity span .underline {
text-decoration: underline;
}

.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}

.attach div a {
text-decoration: none;
}

.attach img {
border: none;
padding-right: 5px;
}

.attach label {
display: block;
margin-bottom: 5px;
}

.attach label a {
text-decoration: none;
}

blockquote {
margin: 0 0 0 4px;
}

.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}

.bold a {
text-decoration: none;
}

dd.last p a {
font-family: Verdana;
font-weight: 700;
}

dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}

dd.last p span.yshortcuts {
margin-right: 0;
}

div.attach-table div div a {
text-decoration: none;
}

div.attach-table {
width: 400px;
}

div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}

div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
text-decoration: none;
}

div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}

.green {
color: #628c2a;
}

.MsoNormal {
margin: 0 0 0 0;
}

o {
font-size: 0;
}

#photos div {
float: left;
width: 72px;
}

#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}

#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}

#reco-category {
font-size: 77%;
}

#reco-desc {
font-size: 77%;
}

.replbq {
margin: 4px;
}

#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}

#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}

#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}

#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}

#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}

#ygrp-mlmsg * {
line-height: 1.22em;
}

#ygrp-mlmsg #logo {
padding-bottom: 10px;
}


#ygrp-msg p a {
font-family: Verdana;
}

#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}

#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}

#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}

#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}

#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}

#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}

#ygrp-text {
font-family: Georgia;
}

#ygrp-text p {
margin: 0 0 1em 0;
}

#ygrp-text tt {
font-size: 120%;
}

#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->

Continue reading on narkive:
Loading...