On Tue, 12 Nov 2013 19:01:49 +0400 Andrey Borzenkov <arvidj...@gmail.com> wrote:
> В Tue, 12 Nov 2013 21:17:19 +1100 > NeilBrown <ne...@suse.de> пишет: > > > On Tue, 12 Nov 2013 18:16:24 +0900 Greg KH <gre...@linuxfoundation.org> > > wrote: > > > > > On Tue, Nov 12, 2013 at 07:54:42PM +1100, NeilBrown wrote: > > > > On Tue, 12 Nov 2013 00:10:28 -0800 Greg KH <gre...@linuxfoundation.org> > > > > wrote: > > > > > > > > > On Tue, Nov 12, 2013 at 11:31:45AM +1100, NeilBrown wrote: > > > > > > Alternately, is there some "all devices have been probed, nothing > > > > > > new will > > > > > > appear unless it is hot-plugged" event. That would be equally > > > > > > useful (and > > > > > > probably mirrors what hardware-RAID cards do). > > > > > > > > > > No, there's no way to ever know this in a hotplug world, sorry. > > > > > Especially with USB devices, they show up when they show up, there's > > > > > no > > > > > "oh look, the bus is all scanned now and all devices currently plugged > > > > > in are found" type knowledge at all. > > > > > > > > > > Then there are hotplug PCI systems where people slam in PCI cards > > > > > whenever they feel like it (remember, thunderbolt is PCI express...) > > > > > > > > > > Sorry, > > > > > > > > > > greg k-h > > > > > > > > Surely something must be possible. > > > > > > For USB, nope, there isn't, sorry. > > > > > > > Clearly a physical hot-plug event will cause more devices to appear, but > > > > there must come a point at which no more (non-virtual) devices will > > > > appear > > > > unless a physical event happens? > > > > > > Not for USB, sorry. > > > > > > The USB bus just announces devices when it finds them, there is no "all > > > is quiet" type signal or detection. > > > > > > Same for PCI hotplug, devices can show up at any point in time, you > > > never know when, and you don't know when all devices are "found". > > > > > > sorry, > > > > > > greg k-h > > > > > > Hmmm... OK. USB doesn't bother me a lot, but PCI is important. > > > > I guess I'll just have to settle for a timeout much like the current > > device-discovery timeout that systemd has. > > Still hoping someone can tell me how to plug into that though... > > > > If information about array name or other identification is available in > udev rule (I see reference to device node only) what you can do is to > start timer with "now+5second" (pick your timeout) that simply fires off > mdadm -IRs for specific array. Something like > > mdadm-last-resort@.timer > > [Timer] > OnCalendar=+5s > > mdadm-last-resort@.service > > [Service] > Type=oneshot > ExecStart=/sbin/mdadm -IRs %n > > udev rule > > ... SYSTEMD_WANTS=mdadm-last-resort@$ENV{SOMETHING_UNIQUE}.timer > Thanks. This certainly looks interesting and might be part of a solution. However it gets the timeout test backwards. I don't want to set the timeout when the array starts to appear. I want to set the time out when someone wants to use the array. If no-one is waiting for the array device, then there is no point forcing it. That's why I want to plug into the timeout that systemd already has. Maybe that requirement isn't really necessary though. I'll experiment with your approach. Thanks, NeilBrown
signature.asc
Description: PGP signature
_______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel