Date: Thu, 25 Oct 2001 11:31:39 -0700 From: Luigi Rizzo <rizzo@aciri.org> To: current@freebsd.org Subject: where is the idle_loop in current ? Message-ID: <20011025113139.A56942@iguana.aciri.org>
next in thread | raw e-mail | index | archive | help
I have some code (in stable) which is invoked from the idle
loop, see below. I was trying to port it to CURRENT, but
cannot find where the idle_loop (or idlethread ?) has gone.
Any pointers ? A grep for idlethread did not return
anything that i could parse.
Furthermore, what kind of locking should i use instead of
splimp() (the procedures called by ether_input() are a
stripped down, bounded-execution-time version of the
interrupt service routines for ethernet adapters).
thanks
luigi
--- i386/i386/swtch.s 2001/07/26 02:29:10 1.89.2.4
+++ i386/i386/swtch.s 2001/10/23 04:00:27
@@ -246,6 +246,15 @@
call _procrunnable
testl %eax,%eax
CROSSJUMP(jnz, sw1a, jz)
+#ifdef XORP_ETHER_POLLING
+ incl idle_done
+ call ether_poll
+ sti
+ nop
+ cli
+ testl %eax, %eax
+ jnz idle_loop
+#endif
call _vm_page_zero_idle
testl %eax, %eax
jnz idle_loop
--- i386/isa/intr_machdep.c 2001/08/24 17:39:12 1.29.2.3
+++ i386/isa/intr_machdep.c 2001/10/24 02:03:55
int
+ether_poll(void)
+{
+ static int i;
+
+ int s = splimp();
+ if (i >= pr_next)
+ i = 0 ;
+ if (pr[i].handler)
+ (*pr[i].handler)(pr[i].argument, 2);
+ i++ ;
+ splx(s);
+ return 1; /* more polling */
+}
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011025113139.A56942>
