Discussion:
[linux-usb-devel] [FEATURE REQUEST] Transparent hot plugging of root file system on portable storage devices.
Raymano Garibaldi
2007-11-26 19:04:47 UTC
Permalink
Hi,

I would like to request a feature in the Linux kernel that would allow
a user to unplug a live read-only root file system which exists on a
detachable storage device such as a USB key drive. The desired
behavior is that once the same device is reattached to the computer
the user can continue work transparently without having to reboot.

Having such a feature is becoming more important with advances in
detachable solid state drive technology.

Having the root FS on a wireless storage device such as D.A.V.E.
(http://www.seagate.com/www/en-us/products/consumer_electronics/DAVE)
would require such a feature in the kernel in case the wireless
connection between the storage device and the computer is temporarily
lost. The user should have the ability to continue work transparently
once the wireless connection is reestablished.

Thank you,
Raymano G.
Pavel Machek
2008-01-01 20:29:45 UTC
Permalink
Hi1
Post by Raymano Garibaldi
I would like to request a feature in the Linux kernel that would allow
a user to unplug a live read-only root file system which exists on a
detachable storage device such as a USB key drive. The desired
behavior is that once the same device is reattached to the computer
the user can continue work transparently without having to reboot.
Having such a feature is becoming more important with advances in
detachable solid state drive technology.
Yep, that would be nice.... In fact, patch would be very welcome :-).
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Oliver Neukum
2008-01-02 10:19:21 UTC
Permalink
Post by Pavel Machek
Hi1
Post by Raymano Garibaldi
I would like to request a feature in the Linux kernel that would allow
a user to unplug a live read-only root file system which exists on a
detachable storage device such as a USB key drive. The desired
behavior is that once the same device is reattached to the computer
the user can continue work transparently without having to reboot.
Having such a feature is becoming more important with advances in
detachable solid state drive technology.
Yep, that would be nice.... In fact, patch would be very welcome :-).
Use the USB persist feature and hibernate. It should work. If you modify
the fs in any way, you'll crash and burn. Unmounting / is harder which you
need if you want to do this safely.

Regards
Oliver


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2008-01-02 20:23:30 UTC
Permalink
Post by Oliver Neukum
Post by Pavel Machek
Hi1
Post by Raymano Garibaldi
I would like to request a feature in the Linux kernel that would allow
a user to unplug a live read-only root file system which exists on a
detachable storage device such as a USB key drive. The desired
behavior is that once the same device is reattached to the computer
the user can continue work transparently without having to reboot.
Having such a feature is becoming more important with advances in
detachable solid state drive technology.
Yep, that would be nice.... In fact, patch would be very welcome :-).
Use the USB persist feature and hibernate. It should work. If you modify
the fs in any way, you'll crash and burn. Unmounting / is harder which you
need if you want to do this safely.
What about people who prefer (for reasons of restart latency or
non-availability of swap space) to suspend rather than hibernate?

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Pavel Machek
2008-01-05 21:52:09 UTC
Permalink
Post by Alan Stern
Post by Oliver Neukum
Post by Pavel Machek
Hi1
Post by Raymano Garibaldi
I would like to request a feature in the Linux kernel that would allow
a user to unplug a live read-only root file system which exists on a
detachable storage device such as a USB key drive. The desired
behavior is that once the same device is reattached to the computer
the user can continue work transparently without having to reboot.
Having such a feature is becoming more important with advances in
detachable solid state drive technology.
Yep, that would be nice.... In fact, patch would be very welcome :-).
Use the USB persist feature and hibernate. It should work. If you modify
the fs in any way, you'll crash and burn. Unmounting / is harder which you
need if you want to do this safely.
What about people who prefer (for reasons of restart latency or
non-availability of swap space) to suspend rather than hibernate?
For suspend to RAM, we can keep the power session, and be _sure_ noone
unplugged our USB disks, right? So that one should work nicely.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2008-01-06 17:18:35 UTC
Permalink
Post by Pavel Machek
Post by Alan Stern
Post by Oliver Neukum
Post by Pavel Machek
Hi1
Post by Raymano Garibaldi
I would like to request a feature in the Linux kernel that would allow
a user to unplug a live read-only root file system which exists on a
detachable storage device such as a USB key drive. The desired
behavior is that once the same device is reattached to the computer
the user can continue work transparently without having to reboot.
Having such a feature is becoming more important with advances in
detachable solid state drive technology.
Yep, that would be nice.... In fact, patch would be very welcome :-).
Use the USB persist feature and hibernate. It should work. If you modify
the fs in any way, you'll crash and burn. Unmounting / is harder which you
need if you want to do this safely.
What about people who prefer (for reasons of restart latency or
non-availability of swap space) to suspend rather than hibernate?
For suspend to RAM, we can keep the power session, and be _sure_ noone
unplugged our USB disks, right? So that one should work nicely.
No, no. You didn't understand the question.

