[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20140117110935.GA11953@localhost>
Date: Fri, 17 Jan 2014 19:09:35 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: Ming Lei <tom.leiming@...il.com>
Cc: Jeff Liu <jeff.liu@...cle.com>, LKML <linux-kernel@...r.kernel.org>
Subject: [percpu_counter] a9804b7b0: xfstests.generic.226.fail
Hi Ming Lei,
So this xfstests regression is also caused by the known bug in below
commit? Full dmesg is attached.
[ 449.390196] EXT4-fs (vdd): mounted filesystem with ordered data mode. Opts: acl,user_xattr
[ 456.122979] EXT4-fs (vdd): Delayed block allocation failed for inode 13 at logical offset 367137 with max blocks 2048 with error 28
[ 456.129367] EXT4-fs (vdd): This should not happen!! Data will be lost
[ 456.129367]
[ 456.130985] EXT4-fs (vdd): Total free blocks count 0
[ 456.132330] EXT4-fs (vdd): Free/Dirty block details
[ 456.133325] EXT4-fs (vdd): free_blocks=212443
[ 456.137180] EXT4-fs (vdd): dirty_blocks=208347
[ 456.138048] EXT4-fs (vdd): Block reservation details
[ 456.139083] EXT4-fs (vdd): i_reserved_data_blocks=9222
[ 456.140076] EXT4-fs (vdd): i_reserved_meta_blocks=1111
[ 456.141047] EXT4-fs (vdd): i_allocated_meta_blocks=0
[ 460.182192] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: acl,user_xattr
a9804b7b0aa2bf65b7cd1979306cbac4dcb6974f is the first bad commit
commit a9804b7b0aa2bf65b7cd1979306cbac4dcb6974f
Author: Ming Lei <tom.leiming@...il.com>
AuthorDate: Wed Jan 15 16:54:26 2014 +1100
Commit: Stephen Rothwell <sfr@...b.auug.org.au>
CommitDate: Wed Jan 15 16:54:26 2014 +1100
lib/percpu_counter.c: fix __percpu_counter_add()
__percpu_counter_add() may be called in softirq/hardirq handler (such as,
blk_mq_queue_exit() is typically called in hardirq/softirq handler), so we
need to call this_cpu_add()(irq safe helper) to update percpu counter,
otherwise counts may be lost.
The patch fixes problem that 'rmmod null_blk' hangs in blk_cleanup_queue()
because of miscounting of request_queue->mq_usage_counter.
This patch is the v1 of previous one of "lib/percpu_counter.c:
disable local irq when updating percpu couter", and takes Andrew's
approach which may be more efficient for ARCHs(x86, s390) that
have optimized this_cpu_add().
Signed-off-by: Ming Lei <tom.leiming@...il.com>
Cc: Paul Gortmaker <paul.gortmaker@...driver.com>
Cc: Shaohua Li <shli@...ionio.com>
Cc: Jens Axboe <axboe@...nel.dk>
Cc: Fan Du <fan.du@...driver.com>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
lib/percpu_counter.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
View attachment ".dmesg" of type "text/plain" (68076 bytes)
Powered by blists - more mailing lists