On 10/20/2016 11:24 PM, Liang Li wrote:
quoted
Add a new feature which supports sending the page information with a
bitmap. The current implementation uses PFNs array, which is not very
efficient. Using bitmap can improve the performance of
inflating/deflating significantly
Why is it not efficient? How is using a bitmap more efficient? What kinds of
cases is the bitmap inefficient?
quoted
The page bitmap header will used to tell the host some information
about the page bitmap. e.g. the page size, page bitmap length and
start pfn.
Why did you choose to add these features to the structure? What benefits
do they add?
Could you describe your solution a bit here, and describe its strengths and
weaknesses?
Will elaborate the solution in V4.
quoted
/* Size of a PFN in the balloon interface. */ #define
VIRTIO_BALLOON_PFN_SHIFT 12 @@ -82,4 +83,22 @@ struct
virtio_balloon_stat {
__virtio64 val;
} __attribute__((packed));
+/* Page bitmap header structure */
+struct balloon_bmap_hdr {
+ /* Used to distinguish different request */
+ __virtio16 cmd;
+ /* Shift width of page in the bitmap */
+ __virtio16 page_shift;
+ /* flag used to identify different status */
+ __virtio16 flag;
+ /* Reserved */
+ __virtio16 reserved;
+ /* ID of the request */
+ __virtio64 req_id;
+ /* The pfn of 0 bit in the bitmap */
+ __virtio64 start_pfn;
+ /* The length of the bitmap, in bytes */
+ __virtio64 bmap_len;
+};
FWIW this is totally unreadable. Please do something like this:
quoted
+struct balloon_bmap_hdr {
+ __virtio16 cmd; /* Used to distinguish different ...
+ __virtio16 page_shift; /* Shift width of page in the bitmap */
+ __virtio16 flag; /* flag used to identify different...
+ __virtio16 reserved; /* Reserved */
+ __virtio64 req_id; /* ID of the request */
+ __virtio64 start_pfn; /* The pfn of 0 bit in the bitmap */
+ __virtio64 bmap_len; /* The length of the bitmap, in bytes */
+};
and please make an effort to add useful comments. "/* Reserved */"
seems like a waste of bytes to me.
OK. Maybe 'padding' is better than 'reserved' .
Thanks for your comments!
Liang