[lkml]   [2002]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [2.4.17/18pre] VM and swap - it's really unusable
> Alan Cox wrote:                                                     
> >
> > > > In eepro100.c, wait_for_cmd_done() can busywait for one
> > > > and is called multiple times under spinlock.
> > >
> > > Did I get that right, as long as spinlocked no sense in
> > > conditional_schedule()
> >
> > No conditional schedule, no pre-emption. You would need to rewrite
> > code to do something like try for 100uS then queue a 1 tick timer
> > retry asynchronously. That makes the code vastly more complex for
> > error case and for some drivers where irq mask is required during
> > waits won't help.
> That wait_for_cmd_done() and similar functions in other drivers are
> let's say 3 times in interrupt handler or spinlocked routine and 20
times in
> non-interrupts disabled nor spinlocked functions.
> Spinlocked reqions are usually protected by spin_lock_irqsave().

Now I have really waited for this one: _usually_.
My servers work usually, except for the days they hit that other
rather unusual part of the code...

> So the code reads
> if (!spin_is_locked(sl))
> conditional_schedule();
> This doesn't make the whole problem go away, but could make the
situation a
> little bit better for most of the time?

Time to take out these big hats and rename ourself to Gandalf or the
like. What do you expect your server to do, having no problem "most of
the time"? Please read Albert E. Time can be pretty relative to your
personal point of view...


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:22    [W:0.286 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site