<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We are seeking realtime performance of an interrupt routine using an APM86290  (44x based CPU).   We changed the interrupt so it is a Critical Interrupt to reduce jitter.  We do have a substantial amount of code in the interrupt routine.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Is it inappropriate to use a critical interrupt in a generic fashion.  We did something like what you see below.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">CRITICAL_EXCEPTION(0x0100, CriticalInput, unknown_exception)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">to<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">CRITICAL_EXCEPTION(0x0100, CriticalInput, CustomCritIntr)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">The code for the handler is large<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">void  CustomCritIntr (void)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">  LargeAmountOfCode();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">}<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The code runs fine in a standard interrupt handler but periodically we are getting the following types of error when we use our code in the critical interrupt handler.  Is this a result of our CustomCritIntr handler disturbing  the TLB
 handlers of Linux?  I will add the interrupt is generated at a very high rate every ie. 15 usecs.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Unable to handle kernel paging request for data at address 0xa47bb580<o:p></o:p></b></p>
<p class="MsoNormal"><b>Faulting instruction address: 0x80088154<o:p></o:p></b></p>
<p class="MsoNormal"><b>Oops: Kernel access of bad area, sig: 11 [#1]<o:p></o:p></b></p>
<p class="MsoNormal"><b>SMP NR_CPUS=2 APM862xx vB<o:p></o:p></b></p>
<p class="MsoNormal"><b>Modules linked in: usralgo(O) rtpmac(O) libppmac(O) ppmachw(O) ec_r8169(O) ec_master(O) [last unloaded: usralgo]<o:p></o:p></b></p>
<p class="MsoNormal"><b>NIP: 80088154 LR: 8006799c CTR: a4796538<o:p></o:p></b></p>
<p class="MsoNormal"><b>REGS: 806cad90 TRAP: 0300   Tainted: G           O  (3.2.21-powerpmac-smp)<o:p></o:p></b></p>
<p class="MsoNormal"><b>MSR: 00021000 <ME,CE>  CR: 28dd4f88  XER: 00000000<o:p></o:p></b></p>
<p class="MsoNormal"><b>DEAR: a47bb580, ESR: 00000000<o:p></o:p></b></p>
<p class="MsoNormal"><b>TASK = 9e076d00[0] 'swapper/1' THREAD: 9e0ac000 CPU: 1<o:p></o:p></b></p>
<p class="MsoNormal"><b>GPR00: a47bb4d0 806cae40 9e076d00 00000000 00000000 80088154 fff2eaf7 806df200<o:p></o:p></b></p>
<p class="MsoNormal"><b>GPR08: 806c0090 80621840 806bc790 00021000 9e0ac260 fff2eaf7 30000000 ffffffe0<o:p></o:p></b></p>
<p class="MsoNormal"><b>GPR16: a47c0000 a47c0000 00000000 a47c0000 00000000 a47c0000 ffffffff 000030dd<o:p></o:p></b></p>
<p class="MsoNormal"><b>GPR24: a47c0000 a76891a8 a7688800 a76891a8 00000004 80088154 8066dec8 a47bb4cc<o:p></o:p></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>