Re: [RFC PATCH v5 2/2] Use kernfs_break_active_protection() for device online store callbacks

From: Tejun Heo
Date: Wed Apr 23 2014 - 12:53:05 EST


Hello, Rafael.

On Wed, Apr 23, 2014 at 06:12:01PM +0200, Rafael J. Wysocki wrote:
> >Why add this additional global lock across multiple subsystems?
>
> That basically is because of how eject works when it is triggered via ACPI.
>
> It is signaled for a device at the top of a subtree. It may be a
> container of some sort and the eject involves everything below that
> device in the ACPI namespace. That may involve multiple subsystem
> (CPUs, memory, PCI host bridge, etc.).
>
> We do that in two steps, offline (which can fail) and eject proper
> (which can't fail and makes all of the involved devices go away).
> All that has to be done in one go with respect to the
> sysfs-triggered offline/online and that's why the lock is there.

Ah, okay, so it's actually synchronzing across multiple subsystems. I
think it definitely calls for more documentation. The requirement is
pretty unusual after all.

Thanks!

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/