Skip to contentSkip to conversation

Enable /proc/diskstats for /dev/ramX

PATCH In review Ryo Onodera 1 participant 4 messages Nov 19, 2012 – Dec 23, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Enable /proc/diskstats for /dev/ramX

---
 drivers/block/brd.c |    7 +++++++
 1 file changed, 7 insertions(+)
drivers/block/brd.c +7 -0
index 531ceb3..181b2d7 100644
@@ -332,6 +332,7 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
 	sector_t sector;
 	int i;
 	int err = -EIO;
+	int cpu;
 
 	sector = bio->bi_sector;
 	if (sector + (bio->bi_size >> SECTOR_SHIFT) >
@@ -348,6 +349,12 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
 	if (rw == READA)
 		rw = READ;
 
+	cpu = part_stat_lock();
+	part_stat_inc(cpu, &brd->brd_disk->part0, ios[rw]);
+	part_stat_add(cpu, &brd->brd_disk->part0, sectors[rw],
+					bio_sectors(bio));
+	part_stat_unlock();
+
 	bio_for_each_segment(bvec, bio, i) {
 		unsigned int len = bvec->bv_len;
 		err = brd_do_bvec(brd, bvec->bv_page, len,
Signature · 1 line
1.7.9.5
#1 lore raw

Hi,

I'm Ryo Onodera. I created this very tiny patch to enable /proc/diskstats for /dev/ramX.

I'm contacting Nick Piggin as the maintainer of ramdisk ram block.

This is my first patch to the Linux kernel. Sorry if this is not the expected way of submitting patches.

Regards

Ryo Onodera

Quoted 35 lines · Ryo Onodera
---
 drivers/block/brd.c |    7 +++++++
 1 file changed, 7 insertions(+)
drivers/block/brd.c +7 -1
index 531ceb3..181b2d7 100644
@@ -332,6 +332,7 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
        sector_t sector;
        int i;
        int err = -EIO;
+       int cpu;
 
        sector = bio->bi_sector;
        if (sector + (bio->bi_size >> SECTOR_SHIFT) >
@@ -348,6 +349,12 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
        if (rw == READA)
                rw = READ;
 
+       cpu = part_stat_lock();
+       part_stat_inc(cpu, &brd->brd_disk->part0, ios[rw]);
+       part_stat_add(cpu, &brd->brd_disk->part0, sectors[rw],
+                                       bio_sectors(bio));
+       part_stat_unlock();
+
        bio_for_each_segment(bvec, bio, i) {
                unsigned int len = bvec->bv_len;
                err = brd_do_bvec(brd, bvec->bv_page, len,
--

1.7.9.5

#2 lore raw

PATCH 1/1 brd: enable diskstats

---
 drivers/block/brd.c |    7 +++++++
 1 file changed, 7 insertions(+)
drivers/block/brd.c +7 -0
index 531ceb3..181b2d7 100644
@@ -332,6 +332,7 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
 	sector_t sector;
 	int i;
 	int err = -EIO;
+	int cpu;
 
 	sector = bio->bi_sector;
 	if (sector + (bio->bi_size >> SECTOR_SHIFT) >
@@ -348,6 +349,12 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
 	if (rw == READA)
 		rw = READ;
 
+	cpu = part_stat_lock();
+	part_stat_inc(cpu, &brd->brd_disk->part0, ios[rw]);
+	part_stat_add(cpu, &brd->brd_disk->part0, sectors[rw],
+					bio_sectors(bio));
+	part_stat_unlock();
+
 	bio_for_each_segment(bvec, bio, i) {
 		unsigned int len = bvec->bv_len;
 		err = brd_do_bvec(brd, bvec->bv_page, len,
Signature · 1 line
1.7.9.5
Quoted 50 lines · Ryo Onodera

Hi,

I'm Ryo Onodera. I created this very tiny patch to enable /proc/diskstats for /dev/ramX.

I'm contacting Nick Piggin as the maintainer of ramdisk ram block.

This is my first patch to the Linux kernel. Sorry if this is not the expected way of submitting patches.

Regards

Ryo Onodera

Quoted 35 lines · Ryo Onodera
---
 drivers/block/brd.c |    7 +++++++
 1 file changed, 7 insertions(+)
drivers/block/brd.c +7 -1
index 531ceb3..181b2d7 100644
@@ -332,6 +332,7 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
        sector_t sector;
        int i;
        int err = -EIO;
+       int cpu;
 
        sector = bio->bi_sector;
        if (sector + (bio->bi_size >> SECTOR_SHIFT) >
@@ -348,6 +349,12 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
        if (rw == READA)
                rw = READ;
 
+       cpu = part_stat_lock();
+       part_stat_inc(cpu, &brd->brd_disk->part0, ios[rw]);
+       part_stat_add(cpu, &brd->brd_disk->part0, sectors[rw],
+                                       bio_sectors(bio));
+       part_stat_unlock();
+
        bio_for_each_segment(bvec, bio, i) {
                unsigned int len = bvec->bv_len;
                err = brd_do_bvec(brd, bvec->bv_page, len,
--

1.7.9.5

#3 lore raw

Re: [PATCH] brd: enable diskstats

Hi,

I'm Ryo Onodera.

This is a resend for my earlier patch. Because I got no reply, I've added other people as CC, picking from the commit history of the relevant file.

I created this very tiny patch to enable /proc/diskstats for /dev/ramX.

I'm contacting Nick Piggin as the maintainer of ramdisk ram block. As mentioned above, I'm also contacting some related people to get more attention.

This is my first patch to the Linux kernel. Sorry if this is not the expected way of submitting patches.

Regards

Quoted 30 lines · Ryo Onodera
---
 drivers/block/brd.c |    7 +++++++
 1 file changed, 7 insertions(+)
drivers/block/brd.c +7 -0
index 531ceb3..181b2d7 100644
@@ -332,6 +332,7 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
 	sector_t sector;
 	int i;
 	int err = -EIO;
+	int cpu;
 
 	sector = bio->bi_sector;
 	if (sector + (bio->bi_size >> SECTOR_SHIFT) >
@@ -348,6 +349,12 @@ static void brd_make_request(struct request_queue *q, struct bio *bio)
 	if (rw == READA)
 		rw = READ;
 
+	cpu = part_stat_lock();
+	part_stat_inc(cpu, &brd->brd_disk->part0, ios[rw]);
+	part_stat_add(cpu, &brd->brd_disk->part0, sectors[rw],
+					bio_sectors(bio));
+	part_stat_unlock();
+
 	bio_for_each_segment(bvec, bio, i) {
 		unsigned int len = bvec->bv_len;
 		err = brd_do_bvec(brd, bvec->bv_page, len,