public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rob Turk" <r.turk@chello.nl>
To: linux-kernel@vger.kernel.org
Subject: Re: [RFC] New Driver Model for 2.5
Date: Thu, 25 Oct 2001 10:27:11 +0200	[thread overview]
Message-ID: <9r8icv$ukh$1@ncc1701.cistron.net> (raw)
In-Reply-To: <20011024130408.23754@smtp.adsl.oleane.com> <Pine.LNX.4.33.0110240901350.8049-100000@penguin.transmeta.com>

"Linus Torvalds" <torvalds@transmeta.com> wrote in message
news:cistron.Pine.LNX.4.33.0110240901350.8049-100000@penguin.transmeta.com..
.
>
> On Wed, 24 Oct 2001, Benjamin Herrenschmidt wrote:
> > >
> > >So the scsi devices hang off sd, sr etc which in turn hang off scsi and
> > >the controllers hang off scsi (and or the bus layers)
> > >
> > >This one at least I think I do understand
> >
> > The problem with subsystems is that they don't fit well in the
> > power tree. They aren't "devices" in that sense that they are
> > not exposing a struct device, and they spawn over several controllers
> > which means the dependency can quickly become unmanageable, especially
> > when SCSI starts beeing layered on top of USB or FireWire.
>
> Why would you _ever_ get "sg.c" and other crap involved in the suspend
> process?
>
> The device tree is for _device_ suspend, not for "subsystem suspend". The
> SCSI subsystem is a piece of cr*p, but even if it was perfect it should
> never get involved with the act of suspension.
>
> We should not have pending IO, but that's for a totally different reason:
> the first thing the much much MUCH higher levels of suspend should be
> doing is to make sure that user apps are "quiescent". And that isn't done
> by getting involved with sg.c or anything similar, but by basically
> stopping all user apps (think of the equivalent of a "kill -STOP -1", but
> done internally in the kernel without actually using a signal).
>
> > Also, the dependency issue is made worst if you let RAID enter into
> > the dance as I beleive ultimately, nothing would prevent a volume to
> > spawn over several devices from different controllers or even different
> > controller types.
>
> Why would you get RAID involved? There is no _IO_ involved in suspending:
> we just stop doing what we're doing, and leave it at that. We don't try to
> flush state, we just freeze the machine.
>
> The act of "suspend" should basically be: shut off the SCSI controller,
> screw all devices, reset the bus on resume.
>

Doing so will create havoc on sequential devices, such as tape drives. If
your system simply suspends, then all is well. Any data that isn't flushed
yet is buffered inside the tapedrive. But when the system resumes and resets
the SCSI bus, it will cause all data in the tape drive to be lost, and for
most tape systems it will also re-position them at LBOT. Any running
tar/dump/whatever tape process would not survive such a suspend-resume
cycle.

Another more subtle issue is state information that exists between the SCSI
controller and the target devices. At some point they might have negotiated
synchronous and/or wide transfer parameters. This information must be
preserved, or you'll observe lockups, data corruption and the likes. Since
these parameters are maintained at the lowest driver level, they should know
about suspend. The low-level driver must know to re-negotiate these
parameters when it comes back to life.

