public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matthew Garrett <mjg59@srcf.ucam.org>
To: David Brownell <david-b@pacbell.net>
Cc: linux-usb-devel@lists.sourceforge.net, Greg KH <gregkh@suse.de>,
	Rogan Dawes <lists@dawes.za.net>,
	Oliver Neukum <oliver@neukum.org>,
	linux-kernel@vger.kernel.org,
	Alan Stern <stern@rowland.harvard.edu>
Subject: Re: [linux-usb-devel] [PATCH] USB: Only enable autosuspend by default on certain device classes
Date: Fri, 3 Aug 2007 17:50:00 +0100	[thread overview]
Message-ID: <20070803165000.GA22075@srcf.ucam.org> (raw)
In-Reply-To: <200708030929.17049.david-b@pacbell.net>

On Fri, Aug 03, 2007 at 09:29:16AM -0700, David Brownell wrote:
> On Friday 03 August 2007, Matthew Garrett wrote:
> > And, frankly, if I got a requestor like that every time I plugged in a 
> > new USB device I'd be fairly unhappy.
> 
> Which is why my comment was about something else entirely!
> 
> That is, having an out-of-kernel database which could preclude
> the need for such requestors for devices already known.

Plus a mechanism for pushing data into it, plus a mechanism for ensuring 
that inaccurate data doesn't get in there, plus some what of pushing 
updates out to users, plus privilege escalation for setting the value, 
plus policy management to ensure that normal users can't mess with the 
autosuspend values for other users? No, this isn't trivial - especially 
when there's a straightforward in-kernel mechanism (only enable it when 
it's known to be safe)

> > "Usbfs files can't handle Access Control Lists (ACL), which are the 
> > default way to grant access to USB devices for untrusted users of a 
> > desktop system. The usbfs functionality is replaced by real device-nodes 
> > managed by udev. These nodes live in /dev/bus/usb and are used by 
> > libusb."
> > 
> > (From Kconfig)
> 
> That's shortly after the explanation that the relevant Kconfig
> option is for  ** /proc/bus/usb ** files ... note that despite the
> strangeness in that text (usbfs still hasn't been "replaced", so
> that should say "will eventually be replaced" not "is replaced"),
> it's clear that /proc/bus/usb/ and /dev/bus/usb/ are two different
> things.  And thus:  that Ubuntu's /dev/bus/usb/ setup is flakey.

Both /proc/bus/usb and /dev/bus/usb are provided. Anything that fails to 
work with /dev/bus/usb is buggy - libusb copes fine. We're in the 
process of transitioning away from the legacy interface. It could be 
worse - we could have just removed it on the grounds that it doesn't 
work properly.

> > System/Preferences/Power Management
> 
> There's no option there to affect what happens when it's running
> on battery power.  Though I'm curious what it means when it has
> a "suspend" option (not "hibernate") ... I wouldn't mind STR.

That's odd. In the "On battery power" tab I see an option to choose the 
action when the battery power is critically low.

> > It can be, but I'd prefer to have userspace enable functionality than 
> > have the kernel break things.
> 
> That side of things has been absent from the discussion so far.
> 
> When something is wrongly blacklisted (by whatever), how are you
> proposing that it get un-blacklisted?  Seems to me that whatever
> mechanism resolves that issue should also work the other way around...

The worst case scenario in the "Disable by default, allow userspace to 
whitelist" case is that some machines draw slightly more power. The 
worst case scenario in the "Enable by default, allow userspace to 
blacklist" case is that some hardware doesn't work because of race 
conditions between autosuspend and userspace having the opportunity to 
disable it, or devices not being in the blacklist, or somebody not 
having adequately new usrspace, or...
-- 
Matthew Garrett | mjg59@srcf.ucam.org

  reply	other threads:[~2007-08-03 16:50 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-02 23:56 [PATCH] USB: Only enable autosuspend by default on certain device classes Matthew Garrett
2007-08-03  1:15 ` Greg KH
2007-08-03  1:47   ` Matthew Garrett
2007-08-03  2:46     ` [linux-usb-devel] " Alan Stern
2007-08-03  6:01       ` David Brownell
2007-08-03 11:28         ` Matthew Garrett
2007-08-03 11:44           ` Oliver Neukum
2007-08-03 12:04             ` Matthew Garrett
2007-08-03 12:26               ` Rogan Dawes
2007-08-03 12:32                 ` Matthew Garrett
2007-08-03 14:01                   ` David Brownell
2007-08-03 14:09                     ` Matthew Garrett
2007-08-03 14:28                       ` Alan Stern
2007-08-03 14:33                         ` Matthew Garrett
2007-08-03 14:41                           ` Alan Stern
2007-08-03 15:10                             ` Matthew Garrett
2007-08-03 14:43                           ` Jiri Kosina
2007-08-03 14:53                             ` [linux-usb-devel] " Dave Jones
2007-08-03 14:58                               ` Jiri Kosina
2007-08-03 15:24                               ` David Brownell
2007-08-03 15:29                                 ` Jiri Kosina
2007-08-03 17:47                                   ` Alan Stern
2007-08-03 15:25                               ` Adam Kropelin
2007-08-03 15:31                                 ` Jiri Kosina
2007-08-03 15:48                                   ` Dave Jones
2007-08-03 16:49                                     ` David Brownell
2007-08-03 16:55                                     ` Adam Kropelin
2007-08-03 15:06                             ` Matthew Garrett
2007-08-03 14:37                       ` [linux-usb-devel] " David Brownell
2007-08-03 15:03                         ` Matthew Garrett
2007-08-03 16:08                           ` Oliver Neukum
2007-08-03 17:49                             ` Alan Stern
2007-08-03 20:03                             ` Dave Jones
2007-08-03 16:29                           ` David Brownell
2007-08-03 16:50                             ` Matthew Garrett [this message]
2007-08-03 17:49                             ` Greg KH
2007-08-03 17:44                   ` Greg KH
2007-08-03 17:48                     ` Matthew Garrett
2007-08-03 19:29                       ` Chuck Ebbert
2007-08-03 19:56                         ` Pete Zaitcev
2007-08-07  9:14                           ` Amit Kucheria
2007-08-03 20:12                     ` [linux-usb-devel] " Dave Jones
2007-08-03 21:17                       ` Alan Stern
2007-08-03 21:31                         ` Dave Jones
2007-08-03 21:33                         ` Matthew Garrett
2007-08-03 12:34                 ` Felipe Balbi
2007-08-03  6:06     ` David Brownell
2007-08-03 14:22       ` Dave Jones
2007-08-03 14:52         ` David Brownell
2007-08-03  7:57     ` Oliver Neukum
2007-08-03 14:24       ` Dave Jones
2007-08-03 14:32         ` Oliver Neukum
2007-08-03 14:36           ` [linux-usb-devel] [PATCH] USB: Only enable autosuspend by?default " Dave Jones
2007-08-03 19:34         ` [linux-usb-devel] [PATCH] USB: Only enable autosuspend by default " Pete Zaitcev
2007-08-03 19:45           ` Dave Jones
2007-08-03 20:04             ` Pete Zaitcev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070803165000.GA22075@srcf.ucam.org \
    --to=mjg59@srcf.ucam.org \
    --cc=david-b@pacbell.net \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb-devel@lists.sourceforge.net \
    --cc=lists@dawes.za.net \
    --cc=oliver@neukum.org \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox