Re: [2.4.17/18pre] VM and swap - it's really unusable

george anzinger
2002-01-14T20:03:02Z

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/