search for: virtio_balloon_page_chunk

Displaying 20 results from an estimated 30 matches for "virtio_balloon_page_chunk".

2017 May 07
2
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...bit address and 32 bit > size. > > If size < 4g is not a significant limitation, why not just use that to pass > address/size in a standard s/g list, possibly using INDIRECT? OK, I see your point, thanks. Post the two options here for an analysis: Option1 (what we have now): struct virtio_balloon_page_chunk { __le64 chunk_num; struct virtio_balloon_page_chunk_entry entry[]; }; Option2: struct virtio_balloon_page_chunk { __le64 chunk_num; struct scatterlist entry[]; }; I don't have an issue to change it to Option2, but I would prefer Option1, because I think there i...
2017 May 07
2
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...bit address and 32 bit > size. > > If size < 4g is not a significant limitation, why not just use that to pass > address/size in a standard s/g list, possibly using INDIRECT? OK, I see your point, thanks. Post the two options here for an analysis: Option1 (what we have now): struct virtio_balloon_page_chunk { __le64 chunk_num; struct virtio_balloon_page_chunk_entry entry[]; }; Option2: struct virtio_balloon_page_chunk { __le64 chunk_num; struct scatterlist entry[]; }; I don't have an issue to change it to Option2, but I would prefer Option1, because I think there i...
2017 Apr 13
0
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...e *vdev; - struct virtqueue *inflate_vq, *deflate_vq, *stats_vq; + struct virtqueue *inflate_vq, *deflate_vq, *stats_vq, *miscq; /* The balloon servicing is delegated to a freezable workqueue. */ struct work_struct update_balloon_stats_work; @@ -94,6 +95,19 @@ struct virtio_balloon { struct virtio_balloon_page_chunk_hdr *balloon_page_chunk_hdr; struct virtio_balloon_page_chunk *balloon_page_chunk; + /* + * Buffer for PAGE_CHUNK_TYPE_UNUSED: + * virtio_balloon_miscq_hdr + + * virtio_balloon_page_chunk_hdr + + * virtio_balloon_page_chunk * MAX_PAGE_CHUNKS + */ + struct virtio_balloon_miscq_hdr *miscq_ou...
2017 Apr 13
10
[PATCH v9 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
This patch series implements two optimizations: 1) transfer pages in chuncks between the guest and host; 2) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. Changes: v8->v9: 1) Split the two new features, VIRTIO_BALLOON_F_BALLOON_CHUNKS and VIRTIO_BALLOON_F_MISC_VQ, which were mixed together in the previous implementation; 2) Simpler
2017 Apr 13
10
[PATCH v9 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
This patch series implements two optimizations: 1) transfer pages in chuncks between the guest and host; 2) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. Changes: v8->v9: 1) Split the two new features, VIRTIO_BALLOON_F_BALLOON_CHUNKS and VIRTIO_BALLOON_F_MISC_VQ, which were mixed together in the previous implementation; 2) Simpler
2017 Apr 14
2
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...t; Types of page to chunk are treated differently. Different types of page > chunks are sent to the host via different protocols. > > 1) PAGE_CHUNK_TYPE_BALLOON: Ballooned (i.e. inflated/deflated) pages > to chunk. For the ballooned type, it uses the basic chunk msg format: > > virtio_balloon_page_chunk_hdr + > virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > > 2) PAGE_CHUNK_TYPE_UNUSED: unused pages to chunk. It uses this miscq msg > format: > miscq_hdr + > virtio_balloon_page_chunk_hdr + > virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > > The chunk msg is actually the pay...
2017 Apr 14
2
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...t; Types of page to chunk are treated differently. Different types of page > chunks are sent to the host via different protocols. > > 1) PAGE_CHUNK_TYPE_BALLOON: Ballooned (i.e. inflated/deflated) pages > to chunk. For the ballooned type, it uses the basic chunk msg format: > > virtio_balloon_page_chunk_hdr + > virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > > 2) PAGE_CHUNK_TYPE_UNUSED: unused pages to chunk. It uses this miscq msg > format: > miscq_hdr + > virtio_balloon_page_chunk_hdr + > virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > > The chunk msg is actually the pay...
2017 Apr 13
3
[PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...vdev; > struct virtqueue *inflate_vq, *deflate_vq, *stats_vq; > @@ -78,6 +86,32 @@ struct virtio_balloon { > /* Synchronize access/update to this struct virtio_balloon elements */ > struct mutex balloon_lock; > > + /* > + * Buffer for PAGE_CHUNK_TYPE_BALLOON: > + * virtio_balloon_page_chunk_hdr + > + * virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > + */ > + struct virtio_balloon_page_chunk_hdr *balloon_page_chunk_hdr; > + struct virtio_balloon_page_chunk *balloon_page_chunk; > + > + /* Bitmap used to record pages */ > + unsigned long *page_bmap[PAGE_BMAP_COUNT_MA...
2017 Apr 13
3
[PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...vdev; > struct virtqueue *inflate_vq, *deflate_vq, *stats_vq; > @@ -78,6 +86,32 @@ struct virtio_balloon { > /* Synchronize access/update to this struct virtio_balloon elements */ > struct mutex balloon_lock; > > + /* > + * Buffer for PAGE_CHUNK_TYPE_BALLOON: > + * virtio_balloon_page_chunk_hdr + > + * virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > + */ > + struct virtio_balloon_page_chunk_hdr *balloon_page_chunk_hdr; > + struct virtio_balloon_page_chunk *balloon_page_chunk; > + > + /* Bitmap used to record pages */ > + unsigned long *page_bmap[PAGE_BMAP_COUNT_MA...
2017 Apr 14
0
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...uot; is added in another patch. Types of page to chunk are treated differently. Different types of page chunks are sent to the host via different protocols. 1) PAGE_CHUNK_TYPE_BALLOON: Ballooned (i.e. inflated/deflated) pages to chunk. For the ballooned type, it uses the basic chunk msg format: virtio_balloon_page_chunk_hdr + virtio_balloon_page_chunk * MAX_PAGE_CHUNKS 2) PAGE_CHUNK_TYPE_UNUSED: unused pages to chunk. It uses this miscq msg format: miscq_hdr + virtio_balloon_page_chunk_hdr + virtio_balloon_page_chunk * MAX_PAGE_CHUNKS The chunk msg is actually the payload of the miscq msg. >> +#define M...
2017 Apr 13
0
[PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...irtio_balloon { struct virtio_device *vdev; struct virtqueue *inflate_vq, *deflate_vq, *stats_vq; @@ -78,6 +86,32 @@ struct virtio_balloon { /* Synchronize access/update to this struct virtio_balloon elements */ struct mutex balloon_lock; + /* + * Buffer for PAGE_CHUNK_TYPE_BALLOON: + * virtio_balloon_page_chunk_hdr + + * virtio_balloon_page_chunk * MAX_PAGE_CHUNKS + */ + struct virtio_balloon_page_chunk_hdr *balloon_page_chunk_hdr; + struct virtio_balloon_page_chunk *balloon_page_chunk; + + /* Bitmap used to record pages */ + unsigned long *page_bmap[PAGE_BMAP_COUNT_MAX]; + /* Number of the allocated pa...
2017 Apr 17
0
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...unk are treated differently. Different types of page >> chunks are sent to the host via different protocols. >> >> 1) PAGE_CHUNK_TYPE_BALLOON: Ballooned (i.e. inflated/deflated) pages >> to chunk. For the ballooned type, it uses the basic chunk msg format: >> >> virtio_balloon_page_chunk_hdr + >> virtio_balloon_page_chunk * MAX_PAGE_CHUNKS >> >> 2) PAGE_CHUNK_TYPE_UNUSED: unused pages to chunk. It uses this miscq msg >> format: >> miscq_hdr + >> virtio_balloon_page_chunk_hdr + >> virtio_balloon_page_chunk * MAX_PAGE_CHUNKS >> >>...
2017 Apr 13
2
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...nflate_vq, *deflate_vq, *stats_vq; > + struct virtqueue *inflate_vq, *deflate_vq, *stats_vq, *miscq; > > /* The balloon servicing is delegated to a freezable workqueue. */ > struct work_struct update_balloon_stats_work; > @@ -94,6 +95,19 @@ struct virtio_balloon { > struct virtio_balloon_page_chunk_hdr *balloon_page_chunk_hdr; > struct virtio_balloon_page_chunk *balloon_page_chunk; > > + /* > + * Buffer for PAGE_CHUNK_TYPE_UNUSED: > + * virtio_balloon_miscq_hdr + > + * virtio_balloon_page_chunk_hdr + > + * virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > + */ &gt...
2017 Apr 13
2
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...nflate_vq, *deflate_vq, *stats_vq; > + struct virtqueue *inflate_vq, *deflate_vq, *stats_vq, *miscq; > > /* The balloon servicing is delegated to a freezable workqueue. */ > struct work_struct update_balloon_stats_work; > @@ -94,6 +95,19 @@ struct virtio_balloon { > struct virtio_balloon_page_chunk_hdr *balloon_page_chunk_hdr; > struct virtio_balloon_page_chunk *balloon_page_chunk; > > + /* > + * Buffer for PAGE_CHUNK_TYPE_UNUSED: > + * virtio_balloon_miscq_hdr + > + * virtio_balloon_page_chunk_hdr + > + * virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > + */ &gt...
2017 May 04
8
[PATCH v10 0/6] Extend virtio-balloon for fast (de)inflating & fast live migration
This patch series implements the follow two things: 1) Optimization of balloon page transfer: instead of transferring balloon pages to host one by one, the new mechanism transfers them in chunks. 2) A mechanism to report info of guest unused pages: the pages have been unused at some time between when host sent command and when guest reported them. Host uses that by tracking memory changes and
2017 May 04
8
[PATCH v10 0/6] Extend virtio-balloon for fast (de)inflating & fast live migration
This patch series implements the follow two things: 1) Optimization of balloon page transfer: instead of transferring balloon pages to host one by one, the new mechanism transfers them in chunks. 2) A mechanism to report info of guest unused pages: the pages have been unused at some time between when host sent command and when guest reported them. Host uses that by tracking memory changes and
2017 Apr 26
2
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...ifferent types of > >> page chunks are sent to the host via different protocols. > >> > >> 1) PAGE_CHUNK_TYPE_BALLOON: Ballooned (i.e. inflated/deflated) pages > >> to chunk. For the ballooned type, it uses the basic chunk msg format: > >> > >> virtio_balloon_page_chunk_hdr + > >> virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > >> > >> 2) PAGE_CHUNK_TYPE_UNUSED: unused pages to chunk. It uses this miscq > >> msg > >> format: > >> miscq_hdr + > >> virtio_balloon_page_chunk_hdr + > >> virtio_ballo...
2017 Apr 26
2
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...ifferent types of > >> page chunks are sent to the host via different protocols. > >> > >> 1) PAGE_CHUNK_TYPE_BALLOON: Ballooned (i.e. inflated/deflated) pages > >> to chunk. For the ballooned type, it uses the basic chunk msg format: > >> > >> virtio_balloon_page_chunk_hdr + > >> virtio_balloon_page_chunk * MAX_PAGE_CHUNKS > >> > >> 2) PAGE_CHUNK_TYPE_UNUSED: unused pages to chunk. It uses this miscq > >> msg > >> format: > >> miscq_hdr + > >> virtio_balloon_page_chunk_hdr + > >> virtio_ballo...
2017 May 08
0
[virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS
...gt; > > > If size < 4g is not a significant limitation, why not just use that to pass > > address/size in a standard s/g list, possibly using INDIRECT? > > OK, I see your point, thanks. Post the two options here for an analysis: > Option1 (what we have now): > struct virtio_balloon_page_chunk { > __le64 chunk_num; > struct virtio_balloon_page_chunk_entry entry[]; > }; > Option2: > struct virtio_balloon_page_chunk { > __le64 chunk_num; > struct scatterlist entry[]; > }; This isn't what I meant really :) I meant vring_desc. &gt...
2017 May 04
0
[PATCH v10 3/6] virtio-balloon: VIRTIO_BALLOON_F_PAGE_CHUNKS
...ARM_DESC(oom_pages, "pages to free on OOM"); @@ -51,6 +65,11 @@ MODULE_PARM_DESC(oom_pages, "pages to free on OOM"); static struct vfsmount *balloon_mnt; #endif +/* Maximum number of page chunks */ +#define VIRTIO_BALLOON_MAX_PAGE_CHUNKS ((8 * PAGE_SIZE - \ + sizeof(struct virtio_balloon_page_chunk)) / \ + sizeof(struct virtio_balloon_page_chunk_entry)) + struct virtio_balloon { struct virtio_device *vdev; struct virtqueue *inflate_vq, *deflate_vq, *stats_vq; @@ -79,6 +98,12 @@ struct virtio_balloon { /* Synchronize access/update to this struct virtio_balloon elements */ struct mut...