Messages in this thread | | | Date | Mon, 14 Jan 2002 11:58:26 -0800 | From | george anzinger <> | Subject | Re: [2.4.17/18pre] VM and swap - it's really unusable |
| |
Stephan von Krawczynski wrote: > > On Mon, 14 Jan 2002 02:04:56 -0800 > Andrew Morton <akpm@zip.com.au> wrote: > > > Stephan von Krawczynski wrote: > > > > > > ... > > > Unfortunately me have neither of those. This would mean I cannot benefit > from> > _these_ patches, but instead would need _others_ > [...] > > > > In 3c59x.c, probably the biggest problem will be the call to issue_and_wait() > > in boomerang_start_xmit(). On a LAN which is experiencing heavy collision > rates> this can take as long as 2,000 PCI cycles (it's quite rare, and possibly > an> erratum). It is called under at least two spinlocks. > > > > In via-rhine, wait_for_reset() can busywait for up to ten milliseconds. > > via_rhine_tx_timeout() calls it from under a spinlock. > > > > In eepro100.c, wait_for_cmd_done() can busywait for one millisecond > > and is called multiple times under spinlock. > > Did I get that right, as long as spinlocked no sense in conditional_schedule() > ? > > > Preemption will help _some_ of this, but by no means all, or enough. > > Maybe we should really try to shorten the lock-times _first_. You mentioned a > way to find the bad guys?
Apply the preempt patch and then the preempt-stats patch. Follow instructions that come with the stats patch. It will report on the longest preempt disable times since the last report. You need to provide a load that will exercise the bad code, but it will tell you which, where, and how bad. Note: it measures preempt off time, NOT how long it took to get to some task, i.e. it does not depend on requesting preemption at the worst possible time. -- George george@mvista.com High-res-timers: http://sourceforge.net/projects/high-res-timers/ Real time sched: http://sourceforge.net/projects/rtsched/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |