[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.1207191100520.1764-100000@iolanthe.rowland.org>
Date: Thu, 19 Jul 2012 11:11:50 -0400 (EDT)
From: Alan Stern <stern@...land.harvard.edu>
To: Andreas Mohr <andi@...as.de>
cc: linux-kernel@...r.kernel.org, <linux-usb@...r.kernel.org>
Subject: Re: USB enumeration post-resume NOT persistent yet "persist" -->
swapped devices nodes --> root partition reference broken
On Thu, 19 Jul 2012, Andreas Mohr wrote:
> Hi,
>
> Yesterday I was surprised to see that with *another* external USB disk
> happening to be connected before boot,
> the system booted with root partition device sdb1 assigned rather than sda1.
> Not thinking much, I then proceeded putting the system into suspend,
Do you mean "suspend" or "hibernate"?
> only to be even more surprised to then end up with swapped device nodes
> post-resume and the system killed
> (I *know* that device nodes ended up jumbled since the root device contains
> "root" plus "swap" partition device node, whereas the "other" USB device
> contains one partition only,
> and the set of partition device nodes as still successfully looked up via
> ls -l /dev/sd*
> ended up exactly reversed after system resume).
That shouldn't happen in any case, but it seems more likely to happen
after hibernation than after suspend.
> I attempted to get dmesg off this system, however not even plain sector writing
> of my /tmp/dmesg.log to a new USB device worked since "dd" segfaulted.
> Also, no network access of course.
Can you reproduce the problem?
> http://lists.linux-foundation.org/pipermail/linux-pm/2009-November/023101.html
> talks about this case, and mentions Documentation/usb/persist.txt
> as the most authoritative document.
>
> The thing is, /sys persist nodes *are* all set to 1 for any affected
> device (at least as observed after the subsequent fresh boot).
>
> The plausibility of the previous killed boot having had "persist"
> attribute set as well for all devices is VERY high
> (there were no changes/updates in system software configuration done,
> thus settings should have been identical).
>
> Thus I'm highly puzzled as to why with USB persistence *activated*
> it still decided to jumble device nodes on this system resume.
> Content of the pathological dmesg log didn't contain any mentioning
> of any "persistence" mechanism activity, BTW, AFAIR.
>
> Device identification *is* as unique as it gets:
>
> # lsusb
> Bus 001 Device 005: ID 174c:55aa ASMedia Technology Inc.
> Bus 001 Device 002: ID 152d:0601 JMicron Technology Corp. / JMicron USA Technology Corp.
> Bus 001 Device 004: ID 064e:d101 Suyin Corp. Acer CrystalEye Webcam
> Bus 003 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
...
> Netbook Acer Aspire One A110L.
> Running 3.5.0-rc7+ here (yes ma'am, bleeding edge tester :).
> Was the first time to attempt resume with an additional device remaining
> connected, IIRC - that -rc7 thing likely doesn't play much of a role here.
> A bit hesitant to (dis-)prove the bug's "regression flag" with another version
> since random possibly succeeding I/O accesses to incompatible devices
> are not necessarily my thing (or is this safe to attempt again? Any more
> specific session info one would need?).
Well, the dmesg log would help. If you still think the USB layer is at
fault then you should enable CONFIG_USB_DEBUG.
> So, again, possibly USB persistence is bug-broken?
You don't have any good evidence to suggest that. None of the
information you provided indicates that any USB device nodes (such as
/dev/bus/usb/001/002) got mixed up. All you know is that the
block-layer device nodes (such as /dev/sda2) got changed.
Furthermore, if USB persist were broken then the symptoms would be
different. Instead of starting with a root partition at sdb1 and then
finding it at sda1, you would have found it gone completely and there
would be _new_ devices labelled sdc and sdd.
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists