[PATCH 5/5] xen-blkfront: remove frame list from blk_shadow

2013-03-18 Thread Roger Pau Monne
We already have the frame (pfn of the grant page) stored inside struct
grant, so there's no need to keep an aditional list of mapped frames
for a specific request. This reduces memory usage in blkfront.

Signed-off-by: Roger Pau Monné 
Cc: Konrad Rzeszutek Wilk 
Cc: xen-de...@lists.xen.org
---
 drivers/block/xen-blkfront.c |6 +-
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index c640433..a894f88 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -74,7 +74,6 @@ struct grant {
 struct blk_shadow {
struct blkif_request req;
struct request *request;
-   unsigned long frame[BLKIF_MAX_SEGMENTS_PER_REQUEST];
struct grant *grants_used[BLKIF_MAX_SEGMENTS_PER_REQUEST];
 };
 
@@ -356,7 +355,6 @@ static int blkif_ioctl(struct block_device *bdev, fmode_t 
mode,
 static int blkif_queue_request(struct request *req)
 {
struct blkfront_info *info = req->rq_disk->private_data;
-   unsigned long buffer_mfn;
struct blkif_request *ring_req;
unsigned long id;
unsigned int fsect, lsect;
@@ -434,7 +432,6 @@ static int blkif_queue_request(struct request *req)
 
gnt_list_entry = get_grant(_head, info);
ref = gnt_list_entry->gref;
-   buffer_mfn = pfn_to_mfn(gnt_list_entry->pfn);
 
info->shadow[id].grants_used[i] = gnt_list_entry;
 
@@ -465,7 +462,6 @@ static int blkif_queue_request(struct request *req)
kunmap_atomic(shared_data);
}
 
-   info->shadow[id].frame[i] = mfn_to_pfn(buffer_mfn);
ring_req->u.rw.seg[i] =
(struct blkif_request_segment) {
.gref   = ref,
@@ -1268,7 +1264,7 @@ static int blkif_recover(struct blkfront_info *info)
gnttab_grant_foreign_access_ref(
req->u.rw.seg[j].gref,
info->xbdev->otherend_id,
-   
pfn_to_mfn(info->shadow[req->u.rw.id].frame[j]),
+   pfn_to_mfn(copy[i].grants_used[j]->pfn),
0);
}
info->shadow[req->u.rw.id].req = *req;
-- 
1.7.7.5 (Apple Git-26)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 5/5] xen-blkfront: remove frame list from blk_shadow

2013-03-18 Thread Roger Pau Monne
We already have the frame (pfn of the grant page) stored inside struct
grant, so there's no need to keep an aditional list of mapped frames
for a specific request. This reduces memory usage in blkfront.

Signed-off-by: Roger Pau Monné roger@citrix.com
Cc: Konrad Rzeszutek Wilk konrad.w...@oracle.com
Cc: xen-de...@lists.xen.org
---
 drivers/block/xen-blkfront.c |6 +-
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index c640433..a894f88 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -74,7 +74,6 @@ struct grant {
 struct blk_shadow {
struct blkif_request req;
struct request *request;
-   unsigned long frame[BLKIF_MAX_SEGMENTS_PER_REQUEST];
struct grant *grants_used[BLKIF_MAX_SEGMENTS_PER_REQUEST];
 };
 
@@ -356,7 +355,6 @@ static int blkif_ioctl(struct block_device *bdev, fmode_t 
mode,
 static int blkif_queue_request(struct request *req)
 {
struct blkfront_info *info = req-rq_disk-private_data;
-   unsigned long buffer_mfn;
struct blkif_request *ring_req;
unsigned long id;
unsigned int fsect, lsect;
@@ -434,7 +432,6 @@ static int blkif_queue_request(struct request *req)
 
gnt_list_entry = get_grant(gref_head, info);
ref = gnt_list_entry-gref;
-   buffer_mfn = pfn_to_mfn(gnt_list_entry-pfn);
 
info-shadow[id].grants_used[i] = gnt_list_entry;
 
@@ -465,7 +462,6 @@ static int blkif_queue_request(struct request *req)
kunmap_atomic(shared_data);
}
 
-   info-shadow[id].frame[i] = mfn_to_pfn(buffer_mfn);
ring_req-u.rw.seg[i] =
(struct blkif_request_segment) {
.gref   = ref,
@@ -1268,7 +1264,7 @@ static int blkif_recover(struct blkfront_info *info)
gnttab_grant_foreign_access_ref(
req-u.rw.seg[j].gref,
info-xbdev-otherend_id,
-   
pfn_to_mfn(info-shadow[req-u.rw.id].frame[j]),
+   pfn_to_mfn(copy[i].grants_used[j]-pfn),
0);
}
info-shadow[req-u.rw.id].req = *req;
-- 
1.7.7.5 (Apple Git-26)

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/