All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Stuart MacDonald" <stuartm@connecttech.com>
To: "'Paul Fulghum'" <paulkf@microgate.com>, <tytso@mit.edu>
Cc: "'Alan Cox'" <alan@lxorguk.ukuu.org.uk>,
	"'Russell King'" <rmk+lkml@arm.linux.org.uk>,
	"'Linux Kernel Mailing List'" <linux-kernel@vger.kernel.org>
Subject: RE: [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UPkernel
Date: Mon, 1 Nov 2004 10:12:38 -0500	[thread overview]
Message-ID: <002a01c4c025$39f22530$294b82ce@stuartm> (raw)
In-Reply-To: <418643E2.9080006@microgate.com>

From: Paul Fulghum [mailto:paulkf@microgate.com] 
> Stuart MacDonald wrote:
> > I always thought the whole point of low_latency was to make the
> > receive-path very fast, which means specifically allowing the flip
> > routine to run from the ISR. So checking for calling from 
> the ISR and
> > specifically disallowing that is basically negating the 
> entire raison
> > d'etre for low_latency.
> 
> I was thought it was to speed processing if the
> caller was already in process context. Maybe the
> real intentions are lost to history.

Best person to ask may be Ted; he was once the serial maintainer. Ted?

> Moving forward, Alan stated that the flip
> routine should not be called in interrupt context.
> His last post concerning some transient state
> of low_latency has confused me.

I didn't follow that either, but I wasn't reading too closely.

> Currently, with the 8250 driver and N_TTY
> line discipline, calling the flip routine from
> ISR causes an SMP deadlock. There are two paths that
> cause this:
> 1. low_latency is set
> 2. flip buffer becomes full
> 
> So calling the flip routine from the ISR may work
> with some specific drivers, but it would be
> dangerous to assume this works in all cases.

I haven't looked at the 2.6 serial rewrite in depth yet, but the
problem always existed in the 2.4 driver. I got around the problem by
checking for interrupt context and taking the locks or not at a much
earlier stage.

..Stu
www.connecttech.com


  reply	other threads:[~2004-11-01 15:36 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-29 19:55 [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UP kernel Tim_T_Murphy
2004-10-29 20:20 ` Russell King
2004-10-29 22:18   ` Paul Fulghum
2004-10-29 23:40   ` Paul Fulghum
2004-10-30 22:43     ` Alan Cox
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
2004-11-01 14:10           ` Paul Fulghum
2004-11-01 15:12             ` Stuart MacDonald [this message]
2004-11-01 23:02             ` Alan Cox
2004-11-02  0:18               ` Paul Fulghum
2004-10-29 21:08 ` [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UP kernel Paul Fulghum
  -- strict thread matches above, loose matches on Subject: below --
2005-01-10 20:36 [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UPkernel Tim_T_Murphy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='002a01c4c025$39f22530$294b82ce@stuartm' \
    --to=stuartm@connecttech.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulkf@microgate.com \
    --cc=rmk+lkml@arm.linux.org.uk \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.