linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RE: [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UPkernel
@ 2005-01-10 20:36 Tim_T_Murphy
  0 siblings, 0 replies; 6+ messages in thread
From: Tim_T_Murphy @ 2005-01-10 20:36 UTC (permalink / raw)
  To: alan; +Cc: rmk+lkml, linux-kernel, paulkf


Thanks for your comments and advice, I am new to
the kernel and appreciate your taking the time.

> Presumably this is a device with a fake 8250 that 
> produces sudden large bursts of data ? If so then 
> for now you -need- to set low_latency and should 
> probably do it by the PCI vendor subid/device id. 
> The problem is that the serial layer expects serial 
> data arriving at serial speeds. It completely breaks 
> down when it hits an emulation of a generic uart that
> suddenely receives 32Kbytes of data at ethernet speed.

Yes. Thanks, this confirms what I suspected.

> The longer term fix for this is when the flip buffers
> go away, and the same problem gets cleaned up for 
> things like mainframes and some high performance DMA 
> devices. 

Is this, or a short-term fix, expected anytime soon?

Problem for me is that my application no longer works
with the 2.6 kernels, since it relies on the kernel's
serial support -- which worked fine with 2.4 kernels.

If there's anything I can do to expedite a fix please
let me know -- I've spent the past few days learning
and working with the code, but I obviously have a 
ways to go before I sleep..

Tim

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UP kernel
@ 2004-10-31  0:26 Paul Fulghum
  2004-11-01  7:14 ` [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UPkernel Stuart MacDonald
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Fulghum @ 2004-10-31  0:26 UTC (permalink / raw)
  To: Alan Cox; +Cc: Russell King, Tim_T_Murphy, Linux Kernel Mailing List

On Sat, 2004-10-30 at 17:43, Alan Cox wrote:
> On Sad, 2004-10-30 at 00:40, Paul Fulghum wrote:
> > Would it make sense to do something like (in tty_io.c) the following?
> 
> Not really because it can legally occur if you flip the low latency
> flag while a transaction is queued. It might work if you waited for
> scheduled work to complete in the flag changing.

I don't see how having flush_to_ldisc() queued
or already running (on another processor) negates
the prohibition on calling tty_flip_buffer_push()
with low_latency set in interrupt context.

The comments for tty_flip_buffer_push() state the
function should not be called in interrupt context
if low_latency is set (no exceptions are listed).
Meaning flush_to_ldisc() should only be called
in process context.

If flush_to_ldisc() is queued or already executing,
there is no protection against calling
flush_to_ldisc() again, directly in interrupt context.
TTY_DONT_FLIP is no protection, that is only set
in read_chan() of n_tty.c

If I'm missing something, please point it out.

-- 
Paul Fulghum
paulkf@microgate.com



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-01-10 21:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-10 20:36 [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UPkernel Tim_T_Murphy
  -- strict thread matches above, loose matches on Subject: below --
2004-10-31  0:26 [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UP kernel Paul Fulghum
2004-11-01  7:14 ` [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UPkernel Stuart MacDonald
2004-11-01 14:10   ` Paul Fulghum
2004-11-01 15:12     ` Stuart MacDonald
2004-11-01 23:02     ` Alan Cox
2004-11-02  0:18       ` Paul Fulghum

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).