lkml.org 
[lkml]   [2008]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: ata_ram driver
From
Date
On Thu, 2008-03-06 at 21:16 -0500, Jeff Garzik wrote:
> Tejun Heo wrote:
> > James Bottomley wrote:
> >>> Yeap, sure. It's the combination of things that always made me put this
> >>> off. Is there a function I can call to just shutdown the host instead
> >>> of destroying it?
> >> Not really ... the process of unbinding the ULDs causes their remove
> >> methods to call shudown. It is possible to separate this in the ULDS;
> >> but the original design was to make remove and shutdown be similar for
> >> the very reason that if you're removing the driver with unflushed data
> >> in the cache, we'd really like it flushed (flush is called from
> >> shutdown) because you have no way to talk to the device after this
> >> without reinserting the driver.
> >
> > The problem is that libata EH and other stuff aren't ready to let go of
> > the SCSI host up until the last moment and that last moment can't be
> > moved before SCSI host destruction because shutdown sequence (flush and
> > spindown) requires live EH. I think this can be solved by shooting down
> > individual sdev's instead of destroying the scsi_host.
>
> I'm curious how the picture would change, if we used a scsi_host for
> each ata_host.

It would probably make the whole paradigm a lot easier. Currently, if
you look at the transport classes that do this type of thing, they
shadow host and add port and other components as extra bits. libata
does a rather strange thing trying to have one SCSI host per SATA port,
so scsi_host and ata_host don't match up. Then on destruction you can
just follow the standard SCSI teardown path.

James




\
 
 \ /
  Last update: 2008-03-07 03:47    [W:3.448 / U:0.104 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site