Re: [patch 2.6.31-rc6] fix serial gadget regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 21 Aug 2009 12:27:10 -0700
David Brownell <david-b@xxxxxxxxxxx> wrote:

> On Friday 21 August 2009, Alan Cox wrote:
> > > That patch made an incompatible change to the locking policy, so that
> > > combining (a) tty->low_latency with (b) tty_flip_buffer_push() calls
> > > from tasklets now generates lockdep warnings of the "you can't grab a
> > > mutex from a tasklet" flavor.
> > 
> > No it didn't.
> 
> In an operational sense it most certainly did.  And that's how
> regressions are normally measured:  it worked before, but now
> doesn't work.  Docs != code and all that.

Not really - it would randomly corrupt or call functions in unsafe ways.

> > The throttle race was recently fixed and was real (although you probably
> > saw it in real life because you wrongly set tty->low_latency). You could
> > get this occuring the throttle and unthrottle running at the same time
> 
> Sounds like that required SMP?  I saw this on a single-core ARM.

It didn't require SMP: this is what could occur (especially with
low_latency mis-set. Without it I think you really did need SMP)

	tty_throttle
	set throttled
		INT
			ldisc processing
			tty_unthrottle
			->unthrottle
		INT over
	->throttle

... hang

> more current TTY code.  Stress loads (more TX than RX) had glitches
> which seemed likely to be affected by the overhaul you were very
> actively working on at the time.  (And thanks for wading in and
> fixing so much of that pile of TTY ... stuff!)

Other than the throttle race tx ought to be pretty solid. Ditto rx once
the tty buffer stuff was in. open/close/hangup is however still not a
pretty story.

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux