Re: A udev rule to serve the change event of ACPI container?

From: Michal Hocko
Date: Thu Aug 03 2017 - 07:25:34 EST


On Thu 03-08-17 17:52:57, Joey Lee wrote:
> On Thu, Aug 03, 2017 at 11:31:53AM +0200, Michal Hocko wrote:
> > On Thu 03-08-17 17:22:37, Joey Lee wrote:
> > > On Wed, Aug 02, 2017 at 11:01:43AM +0200, Michal Hocko wrote:
> > > > On Mon 31-07-17 15:38:45, Joey Lee wrote:
> > [...]
> > > > > So, the behavior is:
> > > > >
> > > > > Kernel received ejection event, set _Eject_ flag on container object
> > > > > -> Kernel sends offline events to all children devices
> > > > > -> User space performs cleaning jobs and offlines each child device
> > > > > -> Kernel detects all children offlined
> > > > > -> Kernel removes objects and calls power off(_EJ0)
> > > >
> > > > Yes this is what I've had in mind. It is the "kernel detects..." part
> > > > which is not implemented now and that requires us to do the explicit
> > > > eject from userspace, correct?
> > > >
> > >
> > > Yes, the _Eject_ flag and _detects_ part are not implemented now.
> > >
> > > In this approach, kernel still relies on user space to trigger the
> > > offline. The ejection process is still not transparent to user space.
> > > Is it what you want?
> >
> > But as long as there is no auto-offlining then there is no other choice
> > no? Besides that userspace even shouldn't care about the fact that the
>
> If Yasuaki's problem is already fixed in mainline, then the auto-offlining
> will be possible.

Kernel alone cannot do the memory offline in general. There might be
resources which need an explicit userspace action. But that is not
important. The eject process should be pretty much independent on who is
doing the offline. The only thing that matters is that the kernel ejects
_after_ all resources are offline. This is the case already so the only
case we need to settle down is how is the offline done on a container
which has multiple resources. I still maintain my opinion that all
associated resources should be notified for offline from the kernel
rather than relying on userspace do somehow find those resources and
offline them manually.
--
Michal Hocko
SUSE Labs