What about people who want to suspend to RAM instead of hibernating and
_do_ want to unplug the USB device containing their root filesystem
while the machine is asleep? In this case we will _know_ that the
power session has been interrupted, but USB Persist won't activate
because the host controller never lost power.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Oliver Neukum
2008-01-06 20:59:45 UTC
Permalink
What about people who want to suspend to RAM instead of hibernating a=
nd
_do_ want to unplug the USB device containing their root filesystem
while the machine is asleep? =A0In this case we will _know_ that the
power session has been interrupted, but USB Persist won't activate
because the host controller never lost power.
Would it be hard to force the persist feature on for a replugged device=
?

Regards
Oliver

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel"=
in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Alan Stern
2008-01-06 22:26:17 UTC
Permalink
Post by Alan Stern
What about people who want to suspend to RAM instead of hibernating and
_do_ want to unplug the USB device containing their root filesystem
while the machine is asleep?  In this case we will _know_ that the
power session has been interrupted, but USB Persist won't activate
because the host controller never lost power.
Would it be hard to force the persist feature on for a replugged device?
Right now the persist feature is enabled by a per-device boolean flag.
In theory the flag could accept 3 values: off, on if power was lost,
or on for any resume transition. This would not be a hard change.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Pavel Machek
2008-01-06 22:44:29 UTC
Permalink
Post by Alan Stern
Post by Alan Stern
What about people who want to suspend to RAM instead of hibernating and
_do_ want to unplug the USB device containing their root filesystem
while the machine is asleep?
Ok, I guess I'm lost here. That sounds like a nice way to do
self-leg-shooting. Are there such people?
Post by Alan Stern
Post by Alan Stern
 In this case we will _know_ that the
power session has been interrupted, but USB Persist won't activate
because the host controller never lost power.
Would it be hard to force the persist feature on for a replugged device?
Right now the persist feature is enabled by a per-device boolean flag.
In theory the flag could accept 3 values: off, on if power was lost,
or on for any resume transition. This would not be a hard change.
But do we need it?

Did you progress on "usb-storage-autosuspend"?

Here are my hacks to try to get SATA to survive autosuspend;
unfortunately they do not work :-(.
Pavel



diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 54f38c2..21e6709 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1808,8 +1808,22 @@ static void ahci_thaw(struct ata_port *a
writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
}

+struct pci_dev *my_pdev;
+
static void ahci_error_handler(struct ata_port *ap)
{
+ struct ata_host *host = ap->host;
+ int rc;
+ extern int slept;
+
+ if (slept) {
+ printk("ahci_error_handler: Resuming...\n");
+ rc =ahci_pci_device_resume(my_pdev);
+ printk("ahci: bad %d\n", rc);
+
+ printk("ahci_error_handler: Device resumed?\n");
+ }
+
if (!(ap->pflags & ATA_PFLAG_FROZEN)) {
/* restart engine */
ahci_stop_engine(ap);
@@ -1945,7 +1959,7 @@ static int ahci_pci_device_resume(struct
if (rc)
return rc;

- if (pdev->dev.power.power_state.event == PM_EVENT_SUSPEND) {
+ if (1) {
rc = ahci_reset_controller(host);
if (rc)
return rc;
@@ -2179,6 +2193,7 @@ static void ahci_p5wdh_workaround(struct
}
}

+
static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
{
static int printed_version;
@@ -2190,6 +2205,7 @@ static int ahci_init_one(struct pci_dev
int i, rc;

VPRINTK("ENTER\n");
+ my_pdev = pdev;

WARN_ON(ATA_MAX_QUEUE > AHCI_MAX_CMDS);

@@ -2283,8 +2299,11 @@ static int ahci_init_one(struct pci_dev
ahci_print_info(host);

pci_set_master(pdev);
- return ata_host_activate(host, pdev->irq, ahci_interrupt, IRQF_SHARED,
+
+ rc = ata_host_activate(host, pdev->irq, ahci_interrupt, IRQF_SHARED,
&ahci_sht);
+ pci_save_state(pdev);
+ return rc;
}

static int __init ahci_init(void)
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2008-01-07 15:39:13 UTC
Permalink
Post by Pavel Machek
Post by Alan Stern
Post by Alan Stern
What about people who want to suspend to RAM instead of hibernating and
_do_ want to unplug the USB device containing their root filesystem
while the machine is asleep?
Ok, I guess I'm lost here. That sounds like a nice way to do
self-leg-shooting. Are there such people?
Yes. People with small systems having extremely limited rw storage (no
swap space), using removable read-only media as their root fs.

You can find the thread leading up to this request here:

http://marc.info/?t=119544588400002&r=1&w=2
Post by Pavel Machek
Post by Alan Stern
Would it be hard to force the persist feature on for a replugged device?
Right now the persist feature is enabled by a per-device boolean flag.
In theory the flag could accept 3 values: off, on if power was lost,
or on for any resume transition. This would not be a hard change.
But do we need it?
That depends on whom you ask! :-)
Post by Pavel Machek
Did you progress on "usb-storage-autosuspend"?
Yes; the first round of patches will be posted later today.
Post by Pavel Machek
Here are my hacks to try to get SATA to survive autosuspend;
unfortunately they do not work :-(.
You should start off with minimal support for manual runtime suspend
(through a sysfs attribute). When that's working, autosuspend will be
easier to add in.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Loading...