<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:΢ÈíÑźÚ
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Hi Subin:<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for kernel version 2.6.35, ARM architecture, when interrupt&nbsp;occurs, kernel will change from USER/SVC mode to IRQ mode,backup some registers and change to SVC mode immediately, handle the real interrupt handler in SVC mode, which people say in interrupt context.<BR>&nbsp;&nbsp;&nbsp;&nbsp;kernel will&nbsp;use&nbsp;the stack(interrupt context) of interrupted thread to handle the interrupt,&nbsp;and there is no MMU operation&nbsp;which do page table switch.<BR>&nbsp;&nbsp;&nbsp; so the thread which is interrupted by interrupt, it's kernel mode stack will be choosed as the interrupt context of current interrupt.<BR>&nbsp;<BR>&nbsp;<BR><div><div id="SkyDrivePlaceholder"></div>&gt; Date: Tue, 21 Feb 2012 19:18:32 -0700<br>&gt; Subject: Re: pagetables used in interrupt context<br>&gt; From: subingangadharan@gmail.com<br>&gt; To: dhylands@gmail.com<br>&gt; CC: kernelnewbies@kernelnewbies.org<br>&gt; <br>&gt; Thank you for clearing my doubt.<br>&gt; <br>&gt; On Mon, Feb 20, 2012 at 8:39 PM, Dave Hylands &lt;dhylands@gmail.com&gt; wrote:<br>&gt; &gt; Hi Subin,<br>&gt; &gt;<br>&gt; &gt; On Mon, Feb 20, 2012 at 6:47 PM, subin gangadharan<br>&gt; &gt; &lt;subingangadharan@gmail.com&gt; wrote:<br>&gt; &gt;&gt; Hi All,<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Please correct me if I am wrong. In linux each process will have its<br>&gt; &gt;&gt; own page tables, so when a interrupt happens processor will switch to<br>&gt; &gt;&gt; interrupt context<br>&gt; &gt;&gt; and execute the proper handler. So my doubt, if this is the case,<br>&gt; &gt;&gt; interrupt hanlder will be using the pagetables of the interrupted<br>&gt; &gt;&gt; process or is there a separate page table for this.<br>&gt; &gt;<br>&gt; &gt; Yep - that's right. Conceptually you can imagine that the kernel page<br>&gt; &gt; tables are replicated in each process, so when the interrupt occurs,<br>&gt; &gt; the kernel mappings will always be in effect regardless of which task<br>&gt; &gt; is running. How this is actually achieved may vary from architecture<br>&gt; &gt; to architecture.<br>&gt; &gt;<br>&gt; &gt; --<br>&gt; &gt; Dave Hylands<br>&gt; &gt; Shuswap, BC, Canada<br>&gt; &gt; http://www.davehylands.com<br>&gt; <br>&gt; <br>&gt; <br>&gt; -- <br>&gt; With Regards<br>&gt; Subin Gangadharan<br>&gt; <br>&gt; I am not afraid and I am also not afraid of being afraid.<br>&gt; <br>&gt; _______________________________________________<br>&gt; Kernelnewbies mailing list<br>&gt; Kernelnewbies@kernelnewbies.org<br>&gt; http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies<br></div>                                               </div></body>
</html>