From: oliver@neukum.org (Oliver Neukum)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 0/4] USB: HCD/EHCI: giveback of URB in tasklet context
Date: Tue, 11 Jun 2013 10:49:23 +0200 [thread overview]
Message-ID: <1888740.dKYctKO5at@linux-5eaq.site> (raw)
In-Reply-To: <CACVXFVNgzb=VVf9PY_sAHXPtXnqFVXbnB_L4i4xvK0dN1-8T2A@mail.gmail.com>
On Tuesday 11 June 2013 16:14:25 Ming Lei wrote:
> On Tue, Jun 11, 2013 at 3:18 PM, Oliver Neukum <oliver@neukum.org> wrote:
> > On Tuesday 11 June 2013 13:40:20 Ming Lei wrote:
> >> On Tue, Jun 11, 2013 at 1:36 AM, Alan Stern <stern@rowland.harvard.edu> wrote:
> >> > On Mon, 10 Jun 2013, Ming Lei wrote:
> >
> >> If complete() callback runs in one tasklet context, spin_lock() inside
> >> complete() is enough, just like hard irq, the tasklet itself is disabled
> >> during complete(), if the percpu tasklet is converted to single tasklet.
> >> So no problem when the lock is to protect shared resources between
> >> complete().
> >
> > We also have exclusion between complete() and other contexts, i.e. timers.
>
> The patch also converts the complete() called in timers to tasklet context too.
>
> So could you let me know if that eases your concern? If not, could you explain
> your concern about other contexts in a bit detail?
The driver itself may have submitted a timer and race against it.
What locking do you need in complete() and a timer to lock against
each other?
> > Even now we cannot guarantee that all calls to complete() are in irq.
> > There is the case of HCD hotunplug and other cases, like timeouts.
> > They will have to be verified.
>
> All URBs are completed via usb_hcd_giveback_urb(), so there should
> be no differences between these cases and the common one about
> introducing the patchset.
But it makes no sense to go to a tasklet when you are already in task context.
In those cases you need to do something, essentially blocking the tasklet.
Regards
Oliver
next prev parent reply other threads:[~2013-06-11 8:49 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-09 15:18 [RFC PATCH 0/4] USB: HCD/EHCI: giveback of URB in tasklet context Ming Lei
2013-06-09 15:18 ` [RFC PATCH 1/4] USB: HCD: support " Ming Lei
2013-06-09 15:58 ` Alan Stern
2013-06-10 8:12 ` Ming Lei
2013-06-10 8:43 ` Oliver Neukum
2013-06-10 9:23 ` Ming Lei
2013-06-10 9:31 ` Oliver Neukum
2013-06-10 9:51 ` Ming Lei
2013-06-09 15:18 ` [RFC PATCH 2/4] USB: EHCI: don't release ehci->lock if URB giveback " Ming Lei
2013-06-09 16:06 ` Alan Stern
2013-06-10 9:10 ` Ming Lei
2013-06-09 15:18 ` [RFC PATCH 3/4] USB: EHCI: improve interrupt qh unlink Ming Lei
2013-06-09 15:18 ` [RFC PATCH 4/4] USB: EHCI: support running URB giveback in tasklet context Ming Lei
2013-06-09 15:48 ` [RFC PATCH 0/4] USB: HCD/EHCI: giveback of URB " Alan Stern
2013-06-10 6:05 ` Ming Lei
2013-06-10 14:03 ` Alan Stern
2013-06-10 14:12 ` Oliver Neukum
2013-06-10 15:33 ` Alan Stern
2013-06-10 15:37 ` Ming Lei
2013-06-10 17:36 ` Alan Stern
2013-06-10 18:52 ` Steven Rostedt
2013-06-10 20:47 ` Alan Stern
2013-06-10 20:54 ` Steven Rostedt
2013-06-11 8:40 ` Ming Lei
2013-06-10 20:51 ` Alan Stern
2013-06-11 6:19 ` Ming Lei
2013-06-11 5:40 ` Ming Lei
2013-06-11 7:18 ` Oliver Neukum
2013-06-11 8:14 ` Ming Lei
2013-06-11 8:49 ` Oliver Neukum [this message]
2013-06-11 9:27 ` Ming Lei
2013-06-11 10:51 ` Oliver Neukum
2013-06-11 11:19 ` Ming Lei
2013-06-11 19:10 ` Alan Stern
2013-06-12 2:43 ` Ming Lei
2013-06-12 6:41 ` Ming Lei
2013-06-12 7:45 ` Thomas Gleixner
2013-06-13 2:25 ` Ming Lei
2013-06-13 14:54 ` Alan Stern
2013-06-13 18:47 ` Greg Kroah-Hartman
2013-06-13 19:41 ` Alan Stern
2013-06-13 20:08 ` Steven Rostedt
2013-06-13 21:09 ` Alan Stern
2013-06-13 22:24 ` Steven Rostedt
2013-06-13 23:08 ` Alan Stern
2013-06-14 1:27 ` Ming Lei
2013-06-14 0:35 ` Greg Kroah-Hartman
2013-06-14 1:53 ` Ming Lei
2013-06-14 6:05 ` Greg Kroah-Hartman
2013-06-14 10:05 ` Ming Lei
2013-06-14 1:37 ` Ming Lei
2013-06-14 3:24 ` Ming Lei
2013-06-14 14:56 ` Alan Stern
2013-06-14 15:15 ` Ming Lei
2013-06-14 20:23 ` Alan Stern
2013-06-14 21:09 ` Thomas Gleixner
2013-06-15 1:49 ` Ming Lei
2013-06-14 2:03 ` Ming Lei
2013-06-12 14:35 ` Alan Stern
2013-06-12 15:10 ` Oliver Neukum
2013-06-13 3:41 ` Ming Lei
2013-06-13 15:05 ` Alan Stern
2013-06-12 9:11 ` Oliver Neukum
2013-06-12 10:11 ` Ming Lei
2013-06-12 10:19 ` Oliver Neukum
2013-06-12 11:33 ` Ming Lei
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=1888740.dKYctKO5at@linux-5eaq.site \
--to=oliver@neukum.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.