mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@tv-sign.ru>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	"Rafael J. Wysocki" <rjw@sisk.pl>, Pavel Machek <pavel@ucw.cz>,
	USB development list <linux-usb-devel@lists.sourceforge.net>,
	Kernel development list <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.22-rc2-mm1
Date: Wed, 23 May 2007 20:09:45 +0400	[thread overview]
Message-ID: <20070523160945.GA150@tv-sign.ru> (raw)
In-Reply-To: <20070523085424.2aa27c57.akpm@linux-foundation.org>

On 05/23, Andrew Morton wrote:
>
> On Wed, 23 May 2007 10:47:04 -0400 (EDT) Alan Stern <stern@rowland.harvard.edu> wrote:
> 
> > Is it possible to get an Alt-SysRq-T stack trace during those 20 
> > seconds?  Knowing what those threads are waiting for would be a big 
> > help.
>
> [  144.201264] khubd         D 00400005     0   160      2 (L-TLB)
> [  144.204358]        c207fe78 00000046 90399a85 00400005 00000246 c207fe60 c25b0cc4 c206f4cc 
> [  144.204539]        00000286 00000000 769e4cea 0040000a 90399a85 00400005 c32713c0 c207fed4 
> [  144.207754]        00000001 c207fe94 c207febc c02e8e1b 00000000 00000000 00000000 00000000 
> [  144.210934] Call Trace:
> [  144.217012]  [<c02e8e1b>] wait_for_completion+0x68/0x91
> [  144.220090]  [<c011824f>] default_wake_function+0x0/0x9
> [  144.223158]  [<c0127a41>] flush_cpu_workqueue+0x4d/0x55
> [  144.226223]  [<c0127a69>] wq_barrier_func+0x0/0x8
> [  144.229269]  [<c026343d>] usb_release_dev+0x28/0x63
> [  144.232340]  [<c0233011>] device_release+0x37/0x7c
> [  144.235431]  [<c01cb6c7>] kobject_cleanup+0x3d/0x54
> [  144.238520]  [<c01cb6de>] kobject_release+0x0/0x8
> [  144.241631]  [<c01cc2a7>] kref_put+0x75/0x82
> [  144.244699]  [<c0265482>] hub_thread+0x376/0xa74
> [  144.247768]  [<c01180c2>] pick_next_task_fair+0xf2/0x12a
> [  144.250815]  [<c0116af1>] __wake_up_common+0x31/0x4f
> [  144.253864]  [<c012a259>] autoremove_wake_function+0x0/0x35
> [  144.256902]  [<c026510c>] hub_thread+0x0/0xa74
> [  144.259944]  [<c012a102>] kthread+0x36/0x5c
> [  144.262891]  [<c012a0cc>] kthread+0x0/0x5c
> [  144.265757]  [<c010464b>] kernel_thread_helper+0x7/0x10
> [  144.268716]  =======================

Looks like usb_release_dev() does flush_workqueue() under usb_lock_device().

Is it possible? If yes, flush_workqueue() stalls because this lock is need
to finish the execution of ->wakeup_work (below).

	usb_release_dev:

		#ifdef  CONFIG_USB_SUSPEND
			cancel_delayed_work(&udev->autosuspend);
			flush_workqueue(ksuspend_usb_wq);
		#endif

What is the reason for flush_workqueue() here? _IF_ it is only needed to flush
->autosuspend, we can use cancel_rearming_delayed_work(&udev->autosuspend).

> [  144.137704] ksuspend_usbd D 00400005     0   157      2 (L-TLB)
> [  144.140830]        c2085f18 00000046 9072767a 00400005 c20626f0 c010449b c3182118 c206288c 
> [  144.141011]        c3182120 c3182120 76d728df 0040000a 9072767a 00400005 c3271200 c3182118 
> [  144.144263]        c3182120 00000246 c20626f0 c02ea1c9 00000000 00000000 00000000 00000000 
> [  144.147576] Call Trace:
> [  144.153929]  [<c010449b>] common_interrupt+0x23/0x28
> [  144.157245]  [<c02ea1c9>] __down+0xba/0xc6
> [  144.160528]  [<c011824f>] default_wake_function+0x0/0x9
> [  144.163832]  [<c02664fc>] hcd_resume_work+0x0/0x43
> [  144.167126]  [<c02e9fd3>] __down_failed+0x7/0xc
> [  144.170372]  [<c0266518>] hcd_resume_work+0x1c/0x43
> [  144.173603]  [<c01278cf>] run_workqueue+0x6d/0xdf
> [  144.176780]  [<c0127b4c>] worker_thread+0x0/0xd0
> [  144.179885]  [<c0127b4c>] worker_thread+0x0/0xd0
> [  144.182930]  [<c0127c12>] worker_thread+0xc6/0xd0
> [  144.185964]  [<c012a259>] autoremove_wake_function+0x0/0x35
> [  144.189056]  [<c012a102>] kthread+0x36/0x5c
> [  144.192118]  [<c012a0cc>] kthread+0x0/0x5c
> [  144.195153]  [<c010464b>] kernel_thread_helper+0x7/0x10

