All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cornelia.huck@de.ibm.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
	linux-kernel@vger.kernel.org, Pawel Moll <pawel.moll@arm.com>,
	virtio-dev@lists.oasis-open.org,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH v3 0/6] virtio_balloon: virtio 1 support
Date: Tue, 14 Apr 2015 11:50:53 +0200	[thread overview]
Message-ID: <20150414115053.78189c71.cornelia.huck@de.ibm.com> (raw)
In-Reply-To: <20150414103036-mutt-send-email-mst@redhat.com>

On Tue, 14 Apr 2015 11:21:11 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h
> index f81b220..164e0c2 100644
> --- a/include/uapi/linux/virtio_balloon.h
> +++ b/include/uapi/linux/virtio_balloon.h
> @@ -52,15 +52,31 @@ struct virtio_balloon_config {
>  #define VIRTIO_BALLOON_S_MEMTOT   5   /* Total amount of memory */
>  #define VIRTIO_BALLOON_S_NR       6
> 
> +/*
> + * Memory statistics structure.
> + * Driver fills an array of these structures and passes to device.
> + *
> + * NOTE: fields are laid out in a way that would make compiler add padding
> + * between and after fields, so we have to use compiler-specific attributes to
> + * pack it, to disable this padding. This also often causes compiler to
> + * generate suboptimal code.
> + *
> + * We maintain this for backwards compatibility, but don't follow this example.

s/this/the existing statistics structure/

> + *
> + * Do something like the below instead:

If you want to implement a similar structure, do...

Just that nobody gets the idea that they are supposed to implement new
balloon statistics ;)

> + *     struct virtio_balloon_stat {
> + *         __virtio16 tag;
> + *         __u8 reserved[6];
> + *         __virtio64 val;
> + *     };

(...)

> @@ -225,13 +219,8 @@ static inline void update_stat(struct virtio_balloon *vb, int idx,
>  			       u16 tag, u64 val)
>  {
>  	BUG_ON(idx >= VIRTIO_BALLOON_S_NR);
> -	if (virtio_has_feature(vb->vdev, VIRTIO_F_VERSION_1)) {
> -		vb->stats[idx].tag = cpu_to_le32(tag);
> -		vb->stats[idx].val = cpu_to_le64(val);
> -	} else {
> -		vb->legacy_stats[idx].tag = tag;
> -		vb->legacy_stats[idx].val = val;
> -	}
> +	vb->stats[idx].tag = cpu_to_virtio16(vb->vdev, tag);

Seems that nobody seemed to care much about statistics...

> +	vb->stats[idx].val = cpu_to_virtio64(vb->vdev, val);
>  }
> 
>  #define pages_to_bytes(x) ((u64)(x) << PAGE_SHIFT)
> 

With these changes merged in:

Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>


WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cornelia.huck@de.ibm.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: virtio-dev@lists.oasis-open.org, linux-kernel@vger.kernel.org,
	Pawel Moll <pawel.moll@arm.com>,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH v3 0/6] virtio_balloon: virtio 1 support
Date: Tue, 14 Apr 2015 11:50:53 +0200	[thread overview]
Message-ID: <20150414115053.78189c71.cornelia.huck@de.ibm.com> (raw)
In-Reply-To: <20150414103036-mutt-send-email-mst@redhat.com>

On Tue, 14 Apr 2015 11:21:11 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h
> index f81b220..164e0c2 100644
> --- a/include/uapi/linux/virtio_balloon.h
> +++ b/include/uapi/linux/virtio_balloon.h
> @@ -52,15 +52,31 @@ struct virtio_balloon_config {
>  #define VIRTIO_BALLOON_S_MEMTOT   5   /* Total amount of memory */
>  #define VIRTIO_BALLOON_S_NR       6
> 
> +/*
> + * Memory statistics structure.
> + * Driver fills an array of these structures and passes to device.
> + *
> + * NOTE: fields are laid out in a way that would make compiler add padding
> + * between and after fields, so we have to use compiler-specific attributes to
> + * pack it, to disable this padding. This also often causes compiler to
> + * generate suboptimal code.
> + *
> + * We maintain this for backwards compatibility, but don't follow this example.

s/this/the existing statistics structure/

> + *
> + * Do something like the below instead:

If you want to implement a similar structure, do...

Just that nobody gets the idea that they are supposed to implement new
balloon statistics ;)

> + *     struct virtio_balloon_stat {
> + *         __virtio16 tag;
> + *         __u8 reserved[6];
> + *         __virtio64 val;
> + *     };

(...)

> @@ -225,13 +219,8 @@ static inline void update_stat(struct virtio_balloon *vb, int idx,
>  			       u16 tag, u64 val)
>  {
>  	BUG_ON(idx >= VIRTIO_BALLOON_S_NR);
> -	if (virtio_has_feature(vb->vdev, VIRTIO_F_VERSION_1)) {
> -		vb->stats[idx].tag = cpu_to_le32(tag);
> -		vb->stats[idx].val = cpu_to_le64(val);
> -	} else {
> -		vb->legacy_stats[idx].tag = tag;
> -		vb->legacy_stats[idx].val = val;
> -	}
> +	vb->stats[idx].tag = cpu_to_virtio16(vb->vdev, tag);

Seems that nobody seemed to care much about statistics...

> +	vb->stats[idx].val = cpu_to_virtio64(vb->vdev, val);
>  }
> 
>  #define pages_to_bytes(x) ((u64)(x) << PAGE_SHIFT)
> 

With these changes merged in:

Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>

  reply	other threads:[~2015-04-14  9:51 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-01 12:57 [PATCH v3 0/6] virtio_balloon: virtio 1 support Michael S. Tsirkin
2015-04-01 10:35 ` [PATCH v3 1/6] virtio_balloon: transitional interface Michael S. Tsirkin
2015-04-01 10:35   ` Michael S. Tsirkin
2015-04-01 10:49   ` Michael S. Tsirkin
2015-04-01 10:49     ` Michael S. Tsirkin
2015-04-01 11:52     ` Cornelia Huck
2015-04-01 11:52     ` Cornelia Huck
2015-04-01 13:01       ` Michael S. Tsirkin
2015-04-01 13:01         ` Michael S. Tsirkin
2015-04-01 13:01       ` Michael S. Tsirkin
2015-04-01 10:35 ` Michael S. Tsirkin
2015-04-01 10:35 ` [PATCH v3 2/6] virtio: balloon might not be a legacy device Michael S. Tsirkin
2015-04-01 10:35 ` Michael S. Tsirkin
2015-04-01 11:57   ` Cornelia Huck
2015-04-01 11:57     ` Cornelia Huck
2015-04-01 10:35 ` [PATCH v3 3/6] virtio_ccw: support non-legacy balloon devices Michael S. Tsirkin
2015-04-01 10:40   ` [virtio-dev] " Christian Borntraeger
2015-04-01 11:55     ` Cornelia Huck
2015-04-14  1:09     ` Rusty Russell
2015-04-01 10:35 ` [PATCH v3 4/6] virtio_mmio: " Michael S. Tsirkin
2015-04-01 10:35 ` Michael S. Tsirkin
2015-04-01 10:35 ` [PATCH v3 5/6] virtio_pci: " Michael S. Tsirkin
2015-04-01 10:35 ` Michael S. Tsirkin
2015-04-01 10:36 ` [PATCH v3 6/6] virtio: drop virtio_device_is_legacy_only Michael S. Tsirkin
2015-04-01 10:36   ` Michael S. Tsirkin
2015-04-01 12:04   ` Cornelia Huck
2015-04-01 12:04   ` Cornelia Huck
2015-04-12 15:02 ` [PATCH v3 0/6] virtio_balloon: virtio 1 support Michael S. Tsirkin
2015-04-12 15:02   ` Michael S. Tsirkin
2015-04-14  1:12   ` Rusty Russell
2015-04-14  8:24     ` Cornelia Huck
2015-04-14  8:24       ` Cornelia Huck
2015-04-14  9:21       ` Michael S. Tsirkin
2015-04-14  9:50         ` Cornelia Huck [this message]
2015-04-14  9:50           ` Cornelia Huck
2015-04-14  9:58           ` Michael S. Tsirkin
2015-04-14  9:58             ` Michael S. Tsirkin
2015-04-15  0:45             ` Rusty Russell
2015-04-15  0:45             ` Rusty Russell
2015-04-15 15:32               ` Cornelia Huck
2015-04-15 15:32               ` Cornelia Huck
2015-04-15 15:45               ` Michael S. Tsirkin
2015-04-15 15:45               ` Michael S. Tsirkin
2015-04-14  9:21       ` Michael S. Tsirkin
2015-04-14  1:12   ` Rusty Russell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150414115053.78189c71.cornelia.huck@de.ibm.com \
    --to=cornelia.huck@de.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=pawel.moll@arm.com \
    --cc=rusty@rustcorp.com.au \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.