All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@redhat.com>
To: Tejun Heo <tj@kernel.org>
Cc: Dominik Klein <dk@in-telegence.net>,
	linux kernel mailing list <linux-kernel@vger.kernel.org>,
	libvir-list@redhat.com
Subject: Re: Is it a workqueue related issue in 2.6.37 (Was: Re: [libvirt] blkio cgroup [solved])
Date: Fri, 25 Feb 2011 09:57:08 -0500	[thread overview]
Message-ID: <20110225145708.GB2994@redhat.com> (raw)
In-Reply-To: <20110225131850.GI24828@htj.dyndns.org>

On Fri, Feb 25, 2011 at 02:18:50PM +0100, Tejun Heo wrote:
> Hello,
> 
> On Fri, Feb 25, 2011 at 12:46:16PM +0100, Dominik Klein wrote:
> > With 2.6.37 (also tried .1 and .2) it does not work but end up like I
> > documented. With 2.6.38-rc1, it does work. With deadline scheduler, it
> > also works in 2.6.37.
> 
> Okay, here's the problematic part.
> 
>           <idle>-0     [013]  1640.975562: workqueue_queue_work: work struct=ffff88080f14f270 function=blk_throtl_work workqueue=ffff88102c8fc700 req_cpu=13 cpu=13
>           <idle>-0     [013]  1640.975564: workqueue_activate_work: work struct ffff88080f14f270
>            <...>-477   [013]  1640.975574: workqueue_execute_start: work struct ffff88080f14f270: function blk_throtl_work
> 	  <idle>-0     [013]  1641.087450: workqueue_queue_work: work struct=ffff88080f14f270 function=blk_throtl_work workqueue=ffff88102c8fc700 req_cpu=13 cpu=13
> 		     
> The workqueue is per-cpu, so we only need to follow cpu=13 cases.
> @1640, blk_throtl_work() is queued, activated and starts executing but
> never finishes.  The same work item is never executed more than once
> at the same on the same CPU, so when the next work item is queued, it
> doesn't get activated until the previous execution is complete.
> 
> The next thing to do would be finding out why blk_throtl_work() isn't
> finishing.  sysrq-t or /proc/PID/stack should show us where it's
> stalled.

Hi Tejun,

blk_throtl_work() calls generic_make_request() to dispatch some bios and I
guess blk_throtl_work() has been put to sleep because threre are no request
descriptors available and CFQ is frozen so no requests descriptors get freed
hence blk_throtl_work() never finishes.

Following caught my eye.

     ksoftirqd/0-3     [000]  1640.983585:   8,16   m   N cfq4810 slice
expired t=0
     ksoftirqd/0-3     [000]  1640.983588:   8,16   m   N cfq4810
sl_used=2 disp=6 charge=2 iops=0 sect=2080
     ksoftirqd/0-3     [000]  1640.983589:   8,16   m   N cfq4810
del_from_rr
     ksoftirqd/0-3     [000]  1640.983591:   8,16   m   N cfq schedule
dispatch
            sshd-3125  [004]  1640.983597: workqueue_queue_work: work
struct=ffff88102c3a3110 function=flush_to_ldisc workqueue=ffff88182c834a00
req_cpu=4 cpu=4
            sshd-3125  [004]  1640.983598: workqueue_activate_work: work
struct ffff88102c3a3110

CFQ tries to schedule a work and but there is no associated
"workqueue_queue_work" trace. So it looks like that work never got queued.

CFQ calls following.

cfq_log(cfqd, "schedule dispatch");
kblockd_schedule_work(cfqd->queue, &cfqd->unplug_work);

We do see "schedule dispatch" message and kblockd_schedule_work() calls
queue_work(). So what happended here? This is strange. I will put one
more trace after kblockd_schedule_work() to trace that function returned.

Thanks
Vivek

  parent reply	other threads:[~2011-02-25 14:57 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20110218163137.GF26654@redhat.com>
     [not found] ` <4D621B9B.3070205@in-telegence.net>
     [not found]   ` <4D622002.2040604@in-telegence.net>
     [not found]     ` <4D6222A8.6090303@in-telegence.net>
     [not found]       ` <20110221184442.GM6428@redhat.com>
     [not found]         ` <4D63BA3B.7070809@in-telegence.net>
     [not found]           ` <20110222152426.GD28269@redhat.com>
     [not found]             ` <20110222190953.GF28269@redhat.com>
     [not found]               ` <4D650D7E.4050908@in-telegence.net>
     [not found]                 ` <4D662248.6040405@in-telegence.net>
2011-02-24 14:23                   ` Is it a workqueue related issue in 2.6.37 (Was: Re: [libvirt] blkio cgroup [solved]) Vivek Goyal
2011-02-24 14:31                     ` Tejun Heo
2011-02-24 14:58                       ` Dominik Klein
2011-02-24 15:17                         ` Tejun Heo
2011-02-25  7:24                           ` Dominik Klein
2011-02-25 11:29                             ` Tejun Heo
2011-02-25 11:46                               ` Dominik Klein
2011-02-25 13:18                                 ` Tejun Heo
2011-02-25 14:41                                   ` Dominik Klein
2011-02-25 14:55                                     ` Tejun Heo
2011-02-25 14:57                                   ` Vivek Goyal [this message]
2011-02-25 15:03                                     ` Tejun Heo
2011-02-25 15:11                                       ` Vivek Goyal
2011-02-25 15:15                                         ` Vivek Goyal
2011-02-25 16:03                                         ` Vivek Goyal
2011-02-25 16:09                                           ` Tejun Heo
2011-02-25 16:19                                             ` Vivek Goyal
2011-02-25 16:30                                             ` Vivek Goyal
2011-02-25 16:56                                               ` Dominik Klein
2011-02-25 19:53                             ` Steven Rostedt
2011-02-25 20:18                               ` Vivek Goyal
2011-02-26  2:47                                 ` Steven Rostedt

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=20110225145708.GB2994@redhat.com \
    --to=vgoyal@redhat.com \
    --cc=dk@in-telegence.net \
    --cc=libvir-list@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tj@kernel.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.