On Tue, Aug 03, 2004 at 08:52:06PM +0200, Philippe Gerum wrote:
> > > > > .faulthandler = if a trap is rised by the cpu, and a xnthread is 
> > > > > active
> > > > Yes, but a thread is not necessarily active at that moment. The handler
> > > > should take care of identifying the faulting context.

> > > Hmm - After winding though about 4-5 layers[1]....this function calls
> > > the svctable.faulthandler, only if a xnthread is active.

> > > int xnpod_trap_fault (void *fltinfo)
> > > {
> > >     if (nkpod == NULL || xnpod_idle_p())
> > >         return 0;

> If an IRQ preempts a real-time thread then triggers a fault,
> xnpod_idle_p() returns false in this handler, since the current thread
> before preemption was _not_ the root/idle one, but a RT one. Hence the
> importance of using xnpod_interrupt_p() too.

What happens if a RT-IRQ preempts the linux domaini then triggers a
fault? Then the root-thread is active? And xnpod_idle_p() returns true.
If xnpod_idle_p() returns true, means that the svctable.faulthandler
is not called. Am I right?

> > >     return nkpod->svctable.faulthandler(fltinfo);
> > > }

Marc
-- 
#!/bin/sh
set - `type $0` 'tr "[a-zA-Z]" "[n-za-mN-ZA-M]"';while [ "$2" != "" ];do \
shift;done; echo 'frq -a -rc '`echo "$0"| $1 `'>$UBZR/.`rpub signature|'`\
echo $1|$1`'`;rpub "Jr ner fvtangher bs obet. Erfvfgnapr vf shgvyr!"'|$1|sh

Reply via email to