linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: David Miller <davem@davemloft.net>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 4/6] ide: allow ide_dev_read_id() to be called from the IRQ context
Date: Wed, 24 Jun 2009 15:05:52 +0200	[thread overview]
Message-ID: <200906241505.52899.bzolnier@gmail.com> (raw)
In-Reply-To: <200906241304.14926.bzolnier@gmail.com>

On Wednesday 24 June 2009 13:04:14 Bartlomiej Zolnierkiewicz wrote:
> On Wednesday 24 June 2009 12:48:20 Bartlomiej Zolnierkiewicz wrote:
> 
> > > 1) You want the device to be quiescent anyways when you do this
> > >    SET_XFER command.  What better way than to plug the queue
> > >    and make sure all currently outstanding requests complete?

BTW this is the way we do it currently.

We just back-ride on ide_finish_cmd() call for the special user-initiated
REQ_TYPE_ATA_TASKFILE request.  Doing it the other way will only result in:

* shorter IRQ latency for user-space requested xfer mode change request
  (irrelevant as the whole interface is just a rarely used legacy)

* much more invasive changes to the IDE core (I would be more than happy
  to welcome them but this is against our newly established policy)

Anyway I'll be happy with whatever solution that will end up in Linus tree
and is OK from the correctness POV.

> > >    And as already discussed, we even already have logic to support
> > >    this kind of thing for the sake of power-management.
> > 
> > Power management requests are kind of special and need block layer support.
> > 
> > Please take a look at REQ_DEVSET_EXEC special requests from ide-devsets.c
> > instead if you would like to investigate possibility of a cleaner (although
> > more invasive) solution.
> > 
> > > 2) All commands going into the device do so from a context from
> > >    which we could take a sleeping lock such as a mutex.  It's
> > >    therefore the most natural way to synchonize things.
> > 
> > The fact is that we need to synchronize against all commands going into
> > the device and they are synchronized using block queue (which is protected
> > with spinlock by block layer). Adding an extra mutex (even if possible)
> 
> We need to also take the synchronization between block queues of all devices
> on the port and the serialized ports into account..  This is quite complex
> and fragile code (vide cmd64x screaming IRQ issue ;)..
> 
> I would personally try going with 1) and avoid 2) at all costs..

  reply	other threads:[~2009-06-24 13:05 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-23 21:29 [patch 4/6] ide: allow ide_dev_read_id() to be called from the IRQ context Bartlomiej Zolnierkiewicz
2009-06-23 23:22 ` David Miller
2009-06-24  1:36   ` Bartlomiej Zolnierkiewicz
2009-06-24  4:35     ` David Miller
2009-06-24  9:51       ` Bartlomiej Zolnierkiewicz
2009-06-24  9:55         ` David Miller
2009-06-24 10:48           ` Bartlomiej Zolnierkiewicz
2009-06-24 11:04             ` Bartlomiej Zolnierkiewicz
2009-06-24 13:05               ` Bartlomiej Zolnierkiewicz [this message]
2009-06-24 19:30               ` Jeff Garzik
2009-06-24 19:55                 ` Bartlomiej Zolnierkiewicz
2009-07-01 16:35             ` Bartlomiej Zolnierkiewicz
2009-07-01 20:47               ` David Miller
2009-08-07 11:55                 ` Bartlomiej Zolnierkiewicz
2009-08-07 16:01                   ` David Miller
2009-08-07 17:27                     ` Bartlomiej Zolnierkiewicz
2009-08-07 17:36                       ` David Miller
2009-08-07 17:46                         ` Bartlomiej Zolnierkiewicz
2009-08-07 18:09                           ` David Miller
2009-08-07 18:35                             ` Bartlomiej Zolnierkiewicz

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=200906241505.52899.bzolnier@gmail.com \
    --to=bzolnier@gmail.com \
    --cc=davem@davemloft.net \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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 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).