aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_int.h
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2014-04-01 17:53:30 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2014-07-10 12:35:10 -0400
commite37d2438d8e5e4c1225cf94d45347fa207835447 (patch)
treebd1756066196e9922c476f75759f4846455c2c63 /drivers/block/drbd/drbd_int.h
parenta8ba0d606933c34c13ea971491a7e0dfa50208ef (diff)
drbd: track meta data IO intent, start and submit time
For diagnostic purposes, track intent, start time and latest submit time of meta data IO. Move separate members from struct drbd_device into the embeded struct drbd_md_io. s/md_io_(page|in_use)/md_io.\1/ Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_int.h')
-rw-r--r--drivers/block/drbd/drbd_int.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index d85f43c9ef56..3f8281bbea53 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -542,6 +542,11 @@ struct drbd_backing_dev {
542}; 542};
543 543
544struct drbd_md_io { 544struct drbd_md_io {
545 struct page *page;
546 unsigned long start_jif; /* last call to drbd_md_get_buffer */
547 unsigned long submit_jif; /* last _drbd_md_sync_page_io() submit */
548 const char *current_use;
549 atomic_t in_use;
545 unsigned int done; 550 unsigned int done;
546 int error; 551 int error;
547}; 552};
@@ -795,9 +800,7 @@ struct drbd_device {
795 atomic_t pp_in_use; /* allocated from page pool */ 800 atomic_t pp_in_use; /* allocated from page pool */
796 atomic_t pp_in_use_by_net; /* sendpage()d, still referenced by tcp */ 801 atomic_t pp_in_use_by_net; /* sendpage()d, still referenced by tcp */
797 wait_queue_head_t ee_wait; 802 wait_queue_head_t ee_wait;
798 struct page *md_io_page; /* one page buffer for md_io */
799 struct drbd_md_io md_io; 803 struct drbd_md_io md_io;
800 atomic_t md_io_in_use; /* protects the md_io, md_io_page and md_io_tmpp */
801 spinlock_t al_lock; 804 spinlock_t al_lock;
802 wait_queue_head_t al_wait; 805 wait_queue_head_t al_wait;
803 struct lru_cache *act_log; /* activity log */ 806 struct lru_cache *act_log; /* activity log */
@@ -1336,7 +1339,7 @@ extern void resume_next_sg(struct drbd_device *device);
1336extern void suspend_other_sg(struct drbd_device *device); 1339extern void suspend_other_sg(struct drbd_device *device);
1337extern int drbd_resync_finished(struct drbd_device *device); 1340extern int drbd_resync_finished(struct drbd_device *device);
1338/* maybe rather drbd_main.c ? */ 1341/* maybe rather drbd_main.c ? */
1339extern void *drbd_md_get_buffer(struct drbd_device *device); 1342extern void *drbd_md_get_buffer(struct drbd_device *device, const char *intent);
1340extern void drbd_md_put_buffer(struct drbd_device *device); 1343extern void drbd_md_put_buffer(struct drbd_device *device);
1341extern int drbd_md_sync_page_io(struct drbd_device *device, 1344extern int drbd_md_sync_page_io(struct drbd_device *device,
1342 struct drbd_backing_dev *bdev, sector_t sector, int rw); 1345 struct drbd_backing_dev *bdev, sector_t sector, int rw);