Displaying 14 results from an estimated 14 matches for "report_free_page_cmd_id".
2017 Nov 17
3
[virtio-dev] Re: [PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...; ---
>>>
>>> +
>>> +static void report_free_page(struct work_struct *work)
>>> +{
>>> + struct virtio_balloon *vb;
>>> +
>>> + vb = container_of(work, struct virtio_balloon,
>>> report_free_page_work);
>>> + report_free_page_cmd_id(vb);
>>> + walk_free_mem_block(vb, 0, &virtio_balloon_send_free_pages);
>>> + /*
>>> + * The last few free page blocks that were added may not reach the
>>> + * batch size, but need a kick to notify the device to handle
>>> them.
>&...
2017 Nov 17
3
[virtio-dev] Re: [PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...; ---
>>>
>>> +
>>> +static void report_free_page(struct work_struct *work)
>>> +{
>>> + struct virtio_balloon *vb;
>>> +
>>> + vb = container_of(work, struct virtio_balloon,
>>> report_free_page_work);
>>> + report_free_page_cmd_id(vb);
>>> + walk_free_mem_block(vb, 0, &virtio_balloon_send_free_pages);
>>> + /*
>>> + * The last few free page blocks that were added may not reach the
>>> + * batch size, but need a kick to notify the device to handle
>>> them.
>&...
2017 Nov 15
3
[PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
..._vqs(vb->vdev, nvqs, vqs, callbacks, names, NULL);
> + if (vb->report_free_page_stop)
> + return;
> + vb->report_free_page_stop = true;
> +
> + virtio_cwrite(vb->vdev, struct virtio_balloon_config, guest2host_cmd,
> + &cmd);
> +}
> +
> +static void report_free_page_cmd_id(struct virtio_balloon *vb)
> +{
> + struct scatterlist sg;
> + int err;
> +
> + virtio_cread(vb->vdev, struct virtio_balloon_config, free_page_cmd_id,
> + &vb->free_page_cmd_id);
> + sg_init_one(&sg, &vb->free_page_cmd_id, sizeof(uint32_t));
> + er...
2017 Nov 15
3
[PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
..._vqs(vb->vdev, nvqs, vqs, callbacks, names, NULL);
> + if (vb->report_free_page_stop)
> + return;
> + vb->report_free_page_stop = true;
> +
> + virtio_cwrite(vb->vdev, struct virtio_balloon_config, guest2host_cmd,
> + &cmd);
> +}
> +
> +static void report_free_page_cmd_id(struct virtio_balloon *vb)
> +{
> + struct scatterlist sg;
> + int err;
> +
> + virtio_cread(vb->vdev, struct virtio_balloon_config, free_page_cmd_id,
> + &vb->free_page_cmd_id);
> + sg_init_one(&sg, &vb->free_page_cmd_id, sizeof(uint32_t));
> + er...
2017 Nov 18
1
[virtio-dev] Re: [PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...; +static void report_free_page(struct work_struct *work) {
> > > > > + struct virtio_balloon *vb;
> > > > > +
> > > > > + vb = container_of(work, struct virtio_balloon,
> > > > > report_free_page_work);
> > > > > + report_free_page_cmd_id(vb);
> > > > > + walk_free_mem_block(vb, 0, &virtio_balloon_send_free_pages);
> > > > > + /*
> > > > > + * The last few free page blocks that were added may not reach the
> > > > > + * batch size, but need a kick to notif...
2017 Nov 18
1
[virtio-dev] Re: [PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...; +static void report_free_page(struct work_struct *work) {
> > > > > + struct virtio_balloon *vb;
> > > > > +
> > > > > + vb = container_of(work, struct virtio_balloon,
> > > > > report_free_page_work);
> > > > > + report_free_page_cmd_id(vb);
> > > > > + walk_free_mem_block(vb, 0, &virtio_balloon_send_free_pages);
> > > > > + /*
> > > > > + * The last few free page blocks that were added may not reach the
> > > > > + * batch size, but need a kick to notif...
2017 Nov 03
0
[PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...LOON_F_STATS_VQ) ? 3 : 2;
- err = virtio_find_vqs(vb->vdev, nvqs, vqs, callbacks, names, NULL);
+ if (vb->report_free_page_stop)
+ return;
+ vb->report_free_page_stop = true;
+
+ virtio_cwrite(vb->vdev, struct virtio_balloon_config, guest2host_cmd,
+ &cmd);
+}
+
+static void report_free_page_cmd_id(struct virtio_balloon *vb)
+{
+ struct scatterlist sg;
+ int err;
+
+ virtio_cread(vb->vdev, struct virtio_balloon_config, free_page_cmd_id,
+ &vb->free_page_cmd_id);
+ sg_init_one(&sg, &vb->free_page_cmd_id, sizeof(uint32_t));
+ err = virtqueue_add_outbuf(vb->free_pag...
2017 Nov 13
3
[PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
..._vqs(vb->vdev, nvqs, vqs, callbacks, names, NULL);
> + if (vb->report_free_page_stop)
> + return;
> + vb->report_free_page_stop = true;
> +
> + virtio_cwrite(vb->vdev, struct virtio_balloon_config, guest2host_cmd,
> + &cmd);
> +}
> +
> +static void report_free_page_cmd_id(struct virtio_balloon *vb)
> +{
> + struct scatterlist sg;
> + int err;
> +
> + virtio_cread(vb->vdev, struct virtio_balloon_config, free_page_cmd_id,
> + &vb->free_page_cmd_id);
> + sg_init_one(&sg, &vb->free_page_cmd_id, sizeof(uint32_t));
> + er...
2017 Nov 13
3
[PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
..._vqs(vb->vdev, nvqs, vqs, callbacks, names, NULL);
> + if (vb->report_free_page_stop)
> + return;
> + vb->report_free_page_stop = true;
> +
> + virtio_cwrite(vb->vdev, struct virtio_balloon_config, guest2host_cmd,
> + &cmd);
> +}
> +
> +static void report_free_page_cmd_id(struct virtio_balloon *vb)
> +{
> + struct scatterlist sg;
> + int err;
> +
> + virtio_cread(vb->vdev, struct virtio_balloon_config, free_page_cmd_id,
> + &vb->free_page_cmd_id);
> + sg_init_one(&sg, &vb->free_page_cmd_id, sizeof(uint32_t));
> + er...
2017 Nov 13
0
[PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...; > + return;
> > + vb->report_free_page_stop = true;
> > +
> > + virtio_cwrite(vb->vdev, struct virtio_balloon_config, guest2host_cmd,
> > + &cmd);
Wouldn't it be easier to add a buffer in the queue?
> > +}
> > +
> > +static void report_free_page_cmd_id(struct virtio_balloon *vb)
> > +{
> > + struct scatterlist sg;
> > + int err;
> > +
> > + virtio_cread(vb->vdev, struct virtio_balloon_config, free_page_cmd_id,
> > + &vb->free_page_cmd_id);
> > + sg_init_one(&sg, &vb->free_page_c...
2017 Nov 16
0
[virtio-dev] Re: [PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...; Cc: Michal Hocko <mhocko at kernel.org>
>> ---
>>
>> +
>> +static void report_free_page(struct work_struct *work)
>> +{
>> + struct virtio_balloon *vb;
>> +
>> + vb = container_of(work, struct virtio_balloon, report_free_page_work);
>> + report_free_page_cmd_id(vb);
>> + walk_free_mem_block(vb, 0, &virtio_balloon_send_free_pages);
>> + /*
>> + * The last few free page blocks that were added may not reach the
>> + * batch size, but need a kick to notify the device to handle them.
>> + */
>> + virtqueue_kick(vb->...
2017 Nov 17
0
[virtio-dev] Re: [PATCH v17 6/6] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...> +static void report_free_page(struct work_struct *work)
> > > > +{
> > > > + struct virtio_balloon *vb;
> > > > +
> > > > + vb = container_of(work, struct virtio_balloon,
> > > > report_free_page_work);
> > > > + report_free_page_cmd_id(vb);
> > > > + walk_free_mem_block(vb, 0, &virtio_balloon_send_free_pages);
> > > > + /*
> > > > + * The last few free page blocks that were added may not reach the
> > > > + * batch size, but need a kick to notify the device to
>...
2017 Nov 03
12
[PATCH v17 0/6] Virtio-balloon Enhancement
This patch series enhances the existing virtio-balloon with the following
new features:
1) fast ballooning: transfer ballooned pages between the guest and host in
chunks using sgs, instead of one array each time; and
2) free page block reporting: a new virtqueue to report guest free pages
to the host.
The second feature can be used to accelerate live migration of VMs. Here
are some details:
Live
2017 Nov 03
12
[PATCH v17 0/6] Virtio-balloon Enhancement
This patch series enhances the existing virtio-balloon with the following
new features:
1) fast ballooning: transfer ballooned pages between the guest and host in
chunks using sgs, instead of one array each time; and
2) free page block reporting: a new virtqueue to report guest free pages
to the host.
The second feature can be used to accelerate live migration of VMs. Here
are some details:
Live