From: Mike Snitzer <snitzer@redhat.com>
To: Ryan Harper <ryanh@us.ibm.com>
Cc: Tejun Heo <tj@kernel.org>, Mikulas Patocka <mpatocka@redhat.com>,
dm-devel@redhat.com, Vivek Goyal <vgoyal@redhat.com>,
john.cooper@redhat.com, rusty@rustcorp.com.au, hch@infradead.org,
kvm@vger.kernel.org
Subject: Re: [REGRESSION][BISECTED] virtio-blk serial attribute causes guest to hang [Was: Re: [PATCH UPDATED 4/5] dm: implement REQ_FLUSH/FUA support for request-based dm]
Date: Thu, 9 Sep 2010 16:14:46 -0400 [thread overview]
Message-ID: <20100909201445.GA19656@redhat.com> (raw)
In-Reply-To: <20100909194300.GA16908@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1122 bytes --]
On Thu, Sep 09 2010 at 3:43pm -0400,
Mike Snitzer <snitzer@redhat.com> wrote:
> Interestingly, just this loop:
>
> while true ; do cat /sys/block/vda/serial && date && sleep 1 ; done
> Thu Sep 9 15:29:30 EDT 2010
> ...
> Thu Sep 9 15:31:19 EDT 2010
>
> caused the following hang:
...
> So it seems like the virtio requests aren't being properly cleaned up?
Yeap, here is the result with the attached debug patch that Vivek wrote
last week to help chase this issue (which adds 'nr_requests_used'). We
thought the mpath device might be leaking requests; concern for other
devices wasn't on our radar:
# cat /sys/block/vda/queue/nr_requests
128
# while true ; do cat /sys/block/vda/queue/nr_requests_used && cat /sys/block/vda/serial && date && sleep 1 ; done
10
Thu Sep 9 16:04:40 EDT 2010
11
Thu Sep 9 16:04:41 EDT 2010
...
Thu Sep 9 16:06:38 EDT 2010
127
Thu Sep 9 16:06:39 EDT 2010
128
I'll have a quick look at the virtio-blk code to see if I can spot where
the request isn't getting cleaned up. But I welcome others to have a
look too (I've already spent entirely way to much time on this issue).
Mike
[-- Attachment #2: export-nr-requests-throuth-sysfs.patch --]
[-- Type: text/plain, Size: 1650 bytes --]
---
block/blk-sysfs.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
Index: linux-2.6/block/blk-sysfs.c
===================================================================
--- linux-2.6.orig/block/blk-sysfs.c 2010-09-01 09:23:55.000000000 -0400
+++ linux-2.6/block/blk-sysfs.c 2010-09-01 17:55:50.000000000 -0400
@@ -36,6 +36,19 @@ static ssize_t queue_requests_show(struc
return queue_var_show(q->nr_requests, (page));
}
+static ssize_t queue_requests_used_show(struct request_queue *q, char *page)
+{
+ struct request_list *rl = &q->rq;
+
+ printk("Vivek: count[sync]=%d count[async]=%d"
+ " congestion_on_thres=%d queue_congestion_off_threshold=%d\n",
+ rl->count[BLK_RW_SYNC], rl->count[BLK_RW_ASYNC],
+ queue_congestion_on_threshold(q),
+ queue_congestion_off_threshold(q));
+
+ return queue_var_show(rl->count[BLK_RW_SYNC], (page));
+}
+
static ssize_t
queue_requests_store(struct request_queue *q, const char *page, size_t count)
{
@@ -266,6 +279,11 @@ static struct queue_sysfs_entry queue_re
.store = queue_requests_store,
};
+static struct queue_sysfs_entry queue_requests_used_entry = {
+ .attr = {.name = "nr_requests_used", .mode = S_IRUGO | S_IWUSR },
+ .show = queue_requests_used_show,
+};
+
static struct queue_sysfs_entry queue_ra_entry = {
.attr = {.name = "read_ahead_kb", .mode = S_IRUGO | S_IWUSR },
.show = queue_ra_show,
@@ -371,6 +389,7 @@ static struct queue_sysfs_entry queue_ra
static struct attribute *default_attrs[] = {
&queue_requests_entry.attr,
+ &queue_requests_used_entry.attr,
&queue_ra_entry.attr,
&queue_max_hw_sectors_entry.attr,
&queue_max_sectors_entry.attr,
next prev parent reply other threads:[~2010-09-09 20:14 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1283162296-13650-1-git-send-email-tj@kernel.org>
2010-08-30 9:58 ` [PATCH 1/5] block: make __blk_rq_prep_clone() copy most command flags Tejun Heo
2010-08-30 9:58 ` [PATCH 2/5] dm: implement REQ_FLUSH/FUA support for bio-based dm Tejun Heo
2010-09-01 13:43 ` Mike Snitzer
2010-09-01 13:50 ` Tejun Heo
2010-09-01 13:54 ` Mike Snitzer
2010-09-01 13:56 ` Tejun Heo
2010-08-30 9:58 ` [PATCH 3/5] dm: relax ordering of bio-based flush implementation Tejun Heo
2010-08-30 9:58 ` [PATCH 4/5] dm: implement REQ_FLUSH/FUA support for request-based dm Tejun Heo
2010-08-30 9:58 ` [PATCH 5/5] block: remove the WRITE_BARRIER flag Tejun Heo
[not found] ` <1283162296-13650-5-git-send-email-tj@kernel.org>
2010-08-30 13:28 ` [PATCH 4/5] dm: implement REQ_FLUSH/FUA support for request-based dm Mike Snitzer
[not found] ` <20100830132836.GB5283@redhat.com>
2010-08-30 13:59 ` Tejun Heo
[not found] ` <4C7BB932.1070405@kernel.org>
2010-08-30 15:07 ` Tejun Heo
2010-08-30 15:42 ` [PATCH] block: initialize flush request with WRITE_FLUSH instead of REQ_FLUSH Tejun Heo
2010-08-30 15:45 ` [PATCH UPDATED 4/5] dm: implement REQ_FLUSH/FUA support for request-based dm Tejun Heo
[not found] ` <4C7BC942.7070703@kernel.org>
2010-08-30 19:08 ` [PATCH " Mike Snitzer
[not found] ` <20100830190835.GA8458@redhat.com>
2010-08-30 21:28 ` Mike Snitzer
2010-08-31 10:29 ` Tejun Heo
2010-08-31 13:02 ` Mike Snitzer
2010-08-31 13:14 ` Tejun Heo
[not found] ` <4C7BD202.4040700@kernel.org>
2010-08-30 19:18 ` [PATCH UPDATED " Mike Snitzer
[not found] ` <20100830194731.GA10702@redhat.com>
2010-09-01 10:31 ` Mikulas Patocka
2010-09-01 11:20 ` Tejun Heo
2010-09-01 12:12 ` Mikulas Patocka
2010-09-01 12:42 ` Tejun Heo
2010-09-01 12:54 ` Mike Snitzer
2010-09-01 15:20 ` Mike Snitzer
2010-09-01 15:35 ` Mikulas Patocka
2010-09-01 17:07 ` Mike Snitzer
2010-09-01 18:59 ` Mike Snitzer
2010-09-02 3:22 ` Mike Snitzer
2010-09-02 10:24 ` Tejun Heo
2010-09-02 15:11 ` Mike Snitzer
2010-09-09 15:26 ` [REGRESSION][BISECTED] virtio-blk serial attribute causes guest to hang [Was: Re: [PATCH UPDATED 4/5] dm: implement REQ_FLUSH/FUA support for request-based dm] Mike Snitzer
2010-09-09 15:44 ` Ryan Harper
2010-09-09 15:57 ` Mike Snitzer
2010-09-09 16:03 ` Ryan Harper
2010-09-09 17:55 ` Mike Snitzer
2010-09-09 18:35 ` Ryan Harper
2010-09-09 19:15 ` Mike Snitzer
2010-09-09 19:43 ` Mike Snitzer
2010-09-09 20:14 ` Mike Snitzer [this message]
2010-09-09 20:30 ` Ryan Harper
2010-09-09 21:00 ` [PATCH] virtio-blk: put request that was created to retrieve the device id Mike Snitzer
2010-09-09 21:15 ` Christoph Hellwig
2010-09-17 14:58 ` Ryan Harper
2010-09-21 21:00 ` Christoph Hellwig
2010-10-08 16:06 ` [2.6.36 REGRESSION] " Mike Snitzer
2010-10-09 1:41 ` [PATCH] " Rusty Russell
[not found] ` <1283162296-13650-4-git-send-email-tj@kernel.org>
2010-09-01 13:51 ` [PATCH 3/5] dm: relax ordering of bio-based flush implementation Mike Snitzer
2010-09-01 13:56 ` Tejun Heo
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=20100909201445.GA19656@redhat.com \
--to=snitzer@redhat.com \
--cc=dm-devel@redhat.com \
--cc=hch@infradead.org \
--cc=john.cooper@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=rusty@rustcorp.com.au \
--cc=ryanh@us.ibm.com \
--cc=tj@kernel.org \
--cc=vgoyal@redhat.com \
/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;
as well as URLs for NNTP newsgroup(s).