kernel-testers.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <jaxboe-5c4llco8/ftWk0Htik3J/w@public.gmane.org>
To: Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>
Cc: Linus Torvalds
	<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	"Rafael J. Wysocki" <rjw-KKrjLPT3xs0@public.gmane.org>,
	Carl Worth <cworth-4HiWtcSh4w0dnm+yROfE0A@public.gmane.org>,
	Eric Anholt <eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org>,
	vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	Divyesh Shah <dpshah-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	guijianfeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org,
	Linux Kernel Mailing List
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	Kernel Testers List
	<kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: 2.6.35-rc2-git2: Reported regressions from 2.6.34
Date: Fri, 11 Jun 2010 11:18:47 +0200	[thread overview]
Message-ID: <4C11FF77.1000101@fusionio.com> (raw)
In-Reply-To: <20100611085520.GA20218-X9Un+BFzKDI@public.gmane.org>

On 2010-06-11 10:55, Ingo Molnar wrote:
>>> Caused by the same blkiocg_update_io_add_stats() function. Bootlog and config 
>>> attached. Reproducible on that sha1 and with that config.
>>
>> I think I see it, the internal CFQ blkg groups are not properly
>> initialized... Will send a patch shortly.
> 
> Cool - can test it with a short turnaround, the bug is easy to reproduce.

Here's a nasty patch that should fix it. Not optimal, since we really
just want empty functions for these when cfq group scheduling is not
defined.

CC'ing the guilty parties to come up with a better patch that does NOT
involve ifdefs in cfq-iosched.c. We want blk-cgroup.[ch] fixed up.
And trimming the CC list a bit.


diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 5ff4f48..7067c97 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -879,7 +879,9 @@ cfq_group_service_tree_del(struct cfq_data *cfqd, struct cfq_group *cfqg)
 	if (!RB_EMPTY_NODE(&cfqg->rb_node))
 		cfq_rb_erase(&cfqg->rb_node, st);
 	cfqg->saved_workload_slice = 0;
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_dequeue_stats(&cfqg->blkg, 1);
+#endif
 }
 
 static inline unsigned int cfq_cfqq_slice_usage(struct cfq_queue *cfqq)
@@ -939,8 +941,10 @@ static void cfq_group_served(struct cfq_data *cfqd, struct cfq_group *cfqg,
 
 	cfq_log_cfqg(cfqd, cfqg, "served: vt=%llu min_vt=%llu", cfqg->vdisktime,
 					st->min_vdisktime);
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_timeslice_used(&cfqg->blkg, used_sl);
 	blkiocg_set_start_empty_time(&cfqg->blkg);
+#endif
 }
 
 #ifdef CONFIG_CFQ_GROUP_IOSCHED
@@ -1421,12 +1425,17 @@ static void cfq_reposition_rq_rb(struct cfq_queue *cfqq, struct request *rq)
 {
 	elv_rb_del(&cfqq->sort_list, rq);
 	cfqq->queued[rq_is_sync(rq)]--;
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_io_remove_stats(&(RQ_CFQG(rq))->blkg, rq_data_dir(rq),
 						rq_is_sync(rq));
+#endif
 	cfq_add_rq_rb(rq);
+
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_io_add_stats(&(RQ_CFQG(rq))->blkg,
 			&cfqq->cfqd->serving_group->blkg, rq_data_dir(rq),
 			rq_is_sync(rq));
+#endif
 }
 
 static struct request *
@@ -1482,8 +1491,10 @@ static void cfq_remove_request(struct request *rq)
 	cfq_del_rq_rb(rq);
 
 	cfqq->cfqd->rq_queued--;
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_io_remove_stats(&(RQ_CFQG(rq))->blkg, rq_data_dir(rq),
 						rq_is_sync(rq));
