Hi, I can see a system call sys_rasctl which install a RAS area. So I assume that the RAS PC's will be only user PC's and the cpu_switchto will modify the user PC if it is interrupted in the middle of a RAS.
Thanks, Piyus On Sat, Aug 3, 2013 at 1:12 AM, Matt Thomas <m...@3am-software.com> wrote: > > On Aug 2, 2013, at 4:43 AM, Martin Husemann <mar...@duskware.de> wrote: > > > On Fri, Aug 02, 2013 at 10:46:31AM +0000, Piyus Kedia wrote: > >> Dear all, > >> > >> We are working on developing a dynamic binary translator for the kernel. > >> Towards this, we wanted to confirm if the interrupted PC value pushed on > >> stack by an interrupt/exception is used by the interrupt/exception > handlers? > > > > You are assuming some special architecture here, aren't you? > > > > This is all very much machine dependend, and can not be answered for > NetBSD > > in general, please give a bit more details. It might be better to ask > > on arch specific mailing lists, if you only care about a certain arch. > > In general, interrupt do not care about the PC unless they are returning > back > to usermode and an "ast" has been requested. This will causes all the > registers > to be saved and a context switch to happen. The clock handler cares about > the > PC to do profiling. > > The code checking for interrupting a RAS handler in cpu_switchto will > modify > the PC back to the start of the RAS if the PC was in the middle of a RAS. > > For copying faults, NetBSD uses pcb_onfault whose implementation varies by > architecture but involves saving the PC (and maybe other registers) and > using the onfault information to return/react to fault by restoring the > registers saved but this is only applicable to kernel PC addresses.