From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755357AbeE2Hr5 (ORCPT ); Tue, 29 May 2018 03:47:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:41974 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755179AbeE2Hru (ORCPT ); Tue, 29 May 2018 03:47:50 -0400 Date: Tue, 29 May 2018 09:47:30 +0200 From: Greg KH To: martin_liu Cc: stern@rowland.harvard.edu, heikki.krogerus@linux.intel.com, johan@kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, jenhaochen@google.com Subject: Re: [RFC PATCH v2] driver core: hold dev's parent lock when needed Message-ID: <20180529074730.GA23486@kroah.com> References: <20180529070719.164626-1-liumartin@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180529070719.164626-1-liumartin@google.com> User-Agent: Mutt/1.10.0 (2018-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 29, 2018 at 03:07:20PM +0800, martin_liu wrote: > SOC have internal I/O buses that can't be proved for devices. The > devices on the buses can be accessed directly without additinal > configuration required. This type of bus is represented as > "simple-bus". In some platforms, we name "soc" with "simple-bus" > attribute and many devices are hooked under it desribed in DT > (device tree). > > In commit 'bf74ad5bc417 introduce ("[PATCH] Hold the device's > parent's lock during probe and remove")' to solve USB subsystem > lock sequence since usb device's characteristic. Thus "soc" > needs to be locked whenever a device and driver's probing > happen under "soc" bus. During this period, an async driver > tries to probe a device which is under the "soc" bus would be > blocked until previous driver finish the probing and release "soc" > lock. And the next probing under the "soc" bus need to wait for > async finish. Because of that, driver's async probe for init > time improvement will be shadowed. > > Since many devices don't have USB devices' characteristic, they > actually don't need parent's lock. Thus, we introduce a lock flag > in device struct and driver core would lock the parent lock base > on the flag. For usbsystem, we set this flag when its device and > driver is matched and to keep original lock behavior in driver > core. > > Async probe could have more benefit after this patch. > > Signed-off-by: martin_liu Nit, your name here is probably not what you sign legal documents with. Please use your "real name" in this line, and in your From: email line (hint, no '_'). This prevents me from accepting the patch at all. > Suggested-by: Alan Stern Changes were suggested, I don't know if the whole idea was :) > --- a/include/linux/device.h > +++ b/include/linux/device.h > @@ -992,6 +992,7 @@ struct device { > bool offline_disabled:1; > bool offline:1; > bool of_node_reused:1; > + bool need_parent_lock:1; Shouldn't this be a bus type flag, and not a device-specific flag? You are only ever caring about this based on the type of bus the device is on, the rule would not be different for different devices on the same bus from what I can tell. thanks, greg k-h From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [RFC,v2] driver core: hold dev's parent lock when needed From: Greg Kroah-Hartman Message-Id: <20180529074730.GA23486@kroah.com> Date: Tue, 29 May 2018 09:47:30 +0200 To: martin_liu Cc: stern@rowland.harvard.edu, heikki.krogerus@linux.intel.com, johan@kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, jenhaochen@google.com List-ID: T24gVHVlLCBNYXkgMjksIDIwMTggYXQgMDM6MDc6MjBQTSArMDgwMCwgbWFydGluX2xpdSB3cm90 ZToKPiBTT0MgaGF2ZSBpbnRlcm5hbCBJL08gYnVzZXMgdGhhdCBjYW4ndCBiZSBwcm92ZWQgZm9y IGRldmljZXMuIFRoZQo+IGRldmljZXMgb24gdGhlIGJ1c2VzIGNhbiBiZSBhY2Nlc3NlZCBkaXJl Y3RseSB3aXRob3V0IGFkZGl0aW5hbAo+IGNvbmZpZ3VyYXRpb24gcmVxdWlyZWQuIFRoaXMgdHlw ZSBvZiBidXMgaXMgcmVwcmVzZW50ZWQgYXMKPiAic2ltcGxlLWJ1cyIuIEluIHNvbWUgcGxhdGZv cm1zLCB3ZSBuYW1lICJzb2MiIHdpdGggInNpbXBsZS1idXMiCj4gYXR0cmlidXRlIGFuZCBtYW55 IGRldmljZXMgYXJlIGhvb2tlZCB1bmRlciBpdCBkZXNyaWJlZCBpbiBEVAo+IChkZXZpY2UgdHJl ZSkuCj4gCj4gSW4gY29tbWl0ICdiZjc0YWQ1YmM0MTcgaW50cm9kdWNlICgiW1BBVENIXSBIb2xk IHRoZSBkZXZpY2Uncwo+IHBhcmVudCdzIGxvY2sgZHVyaW5nIHByb2JlIGFuZCByZW1vdmUiKScg dG8gc29sdmUgVVNCIHN1YnN5c3RlbQo+IGxvY2sgc2VxdWVuY2Ugc2luY2UgdXNiIGRldmljZSdz IGNoYXJhY3RlcmlzdGljLiBUaHVzICJzb2MiCj4gbmVlZHMgdG8gYmUgbG9ja2VkIHdoZW5ldmVy IGEgZGV2aWNlIGFuZCBkcml2ZXIncyBwcm9iaW5nCj4gaGFwcGVuIHVuZGVyICJzb2MiIGJ1cy4g RHVyaW5nIHRoaXMgcGVyaW9kLCBhbiBhc3luYyBkcml2ZXIKPiB0cmllcyB0byBwcm9iZSBhIGRl dmljZSB3aGljaCBpcyB1bmRlciB0aGUgInNvYyIgYnVzIHdvdWxkIGJlCj4gYmxvY2tlZCB1bnRp bCBwcmV2aW91cyBkcml2ZXIgZmluaXNoIHRoZSBwcm9iaW5nIGFuZCByZWxlYXNlICJzb2MiCj4g bG9jay4gQW5kIHRoZSBuZXh0IHByb2JpbmcgdW5kZXIgdGhlICJzb2MiIGJ1cyBuZWVkIHRvIHdh aXQgZm9yCj4gYXN5bmMgZmluaXNoLiBCZWNhdXNlIG9mIHRoYXQsIGRyaXZlcidzIGFzeW5jIHBy b2JlIGZvciBpbml0Cj4gdGltZSBpbXByb3ZlbWVudCB3aWxsIGJlIHNoYWRvd2VkLgo+IAo+IFNp bmNlIG1hbnkgZGV2aWNlcyBkb24ndCBoYXZlIFVTQiBkZXZpY2VzJyBjaGFyYWN0ZXJpc3RpYywg dGhleQo+IGFjdHVhbGx5IGRvbid0IG5lZWQgcGFyZW50J3MgbG9jay4gVGh1cywgd2UgaW50cm9k dWNlIGEgbG9jayBmbGFnCj4gaW4gZGV2aWNlIHN0cnVjdCBhbmQgZHJpdmVyIGNvcmUgd291bGQg bG9jayB0aGUgcGFyZW50IGxvY2sgYmFzZQo+IG9uIHRoZSBmbGFnLiBGb3IgdXNic3lzdGVtLCB3 ZSBzZXQgdGhpcyBmbGFnIHdoZW4gaXRzIGRldmljZSBhbmQKPiBkcml2ZXIgaXMgbWF0Y2hlZCBh bmQgdG8ga2VlcCBvcmlnaW5hbCBsb2NrIGJlaGF2aW9yIGluIGRyaXZlcgo+IGNvcmUuCj4gCj4g QXN5bmMgcHJvYmUgY291bGQgaGF2ZSBtb3JlIGJlbmVmaXQgYWZ0ZXIgdGhpcyBwYXRjaC4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBtYXJ0aW5fbGl1IDxsaXVtYXJ0aW5AZ29vZ2xlLmNvbT4KCk5pdCwg eW91ciBuYW1lIGhlcmUgaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHNpZ24gbGVnYWwgZG9jdW1l bnRzIHdpdGguClBsZWFzZSB1c2UgeW91ciAicmVhbCBuYW1lIiBpbiB0aGlzIGxpbmUsIGFuZCBp biB5b3VyIEZyb206IGVtYWlsIGxpbmUKKGhpbnQsIG5vICdfJykuICBUaGlzIHByZXZlbnRzIG1l IGZyb20gYWNjZXB0aW5nIHRoZSBwYXRjaCBhdCBhbGwuCgo+IFN1Z2dlc3RlZC1ieTogQWxhbiBT dGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4KCkNoYW5nZXMgd2VyZSBzdWdnZXN0ZWQs IEkgZG9uJ3Qga25vdyBpZiB0aGUgd2hvbGUgaWRlYSB3YXMgOikKCj4gLS0tIGEvaW5jbHVkZS9s aW51eC9kZXZpY2UuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvZGV2aWNlLmgKPiBAQCAtOTkyLDYg Kzk5Miw3IEBAIHN0cnVjdCBkZXZpY2Ugewo+ICAJYm9vbAkJCW9mZmxpbmVfZGlzYWJsZWQ6MTsK PiAgCWJvb2wJCQlvZmZsaW5lOjE7Cj4gIAlib29sCQkJb2Zfbm9kZV9yZXVzZWQ6MTsKPiArCWJv b2wJCQluZWVkX3BhcmVudF9sb2NrOjE7CgpTaG91bGRuJ3QgdGhpcyBiZSBhIGJ1cyB0eXBlIGZs YWcsIGFuZCBub3QgYSBkZXZpY2Utc3BlY2lmaWMgZmxhZz8gIFlvdQphcmUgb25seSBldmVyIGNh cmluZyBhYm91dCB0aGlzIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGJ1cyB0aGUgZGV2aWNlIGlzCm9u LCB0aGUgcnVsZSB3b3VsZCBub3QgYmUgZGlmZmVyZW50IGZvciBkaWZmZXJlbnQgZGV2aWNlcyBv biB0aGUgc2FtZQpidXMgZnJvbSB3aGF0IEkgY2FuIHRlbGwuCgp0aGFua3MsCgpncmVnIGstaAot LS0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2Ny aWJlIGxpbnV4LXVzYiIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2Vy Lmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9y Zy9tYWpvcmRvbW8taW5mby5odG1sCg==