Rob






  parent reply	other threads:[~2001-10-25  8:27 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-19 23:33 [RFC] New Driver Model for 2.5 Benjamin Herrenschmidt
2001-10-20  0:09 ` Linus Torvalds
2001-10-20  9:28   ` Benjamin Herrenschmidt
2001-10-21 17:09     ` Pavel Machek
2001-10-23  0:19       ` Patrick Mochel
2001-10-23  0:31         ` Alan Cox
2001-10-23  0:29           ` Patrick Mochel
2001-10-23  7:53             ` Alan Cox
2001-10-23 15:10               ` Jonathan Lundell
2001-10-23 15:49                 ` Alan Cox
2001-10-23 20:22                 ` Benjamin Herrenschmidt
2001-10-23 20:54                   ` Alan Cox
2001-10-24  0:26                     ` Benjamin Herrenschmidt
2001-10-24  9:57                       ` Alan Cox
2001-10-24 10:34                         ` Benjamin Herrenschmidt
2001-10-24 10:54                           ` Alan Cox
2001-10-24 13:04                             ` Benjamin Herrenschmidt
2001-10-24 13:25                               ` Alan Cox
2001-10-24 16:19                                 ` Linus Torvalds
2001-10-24 16:36                                   ` Michael H. Warfield
2001-10-24 16:45                                     ` Linus Torvalds
2001-10-24 22:48                                   ` Alan Cox
2001-10-24 16:15                               ` Linus Torvalds
2001-10-24 16:46                                 ` Xavier Bestel
2001-10-24 16:54                                   ` Patrick Mochel
2001-10-24 16:55                                   ` Linus Torvalds
2001-10-24 22:45                                     ` Alan Cox
2001-10-24 17:33                                 ` Benjamin Herrenschmidt
2001-10-24 22:41                                   ` Alan Cox
2001-10-24 22:41                                     ` Linus Torvalds
2001-10-25  7:58                                     ` Benjamin Herrenschmidt
2001-10-25 12:22                                       ` Alan Cox
2001-10-25 14:57                                         ` Benjamin Herrenschmidt
2001-10-25  8:03                                     ` Benjamin Herrenschmidt
2001-10-25  8:09                                       ` Benjamin Herrenschmidt
2001-10-25 12:20                                       ` Alan Cox
2001-10-25 21:47                                   ` Pavel Machek
2001-10-24 22:50                                 ` Alan Cox
2001-10-25  4:14                                   ` Linus Torvalds
2001-10-25 12:42                                     ` Alan Cox
2001-10-25 21:52                                       ` Xavier Bestel
2001-10-25 23:53                                         ` Benjamin Herrenschmidt
2001-10-25 23:53                                           ` Alan Cox
2001-10-26 11:35                                       ` Helge Hafting
2001-10-26 12:38                                         ` Alan Cox
2001-10-25  8:27                                 ` Rob Turk [this message]
2001-10-25 10:01                                   ` Benjamin Herrenschmidt
2001-10-25 10:02                                   ` Helge Hafting
2001-10-25 14:20                                   ` Victor Yodaiken
2001-10-25 14:44                                     ` Jeff Garzik
2001-10-25 14:45                                     ` Jeff Garzik
2001-10-25 15:22                                     ` Rob Turk
2001-10-25 15:44                                       ` Jonathan Lundell
2001-10-25 16:26                                     ` David Lang
2001-10-25 21:59                                   ` Pavel Machek
2001-10-25 21:32                                     ` Rob Turk
2001-10-24 17:01                               ` Mike Anderson
2001-10-25  9:02                               ` Eric W. Biederman
2001-10-25  9:29                                 ` Linus Torvalds
2001-10-25  9:47                                   ` Benjamin Herrenschmidt
2001-10-25 10:11                                   ` Eric W. Biederman
2001-10-25 10:59                                     ` Linus Torvalds
2001-10-24 15:18                         ` Jonathan Lundell
2001-10-24 15:41                         ` Linus Torvalds
2001-10-24 15:59                           ` Alan Cox
2001-10-24 15:56                             ` Linus Torvalds
2001-10-23  9:44             ` Pavel Machek
2001-10-23 11:03               ` Benjamin Herrenschmidt
2001-10-23 11:49                 ` Benjamin Herrenschmidt
2001-10-23 10:54           ` Benjamin Herrenschmidt
  -- strict thread matches above, loose matches on Subject: below --
2001-10-24 17:56 Grover, Andrew
2001-10-24 18:45 ` Benjamin Herrenschmidt
2001-10-19 21:43 Grover, Andrew
2001-10-19 17:01 Kevin Easton
2001-10-19 18:40 ` Patrick Mochel
2001-10-17 23:52 Patrick Mochel
2001-10-18  6:23 ` Jeff Garzik
2001-10-18 12:13   ` Benjamin Herrenschmidt
2001-10-18 16:19     ` Patrick Mochel
2001-10-18 17:38       ` Tim Jansen
2001-10-18 22:06       ` Benjamin Herrenschmidt
2001-10-19 17:09         ` Kai Henningsen
2001-10-18 22:10       ` Kai Henningsen
2001-10-19 18:26         ` Patrick Mochel
2001-10-19 19:02           ` Tim Jansen
2001-10-19 19:21             ` Mike Fedyk
2001-10-19 20:07               ` Tim Jansen
2001-10-19 20:24                 ` Mike Fedyk
2001-10-19 22:25                   ` Tim Jansen
2001-10-20 13:47                   ` Kai Henningsen
2001-10-20  1:41               ` john slee
2001-10-20 13:52               ` Kai Henningsen
2001-10-22 11:02                 ` Padraig Brady
2001-10-27 11:01                   ` Kai Henningsen
2001-10-19  7:57     ` Henning P. Schmiedehausen
2001-10-19  8:09       ` Jeff Garzik
2001-10-19  8:31         ` Keith Owens
2001-10-19  8:43           ` Jeff Garzik
2001-10-19 18:50       ` Tim Jansen
2001-10-19 15:21     ` Taral
2001-10-19 23:30     ` Benjamin Herrenschmidt
2001-10-19 23:54       ` Benjamin Herrenschmidt
2001-10-18 15:17   ` Patrick Mochel
2001-10-18 16:08 ` Taral
2001-10-18 16:52   ` Jonathan Lundell
2001-10-18 17:38     ` Patrick Mochel
2001-10-18 17:41       ` Patrick Mochel
2001-10-18 18:28       ` Jonathan Lundell
2001-10-18 19:49         ` Patrick Mochel
2001-10-18 20:40           ` Jeff Garzik
2001-10-18 21:32           ` John Alvord
2001-10-18 22:23             ` Benjamin Herrenschmidt
2001-10-18 22:26             ` Jeff Garzik
2001-10-18 22:18           ` Benjamin Herrenschmidt
2001-10-18 23:30             ` Patrick Mochel
2001-10-18 23:44               ` Benjamin Herrenschmidt
2001-10-18 23:52                 ` Jeff Garzik
     [not found]         ` <3BCF3941.D4B79FE1@mandrakesoft.com>
2001-10-19 17:12           ` Jonathan Lundell
2001-10-18 17:05 ` Jonathan Corbet
2001-10-18 17:33   ` Patrick Mochel

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='9r8icv$ukh$1@ncc1701.cistron.net' \
    --to=r.turk@chello.nl \
    --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