Re: [PATCH v6 kernel 3/5] virtio-balloon: speed up inflate/deflate process
From: Michael S. Tsirkin
Date: Tue Jan 17 2017 - 14:24:46 EST
On Wed, Dec 21, 2016 at 02:52:26PM +0800, Liang Li wrote:
>
> - /* We should always be able to add one buffer to an empty queue. */
> - virtqueue_add_outbuf(vq, &sg, 1, vb, GFP_KERNEL);
> - virtqueue_kick(vq);
> +static void do_set_resp_bitmap(struct virtio_balloon *vb,
> + unsigned long base_pfn, int pages)
>
> - /* When host has read buffer, this completes via balloon_ack */
> - wait_event(vb->acked, virtqueue_get_buf(vq, &len));
> +{
> + __le64 *range = vb->resp_data + vb->resp_pos;
>
> + if (pages > (1 << VIRTIO_BALLOON_NR_PFN_BITS)) {
> + /* when the length field can't contain pages, set it to 0 to
/*
* Multi-line
* comments
* should look like this.
*/
Also, pls start sentences with an upper-case letter.
> + * indicate the actual length is in the next __le64;
> + */
This is part of the interface so should be documented as such.
> + *range = cpu_to_le64((base_pfn <<
> + VIRTIO_BALLOON_NR_PFN_BITS) | 0);
> + *(range + 1) = cpu_to_le64(pages);
> + vb->resp_pos += 2;
Pls use structs for this kind of stuff.
> + } else {
> + *range = (base_pfn << VIRTIO_BALLOON_NR_PFN_BITS) | pages;
> + vb->resp_pos++;
> + }
> +}