Re: Packet loss every 30.999 seconds
- From: Julian Elischer <julian@xxxxxxxxxxxx>
- Date: Wed, 19 Dec 2007 11:44:00 -0800
David G Lawrence wrote:
In any case, it appears that my patch is a no-op, at least for theThe patch should work fine. IIRC, it yields voluntarily so that other
problem I was trying to solve. This has me confused, however, because at
one point the problem was mitigated with it. The patch has gone through
several iterations, however, and it could be that it was made to the top
of the loop, before any of the checks, in a previous version. Hmmm.
things can run. I committed a similar hack for uiomove(). It was
It patches the bottom of the loop, which is only reached if the vnode
is dirty. So it will only help if there are thousands of dirty vnodes.
While that condition can certainly happen, it isn't the case that I'm
particularly interested in.
CPUs, everything except interrupts has to wait for these syscalls. Now
the main problem is to figure out why PREEMPTION doesn't work. I'm
not working on this directly since I'm running ~5.2 where nearly-full
kernel preemption doesn't work due to Giant locking.
I don't understand how PREEMPTION is supposed to work (I mean
to any significant detail), so I can't really comment on that.
It's really very simple.
When you do a "wakeup" (or anything else that puts a thread on a run queue)
i.e. use setrunqueue()
then if that thread has more priority than you do, (and in the general case
is an interrupt thread), you immedialty call mi_switch so that it runs imediatly.
You get guaranteed to run again when it finishes. (you are not just put back on the run queue at the end).
the critical_enter()/critical_exit() calls disable this from happening to you if you really must not be interrupted by another thread.
there is an option where it is not jsut interrupt threads that can jump in,
but I think it's usually disabled.
-DG
David G. Lawrence
President
Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500
The FreeBSD Project - http://www.freebsd.org
Pave the road of life with opportunities.
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: Packet loss every 30.999 seconds
- From: Kostik Belousov
- Re: Packet loss every 30.999 seconds
- References:
- Re: Packet loss every 30.999 seconds
- From: Bruce Evans
- Re: Packet loss every 30.999 seconds
- From: Scott Long
- Re: Packet loss every 30.999 seconds
- From: Bruce Evans
- Re: Packet loss every 30.999 seconds
- From: David G Lawrence
- Re: Packet loss every 30.999 seconds
- From: Bruce Evans
- Re: Packet loss every 30.999 seconds
- From: David G Lawrence
- Re: Packet loss every 30.999 seconds
- From: David G Lawrence
- Re: Packet loss every 30.999 seconds
- From: Bruce Evans
- Re: Packet loss every 30.999 seconds
- From: David G Lawrence
- Re: Packet loss every 30.999 seconds
- From: Bruce Evans
- Re: Packet loss every 30.999 seconds
- From: David G Lawrence
- Re: Packet loss every 30.999 seconds
- Prev by Date: Re: Packet loss every 30.999 seconds
- Next by Date: Re: Deadlock in the routing code
- Previous by thread: Re: Packet loss every 30.999 seconds
- Next by thread: Re: Packet loss every 30.999 seconds
- Index(es):
Relevant Pages
|
|