tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xen, x86 intr code rototil alert.



> Date: Fri, 10 Nov 2017 19:38:59 +0000
> From: Taylor R Campbell <campbell%mumble.net@localhost>
> 
> > Date: Fri, 10 Nov 2017 18:47:21 +0000
> > From: "Cherry G. Mathew" <cherry%zyx.in@localhost>
> > 
> > On 6 November 2017 9:31:13 PM MYT, Manuel Bouyer <bouyer%antioche.eu.org@localhost> wrote:
> > >note that there are automatic domU tests here:
> > >http://www-soc.lip6.fr/~bouyer/NetBSD-tests/xen/
> > >
> > >Seems to be broken since the 2017-10-28 08:50 UTC run,
> > >maybe related to the exec changes. It may already be fixed.
> > 
> > There seems to be an IPL related regression that looks suspicious in
> > the post 4th Nov tests. Will investigate.
> 
> Can you try the attached patch?  It might help isolate the problem.

I didn't even forget to attach the file this time!  But it helps to
run cvs diff with the right ssh key loaded so I actually get a diff.
Index: sys/arch/xen/xen/evtchn.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/evtchn.c,v
retrieving revision 1.75
diff -p -u -r1.75 evtchn.c
--- sys/arch/xen/xen/evtchn.c	10 Nov 2017 19:24:17 -0000	1.75
+++ sys/arch/xen/xen/evtchn.c	10 Nov 2017 19:39:28 -0000
@@ -393,6 +393,11 @@ evtchn_do_event(int evtch, struct intrfr
 		ci->ci_ilevel = ih->ih_level;
 		ih_fun = (void *)ih->ih_fun;
 		ih_fun(ih->ih_arg, regs);
+		KASSERTMSG(ci->ci_ilevel == ih->ih_level,
+		    "event handler %p for evtsource[%d] (%s) changed ipl:"
+		    " %d != %d",
+		    ih->ih_realfun, evtch, evtsource[evtch]->ev_evname,
+		    ci->ci_ilevel, ih->ih_level);
 		ih = ih->ih_evt_next;
 	}
 	mutex_spin_exit(&evtlock[evtch]);
@@ -418,6 +423,13 @@ splx:
 					ih_fun = (void *)ih->ih_fun;
 					ih_fun(ih->ih_arg, regs);
 					cli();
+					KASSERTMSG(ci->ci_ilevel == i,
+					    "interrupt handler %p"
+					    " for interrupt source %s"
+					    " changed ipl: %d != %d",
+					    ih->ih_realfun,
+					    ci->ci_isources[i]->is_xname,
+					    ci->ci_ilevel, i);
 				}
 				hypervisor_enable_ipl(i);
 				/* more pending IPLs may have been registered */


Home | Main Index | Thread Index | Old Index