Oleg.


  reply	other threads:[~2007-05-23 17:04 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-23  7:42 2.6.22-rc2-mm1 Andrew Morton
2007-05-23  7:48 ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-23  9:22   ` 2.6.22-rc2-mm1 Rafael J. Wysocki
2007-05-23 14:47     ` 2.6.22-rc2-mm1 Alan Stern
2007-05-23 15:54       ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-23 16:09         ` Oleg Nesterov [this message]
2007-05-23 17:00         ` 2.6.22-rc2-mm1 Alan Stern
2007-05-23 16:21           ` 2.6.22-rc2-mm1 Oleg Nesterov
2007-05-23 18:41             ` 2.6.22-rc2-mm1 Alan Stern
2007-05-23  9:47 ` 2.6.22-rc2-mm1 Michal Piotrowski
2007-05-23 17:18   ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-23 21:05     ` 2.6.22-rc2-mm1 Michal Piotrowski
2007-05-23 22:01       ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-23 22:18         ` 2.6.22-rc2-mm1 Michal Piotrowski
2007-05-23 22:27         ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-23 22:37           ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-23 23:36             ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-24  1:21               ` 2.6.22-rc2-mm1 Randy Dunlap
2007-05-24  2:43                 ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-24  3:00                 ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-24  3:26                   ` 2.6.22-rc2-mm1 Randy Dunlap
2007-05-24  7:31                   ` 2.6.22-rc2-mm1 Ingo Molnar
2007-05-24 16:40                     ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-24 21:20                     ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-24 21:29                       ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-24 21:55                         ` 2.6.22-rc2-mm1 Randy Dunlap
2007-05-24 22:35                           ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-24 22:53                             ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-30 21:34                             ` [PATCH 1/3] hexdump: more output formatting Randy Dunlap
2007-05-30 21:42                               ` Christoph Lameter
2007-05-30 21:45                                 ` Randy Dunlap
2007-05-31  1:45                                 ` [PATCH 1/3 v2] " Randy Dunlap
2007-05-30 21:56                               ` [PATCH 1/3] " Satyam Sharma
2007-05-30 22:03                                 ` Randy Dunlap
2007-05-30 22:11                                   ` Satyam Sharma
2007-05-30 22:18                                     ` Christoph Lameter
2007-05-30 22:41                                       ` Satyam Sharma
2007-05-30 22:44                                         ` Randy Dunlap
2007-05-30 22:48                                           ` Satyam Sharma
2007-05-30 22:59                                             ` Randy Dunlap
2007-05-30 22:25                                     ` Randy Dunlap
2007-05-30 22:36                               ` Jesper Juhl
2007-05-30 23:04                                 ` Randy Dunlap
2007-05-30 23:07                                   ` Jesper Juhl
2007-05-30 21:34                             ` [PATCH 2/3 -mm] slub: use lib/hexdump Randy Dunlap
2007-05-30 21:45                               ` Christoph Lameter
2007-05-30 21:48                                 ` Randy Dunlap
2007-05-30 21:51                                   ` Christoph Lameter
2007-05-30 21:54                                     ` Randy Dunlap
2007-05-30 22:03                                       ` Christoph Lameter
2007-05-30 22:06                                         ` Randy Dunlap
2007-05-31  1:39                                           ` Randy Dunlap
2007-05-23 22:24       ` 2.6.22-rc2-mm1 Christoph Lameter
2007-05-23 12:01 ` 2.6.22-rc2-mm1 Gabriel C
2007-05-23 16:01   ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-23 15:02 ` 2.6.22-rc2-mm1 William Lee Irwin III
2007-05-23 15:28 ` 2.6.22-rc2-mm1 William Lee Irwin III
2007-05-23 16:08 ` 2.6.22-rc2-mm1 William Lee Irwin III
2007-05-23 16:29 ` 2.6.22-rc2-mm1 William Lee Irwin III
2007-05-23 17:27 ` 2.6.22-rc2-mm1 William Lee Irwin III
2007-05-23 23:17 ` 2.6.22-rc2-mm1 Zan Lynx
2007-05-23 23:27   ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-23 23:40   ` 2.6.22-rc2-mm1 Jiri Kosina
2007-05-24  3:28     ` 2.6.22-rc2-mm1 Dmitry Torokhov
2007-05-24  7:28       ` 2.6.22-rc2-mm1 Jiri Kosina
2007-05-30 14:08       ` [PATCH] Input: i8042 - cleanup of debug code (was Re: 2.6.22-rc2-mm1) Jiri Kosina
2007-05-30 14:27         ` Dmitry Torokhov
2007-05-30 14:30           ` Jiri Kosina
     [not found]     ` <1180058760.7001.6.camel@oberon.rnd.esoft.com>
2007-05-25  7:23       ` 2.6.22-rc2-mm1 Jiri Kosina
2007-05-23 23:50   ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-24 10:36 ` rmmod e1000 hangs (Was Re: 2.6.22-rc2-mm1) Jeremy Fitzhardinge
2007-05-24 10:47   ` Herbert Xu
2007-05-24 10:54     ` Herbert Xu
2007-05-24 14:44       ` Kok, Auke
2007-05-25 12:54         ` Herbert Xu
2007-05-25 13:04           ` Herbert Xu
2007-05-25 13:32             ` Herbert Xu
2007-05-25 22:12               ` Kok, Auke
2007-05-25 23:48                 ` Jeff Garzik
2007-05-26  0:10                   ` Herbert Xu
2007-05-25 21:20 ` idle=poll burns my box [was Re: 2.6.22-rc2-mm1] J.A. Magallón
2007-05-25 21:52   ` Andrew Morton
2007-05-26 15:59 ` 2.6.22-rc2-mm1 Tilman Schmidt
2007-05-26 16:01   ` 2.6.22-rc2-mm1 Andrew Morton
2007-05-27 22:16     ` 2.6.22-rc2-mm1 Tilman Schmidt
2007-05-27 22:41       ` 2.6.22-rc2-mm1 Kay Sievers
2007-05-28 17:22         ` 2.6.22-rc2-mm1 Cornelia Huck
2007-05-29  7:56           ` 2.6.22-rc2-mm1 Kay Sievers
2007-05-29  7:25         ` 2.6.22-rc2-mm1 Cornelia Huck
2007-05-29 14:43           ` 2.6.22-rc2-mm1 Matt Mackall
2007-05-29 16:55           ` 2.6.22-rc2-mm1 Tilman Schmidt
2007-05-29 17:25             ` 2.6.22-rc2-mm1 Cornelia Huck
2007-06-01 12:38               ` 2.6.22-rc2-mm1 Greg KH
2007-07-03  8:50                 ` 2.6.22-rc2-mm1 Cornelia Huck
2007-07-12  6:00                   ` 2.6.22-rc2-mm1 Greg KH
2007-05-28 10:27 ` 2.6.22-rc2-mm1 - a different BUG: at mm/slab.c:777 __find_general_cachep() Valdis.Kletnieks
2007-05-28 10:43   ` Pekka Enberg
2007-05-28 11:12     ` Valdis.Kletnieks
2007-05-29  4:22 ` 2.6.22-rc2-mm1: SLUB Randy Dunlap
2007-05-29 17:13   ` Christoph Lameter
2007-05-29 18:13     ` Randy Dunlap
2007-05-29 18:30       ` Christoph Lameter
2007-05-29 18:32       ` Christoph Lameter
2007-05-29 18:59         ` Randy Dunlap

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=20070523160945.GA150@tv-sign.ru \
    --to=oleg@tv-sign.ru \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb-devel@lists.sourceforge.net \
    --cc=pavel@ucw.cz \
    --cc=rjw@sisk.pl \
    --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

Powered by JetHome