From mboxrd@z Thu Jan 1 00:00:00 1970 From: Todd Poynor Date: Fri, 30 Apr 2004 19:59:40 +0000 Subject: Re: [PATCH] Hotplug for device power state changes Message-Id: <4092B02C.5090205@mvista.com> List-Id: References: <20040429202654.GA9971@dhcp193.mvista.com> <20040429224243.L16407@flint.arm.linux.org.uk> <40918375.2090806@mvista.com> <1083286226.20473.159.camel@gaston> <20040430093012.A30928@flint.arm.linux.org.uk> In-Reply-To: <20040430093012.A30928@flint.arm.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="macroman" Content-Transfer-Encoding: base64 To: Russell King Cc: Benjamin Herrenschmidt , Patrick Mochel , linux-hotplug-devel@lists.sourceforge.net, Linux Kernel list UnVzc2VsbCBLaW5nIHdyb3RlOgoKPiBBbmQgbm90IGJlaW5nIHN5bmNocm9ub3VzIG1lYW5zIHRo YXQgdGhlcmUncyBubyBwb2ludCBpbiBjYWxsaW5nCj4gdXNlcmxhbmQsIGJlY2F1c2UgdXNlcmxh bmQgd29uJ3QgcnVuIGJlZm9yZSB0aGUgbWFjaGluZSBoYXMKPiBzdXNwZW5kZWQsIHNvIHRoZXJl J3Mgbm8gcG9pbnQgaW4gY2FsbGluZyBpdCBpbiB0aGUgZmlyc3QgcGxhY2UuCj4gQWxzbyBjb25z aWRlciB0aGUgY2FzZSB3aGVyZSB5b3Ugc3VzcGVuZCwgYW5kIGFzeW5jaHJvbm91c2x5IHF1ZXVl Cj4gdXAgYWxsIHRoZXNlIHN1c3BlbmQgc2NyaXB0cyB0byBydW4uICBUaGVuIHlvdSByZXN1bWUg YW5kIHF1ZXVlIHVwCj4gdGhlIHJlc3VtZSBzY3JpcHRzIHRvIHJ1bi4gIFdoYXQgb3JkZXIgZG8g dGhlIHN1c3BlbmQgYW5kIHJlc3VtZQo+IHNjcmlwdHMgdWx0aW1hdGVseSBlbmQgdXAgYmVpbmcg cnVuPwouLi4KPiBNYXliZSB3ZSBzaG91bGQgaGF2ZSBhIHR3by1wYXNzIGFwcHJvYWNoLCB3aGVy ZSB0aGUgZmlyc3QgcGFzcwo+IHN5bmNocm9ub3VzbHkgdGVsbHMgdXNlcnNwYWNlIGFib3V0IHRo ZSBzdXNwZW5kLCBhbmQgdGhlIHNlY29uZAo+IHBhc3MgZG9lcyB0aGUgYWN0dWFsIHN1c3BlbmQu ICBUaGVuIGZvciByZXN1bWUgdGhlIG9wcG9zaXRlLgoKSSB3b3VsZCBhcmd1ZSB0aGF0IGEgc3lz dGVtIHN1c3BlbmQvcmVzdW1lIGV2ZW50IGRvZXMgbm90IG5lZWQgdG8gYWxzbyAKaW5mb3JtIG9m IHRoZSBpbmRpdmlkdWFsIGRldmljZSBzdXNwZW5kL3Jlc3VtZSBldmVudHMsIHNpbmNlIHRoZXNl IGNhbiAKYmUgaW1wbGllZC4gIEJ1dCBpZiB3ZSB3ZXJlIHRvIGluY2x1ZGUgaW5kaXZpZHVhbCBk ZXZpY2Ugc3VzcGVuZC9yZXN1bWUgCmhvdHBsdWcgZXZlbnRzIGFzIHBhcnQgb2Ygc3lzdGVtIHN1 c3BlbmQvcmVzdW1lIHRoZW4gSSB3b3VsZCBhZ3JlZSB3aXRoIAphIHR3by1waGFzZSBtb2RlbCwg c2luY2Ugbm90aWZpY2F0aW9uIGF0IHRoZSB0aW1lIG9mIGFjdHVhbCBoYXJkd2FyZSAKc3VzcGVu ZCBkb2VzIG5vdCB3b3JrIG9uY2Ugc29tZXRoaW5nIGNyaXRpY2FsIHRvIHVzZXJzcGFjZSBub3Rp ZmljYXRpb24gCmlzIHNodXRkb3duLgoKU28gSSdtIHBsYW5uaW5nIHRvIHJlc3VibWl0IHBhdGNo ZXMgd2l0aCB0aGUgZm9sbG93aW5nOgoKKiBJbmRpdmlkdWFsIGRldmljZSByZXN1bWUgZXZlbnRz IHNpZ25hbGxlZCBiZWZvcmUsIG5vdCBhZnRlciwgdGhlIApyZXN1bWUsIHNvIHRoYXQgdXNlcnNw YWNlIGNhbiByZWFjdCB0byBhbnkgbmV3IHJlcXVpcmVtZW50cyBiZWZvcmUgdGhlIApkZXZpY2Ug aXMgcGxhY2VkIGludG8gc2VydmljZS4KCiogSW5kaXZpZHVhbCBkZXZpY2Ugc3VzcGVuZCBhbmQg cmVzdW1lIGV2ZW50cyBjb252ZXJ0ZWQgdG8gc3luY2hyb25vdXMgCmV2ZW50cyAodGhhdCB3YWl0 IGZvciBob3RwbHVnIHByb2Nlc3NpbmcgdG8gY29tcGxldGUgYmVmb3JlIGNvbnRpbnVpbmcpLgoK KiBDaGFuZ2VzIHRvIGtvYmplY3QgdG8gYWxsb3cga29iamVjdCBob3RwbHVnIHRvIG9wdGlvbmFs bHkgYmUgCnN5bmNocm9ub3VzIGlmIGRlc2lyZWQuICBJJ2QgYXNzdW1lIHRoaXMgaXMgYSBuZXcg aG90cGx1Z19vcHMgZmllbGQuCgoqIFN5bmNocm9ub3VzIGhvdHBsdWcgZXZlbnRzIGZvciBzeXN0 ZW0gc3VzcGVuZCBhbmQgcmVzdW1lICh3aXRob3V0IAppbmRpdmlkdWFsIGRldmljZSBub3RpZmlj YXRpb25zKS4gIFRoZXNlIGV2ZW50cyBjYW4gcHJvYmFibHkgYmUgCmdlbmVyYXRlZCBieSB0aGUg a29iamVjdCBob3RwbHVnIG1ldGhvZHMgYnkgdGhlIGV4aXN0aW5nIHBvd2VyIHN1YnN5cyAKKG9u Y2UgdGhlIGFib3ZlIGVuaGFuY2VtZW50IGlzIGluIHBsYWNlKS4KCkFueSBjb21tZW50cyBvbiB0 aGlzIGNvdXJzZSBvZiBhY3Rpb24gd2VsY29tZWQuCgoKLS0gClRvZGQgUG95bm9yCk1vbnRhVmlz dGEgU29mdHdhcmUKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpUaGlzIFNGLk5ldCBlbWFpbCBpcyBzcG9uc29yZWQgYnk6IE9yYWNsZSAx MGcKR2V0IGNlcnRpZmllZCBvbiB0aGUgaG90dGVzdCB0aGluZyBldmVyIHRvIGhpdCB0aGUgbWFy a2V0Li4uIE9yYWNsZSAxMGcuIApUYWtlIGFuIE9yYWNsZSAxMGcgY2xhc3Mgbm93LCBhbmQgd2Un bGwgZ2l2ZSB5b3UgdGhlIGV4YW0gRlJFRS4gCmh0dHA6Ly9hZHMub3Nkbi5jb20vP2FkX2lkMTQ5 JmFsbG9jX2lkgTY2Jm9wPWNsaWNrCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkxpbnV4LWhvdHBsdWctZGV2ZWwgbWFpbGluZyBsaXN0ICBodHRwOi8vbGlu dXgtaG90cGx1Zy5zb3VyY2Vmb3JnZS5uZXQKTGludXgtaG90cGx1Zy1kZXZlbEBsaXN0cy5zb3Vy Y2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8v bGludXgtaG90cGx1Zy1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S265246AbUD3UAi (ORCPT ); Fri, 30 Apr 2004 16:00:38 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S265244AbUD3UAh (ORCPT ); Fri, 30 Apr 2004 16:00:37 -0400 Received: from gateway-1237.mvista.com ([12.44.186.158]:63472 "EHLO av.mvista.com") by vger.kernel.org with ESMTP id S265246AbUD3UAf (ORCPT ); Fri, 30 Apr 2004 16:00:35 -0400 Message-ID: <4092B02C.5090205@mvista.com> Date: Fri, 30 Apr 2004 12:59:40 -0700 From: Todd Poynor User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Russell King CC: Benjamin Herrenschmidt , Patrick Mochel , linux-hotplug-devel@lists.sourceforge.net, Linux Kernel list Subject: Re: [PATCH] Hotplug for device power state changes References: <20040429202654.GA9971@dhcp193.mvista.com> <20040429224243.L16407@flint.arm.linux.org.uk> <40918375.2090806@mvista.com> <1083286226.20473.159.camel@gaston> <20040430093012.A30928@flint.arm.linux.org.uk> In-Reply-To: <20040430093012.A30928@flint.arm.linux.org.uk> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Russell King wrote: > And not being synchronous means that there's no point in calling > userland, because userland won't run before the machine has > suspended, so there's no point in calling it in the first place. > Also consider the case where you suspend, and asynchronously queue > up all these suspend scripts to run. Then you resume and queue up > the resume scripts to run. What order do the suspend and resume > scripts ultimately end up being run? ... > Maybe we should have a two-pass approach, where the first pass > synchronously tells userspace about the suspend, and the second > pass does the actual suspend. Then for resume the opposite. I would argue that a system suspend/resume event does not need to also inform of the individual device suspend/resume events, since these can be implied. But if we were to include individual device suspend/resume hotplug events as part of system suspend/resume then I would agree with a two-phase model, since notification at the time of actual hardware suspend does not work once something critical to userspace notification is shutdown. So I'm planning to resubmit patches with the following: * Individual device resume events signalled before, not after, the resume, so that userspace can react to any new requirements before the device is placed into service. * Individual device suspend and resume events converted to synchronous events (that wait for hotplug processing to complete before continuing). * Changes to kobject to allow kobject hotplug to optionally be synchronous if desired. I'd assume this is a new hotplug_ops field. * Synchronous hotplug events for system suspend and resume (without individual device notifications). These events can probably be generated by the kobject hotplug methods by the existing power subsys (once the above enhancement is in place). Any comments on this course of action welcomed. -- Todd Poynor MontaVista Software