+#endif
 	if (rq_is_meta(rq)) {
 		WARN_ON(!cfqq->meta_pending);
 		cfqq->meta_pending--;
@@ -1518,8 +1529,10 @@ static void cfq_merged_request(struct request_queue *q, struct request *req,
 static void cfq_bio_merged(struct request_queue *q, struct request *req,
 				struct bio *bio)
 {
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_io_merged_stats(&(RQ_CFQG(req))->blkg, bio_data_dir(bio),
 					cfq_bio_sync(bio));
+#endif
 }
 
 static void
@@ -1539,8 +1552,10 @@ cfq_merged_requests(struct request_queue *q, struct request *rq,
 	if (cfqq->next_rq == next)
 		cfqq->next_rq = rq;
 	cfq_remove_request(next);
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_io_merged_stats(&(RQ_CFQG(rq))->blkg, rq_data_dir(next),
 					rq_is_sync(next));
+#endif
 }
 
 static int cfq_allow_merge(struct request_queue *q, struct request *rq,
@@ -1571,7 +1586,9 @@ static int cfq_allow_merge(struct request_queue *q, struct request *rq,
 static inline void cfq_del_timer(struct cfq_data *cfqd, struct cfq_queue *cfqq)
 {
 	del_timer(&cfqd->idle_slice_timer);
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_idle_time_stats(&cfqq->cfqg->blkg);
+#endif
 }
 
 static void __cfq_set_active_queue(struct cfq_data *cfqd,
@@ -1580,7 +1597,9 @@ static void __cfq_set_active_queue(struct cfq_data *cfqd,
 	if (cfqq) {
 		cfq_log_cfqq(cfqd, cfqq, "set_active wl_prio:%d wl_type:%d",
 				cfqd->serving_prio, cfqd->serving_type);
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 		blkiocg_update_avg_queue_size_stats(&cfqq->cfqg->blkg);
+#endif
 		cfqq->slice_start = 0;
 		cfqq->dispatch_start = jiffies;
 		cfqq->allocated_slice = 0;
@@ -1911,7 +1930,9 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd)
 	sl = cfqd->cfq_slice_idle;
 
 	mod_timer(&cfqd->idle_slice_timer, jiffies + sl);
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_set_idle_time_stats(&cfqq->cfqg->blkg);
+#endif
 	cfq_log_cfqq(cfqd, cfqq, "arm_idle: %lu", sl);
 }
 
@@ -1931,8 +1952,10 @@ static void cfq_dispatch_insert(struct request_queue *q, struct request *rq)
 	elv_dispatch_sort(q, rq);
 
 	cfqd->rq_in_flight[cfq_cfqq_sync(cfqq)]++;
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_dispatch_stats(&cfqq->cfqg->blkg, blk_rq_bytes(rq),
 					rq_data_dir(rq), rq_is_sync(rq));
+#endif
 }
 
 /*
@@ -3248,8 +3271,10 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
 				cfq_clear_cfqq_wait_request(cfqq);
 				__blk_run_queue(cfqd->queue);
 			} else {
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 				blkiocg_update_idle_time_stats(
 						&cfqq->cfqg->blkg);
+#endif
 				cfq_mark_cfqq_must_dispatch(cfqq);
 			}
 		}
@@ -3276,9 +3301,11 @@ static void cfq_insert_request(struct request_queue *q, struct request *rq)
 	rq_set_fifo_time(rq, jiffies + cfqd->cfq_fifo_expire[rq_is_sync(rq)]);
 	list_add_tail(&rq->queuelist, &cfqq->fifo);
 	cfq_add_rq_rb(rq);
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_io_add_stats(&(RQ_CFQG(rq))->blkg,
 			&cfqd->serving_group->blkg, rq_data_dir(rq),
 			rq_is_sync(rq));
+#endif
 	cfq_rq_enqueued(cfqd, cfqq, rq);
 }
 
@@ -3364,9 +3391,11 @@ static void cfq_completed_request(struct request_queue *q, struct request *rq)
 	WARN_ON(!cfqq->dispatched);
 	cfqd->rq_in_driver--;
 	cfqq->dispatched--;
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_update_completion_stats(&cfqq->cfqg->blkg, rq_start_time_ns(rq),
 			rq_io_start_time_ns(rq), rq_data_dir(rq),
 			rq_is_sync(rq));
+#endif
 
 	cfqd->rq_in_flight[cfq_cfqq_sync(cfqq)]--;
 
@@ -3730,7 +3759,9 @@ static void cfq_exit_queue(struct elevator_queue *e)
 
 	cfq_put_async_queues(cfqd);
 	cfq_release_cfq_groups(cfqd);
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
 	blkiocg_del_blkio_group(&cfqd->root_group.blkg);
+#endif
 
 	spin_unlock_irq(q->queue_lock);
 

-- 
Jens Axboe

  parent reply	other threads:[~2010-06-11  9:18 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-08 22:06 2.6.35-rc2-git2: Reported regressions from 2.6.34 Rafael J. Wysocki
2010-06-08 22:06 ` [Bug #16037] NULL Pointer dereference in __ir_input_register/budget_ci_attach Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16122] 2.6.35-rc1: WARNING at fs/fs-writeback.c:1142 __mark_inode_dirty+0x103/0x170 Rafael J. Wysocki
2010-06-09  2:52   ` Larry Finger
     [not found]     ` <4C0F01E4.1030507-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2010-06-09  8:51       ` Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16104] Radeon KMS does not start after merge of the new PM-Code Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16090] sysfs: cannot create duplicate filename Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16120] Oops: 0000 [#1] SMP, unable to handle kernel NULL pointer dereference at (null) Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16129] BUG: using smp_processor_id() in preemptible [00000000] code: jbd2/sda2 Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16092] Caught 64-bit read from uninitialized memory in memtype_rb_augment_cb Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16127] Boot freeze on HP Compaq nx6325 (RS482) with Radeon KMS Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16131] kernel BUG at fs/btrfs/extent-tree.c:4363 (btrfs_free_tree_block) Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16145] Unable to boot after "ACPI: Don't let acpi_pad needlessly mark TSC unstable" Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16161] [2.6.35-rc1 regression] sysfs: cannot create duplicate filename ... XVR-600 related? Rafael J. Wysocki
2010-06-09 12:39   ` Mikael Pettersson
2010-06-09 22:26     ` Rafael J. Wysocki
     [not found]       ` <201006100026.44762.rjw-KKrjLPT3xs0@public.gmane.org>
2010-06-10 10:09         ` Mikael Pettersson
     [not found]           ` <19472.47559.578732.941291-tgku4HJDRZih8lFjZTKsyTAV6s6igYVG@public.gmane.org>
2010-06-10 15:37             ` Rafael J. Wysocki
2010-06-12 16:15           ` Mikael Pettersson
2010-06-12 18:52             ` Rafael J. Wysocki
     [not found]               ` <201006122052.25204.rjw-KKrjLPT3xs0@public.gmane.org>
2010-06-18 20:10                 ` Jesse Barnes
2010-06-18 20:26                   ` David Miller
2010-06-18 20:40                     ` Brian Bloniarz
     [not found]                       ` <4C1BD9CC.5060300-FfUH/8kkONhWk0Htik3J/w@public.gmane.org>
2010-06-18 20:43                         ` Jesse Barnes
2010-06-18 21:01                         ` David Miller
     [not found]                           ` <20100618.140110.246534188.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2010-06-21  4:58                             ` Alex Chiang
2010-06-08 22:10 ` [Bug #16160] 2.6.35 Radeon KMS power management regression? Rafael J. Wysocki
2010-06-08 22:10 ` [Bug #16163] [2.6.35-rc1 Regression] i915: Commit cfecde causes VGA to stay off Rafael J. Wysocki
2010-06-09  1:53 ` 2.6.35-rc2-git2: Reported regressions from 2.6.34 Linus Torvalds
2010-06-09  2:26   ` Mauro Carvalho Chehab
     [not found]     ` <4C0EFBC1.5090401-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-09  9:00       ` Rafael J. Wysocki
2010-06-09  5:34   ` Ingo Molnar
2010-06-09  7:53   ` Jens Axboe
2010-06-09  8:55     ` Rafael J. Wysocki
2010-06-09  9:32     ` Ingo Molnar
2010-06-09  9:39       ` Jens Axboe
     [not found]     ` <4C0F4872.7090909-5c4llco8/ftWk0Htik3J/w@public.gmane.org>
2010-06-11  8:32       ` Ingo Molnar
2010-06-11  8:40         ` Jens Axboe
     [not found]           ` <4C11F661.3070604-5c4llco8/ftWk0Htik3J/w@public.gmane.org>
2010-06-11  8:55             ` Ingo Molnar
2010-06-11  9:07               ` Jens Axboe
     [not found]               ` <20100611085520.GA20218-X9Un+BFzKDI@public.gmane.org>
2010-06-11  9:18                 ` Jens Axboe [this message]
     [not found]                   ` <4C11FF77.1000101-5c4llco8/ftWk0Htik3J/w@public.gmane.org>
2010-06-11 19:07                     ` Vivek Goyal
     [not found]                       ` <20100611190714.GA20837-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-11 19:11                         ` Jens Axboe
     [not found]                           ` <4C128A75.3030501-5c4llco8/ftWk0Htik3J/w@public.gmane.org>
2010-06-11 19:48                             ` Vivek Goyal
     [not found]                               ` <20100611194849.GB20837-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-11 19:53                                 ` Jens Axboe
2010-06-12 14:30                                   ` Vivek Goyal
2010-06-09  9:06   ` Rafael J. Wysocki
2010-06-09 14:24     ` Linus Torvalds
     [not found]   ` <alpine.LFD.2.00.1006081814240.4506-GpypE611fyS63QaFMGN2QEqCLAeBNdoH@public.gmane.org>
2010-06-09  2:38     ` Carl Worth
2010-06-09  6:36     ` Eric Dumazet
2010-06-10 22:37     ` Alex Chiang
2010-06-09  9:02 ` Sedat Dilek
     [not found]   ` <AANLkTiksbL1qHg7Q0A-6TbX0uUrxra4jctUoIGVk5vnE-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-09  9:22     ` Rafael J. Wysocki
     [not found]       ` <201006091122.35304.rjw-KKrjLPT3xs0@public.gmane.org>
2010-06-16 20:42         ` Andrew Morton
     [not found]           ` <20100616134231.23ff30da.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2010-06-16 21:00             ` Sedat Dilek
2010-06-16 21:34               ` Andrew Morton

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=4C11FF77.1000101@fusionio.com \
    --to=jaxboe-5c4llco8/ftwk0htik3j/w@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=cworth-4HiWtcSh4w0dnm+yROfE0A@public.gmane.org \
    --cc=dpshah-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
    --cc=eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org \
    --cc=guijianfeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org \
    --cc=kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mingo-X9Un+BFzKDI@public.gmane.org \
    --cc=rjw-KKrjLPT3xs0@public.gmane.org \
    --cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.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 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).