aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShaohua Li <shli@fb.com>2016-11-18 12:44:08 -0500
committerShaohua Li <shli@fb.com>2016-11-18 12:47:57 -0500
commit504634f60f463e73e7d58c6810a04437da942dba (patch)
treeabdc28fb557c2158f005a6f271c60c983562c43e
parent578b54ade8a5e04df6edc14cb68ad0f6f491a1a1 (diff)
md: add blktrace event for writes to superblock
superblock write is an expensive operation. With raid5-cache, it can be called regularly. Tracing to help performance debug. Signed-off-by: Shaohua Li <shli@fb.com> Cc: NeilBrown <neilb@suse.com>
-rw-r--r--drivers/md/md.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 1f1c7f007b68..d3cef771e422 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -64,6 +64,7 @@
64#include <linux/raid/md_p.h> 64#include <linux/raid/md_p.h>
65#include <linux/raid/md_u.h> 65#include <linux/raid/md_u.h>
66#include <linux/slab.h> 66#include <linux/slab.h>
67#include <trace/events/block.h>
67#include "md.h" 68#include "md.h"
68#include "bitmap.h" 69#include "bitmap.h"
69#include "md-cluster.h" 70#include "md-cluster.h"
@@ -2403,6 +2404,8 @@ repeat:
2403 pr_debug("md: updating %s RAID superblock on device (in sync %d)\n", 2404 pr_debug("md: updating %s RAID superblock on device (in sync %d)\n",
2404 mdname(mddev), mddev->in_sync); 2405 mdname(mddev), mddev->in_sync);
2405 2406
2407 if (mddev->queue)
2408 blk_add_trace_msg(mddev->queue, "md md_update_sb");
2406 bitmap_update_sb(mddev->bitmap); 2409 bitmap_update_sb(mddev->bitmap);
2407 rdev_for_each(rdev, mddev) { 2410 rdev_for_each(rdev, mddev) {
2408 char b[BDEVNAME_SIZE]; 2411 char b[BDEVNAME_SIZE];