search for: num_stat

Displaying 20 results from an estimated 104 matches for "num_stat".

Did you mean: num_stats
2017 Mar 28
0
[PATCH v3 2/3] virtio-balloon: use actual number of stats for stats queue buffers
...ytes(i.totalram)); update_stat(vb, idx++, VIRTIO_BALLOON_S_AVAIL, pages_to_bytes(available)); + + return idx; } /* @@ -291,14 +293,14 @@ static void stats_handle_request(struct virtio_balloon *vb) { struct virtqueue *vq; struct scatterlist sg; - unsigned int len; + unsigned int len, num_stats; - update_balloon_stats(vb); + num_stats = update_balloon_stats(vb); vq = vb->stats_vq; if (!virtqueue_get_buf(vq, &len)) return; - sg_init_one(&sg, vb->stats, sizeof(vb->stats)); + sg_init_one(&sg, vb->stats, sizeof(vb->stats[0]) * num_stats); virtqueue_add...
2017 Mar 24
2
[PATCH] virtio_balloon: prevent uninitialized variable use
...IO_BALLOON_S_AVAIL, > pages_to_bytes(available)); > + > + return idx; > } > > /* > @@ -294,13 +296,14 @@ static void stats_handle_request(struct > virtio_balloon *vb) > struct virtqueue *vq; > struct scatterlist sg; > unsigned int len; > + unsigned int num_stats; > > - update_balloon_stats(vb); > + num_stats = update_balloon_stats(vb); > > vq = vb->stats_vq; > if (!virtqueue_get_buf(vq, &len)) > return; > - sg_init_one(&sg, vb->stats, sizeof(vb->stats)); > + sg_init_one(&sg, vb->stats, sizeof(vb-&...
2017 Mar 24
2
[PATCH] virtio_balloon: prevent uninitialized variable use
...IO_BALLOON_S_AVAIL, > pages_to_bytes(available)); > + > + return idx; > } > > /* > @@ -294,13 +296,14 @@ static void stats_handle_request(struct > virtio_balloon *vb) > struct virtqueue *vq; > struct scatterlist sg; > unsigned int len; > + unsigned int num_stats; > > - update_balloon_stats(vb); > + num_stats = update_balloon_stats(vb); > > vq = vb->stats_vq; > if (!virtqueue_get_buf(vq, &len)) > return; > - sg_init_one(&sg, vb->stats, sizeof(vb->stats)); > + sg_init_one(&sg, vb->stats, sizeof(vb-&...
2017 Mar 28
4
[PATCH v3 0/3] virtio_balloon: don't push uninitialized buffers to stats virtqueue
This series fixes issues with variable initialization in the virtio balloon driver which manifest as the driver sending invalid memory stats to the host. v1->v2: * Call update_balloon_stats instead of filling the buffer with invalid tags. * Add BUG_ON to update_balloon_stats to formalize the invariant that all slots in the buffer must be initialized. v2->v3: * Remove BUG_ON and
2017 Mar 28
4
[PATCH v3 0/3] virtio_balloon: don't push uninitialized buffers to stats virtqueue
This series fixes issues with variable initialization in the virtio balloon driver which manifest as the driver sending invalid memory stats to the host. v1->v2: * Call update_balloon_stats instead of filling the buffer with invalid tags. * Add BUG_ON to update_balloon_stats to formalize the invariant that all slots in the buffer must be initialized. v2->v3: * Remove BUG_ON and
2017 Mar 28
1
[PATCH] virtio_balloon: prevent uninitialized variable use
...> >> } > >> > >> /* > >> @@ -294,13 +296,14 @@ static void stats_handle_request(struct > >> virtio_balloon *vb) > >> struct virtqueue *vq; > >> struct scatterlist sg; > >> unsigned int len; > >> + unsigned int num_stats; > >> > >> - update_balloon_stats(vb); > >> + num_stats = update_balloon_stats(vb); > >> > >> vq = vb->stats_vq; > >> if (!virtqueue_get_buf(vq, &len)) > >> return; > >> - sg_init_one(&sg, vb->stats, sizeof...
2017 Mar 28
1
[PATCH] virtio_balloon: prevent uninitialized variable use
...> >> } > >> > >> /* > >> @@ -294,13 +296,14 @@ static void stats_handle_request(struct > >> virtio_balloon *vb) > >> struct virtqueue *vq; > >> struct scatterlist sg; > >> unsigned int len; > >> + unsigned int num_stats; > >> > >> - update_balloon_stats(vb); > >> + num_stats = update_balloon_stats(vb); > >> > >> vq = vb->stats_vq; > >> if (!virtqueue_get_buf(vq, &len)) > >> return; > >> - sg_init_one(&sg, vb->stats, sizeof...
2017 Jun 09
0
[PATCH v11 6/6] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ
...vb->vdev, val); } #define pages_to_bytes(x) ((u64)(x) << PAGE_SHIFT) @@ -582,7 +648,8 @@ static void stats_handle_request(struct virtio_balloon *vb) vq = vb->stats_vq; if (!virtqueue_get_buf(vq, &len)) return; - sg_init_one(&sg, vb->stats, sizeof(vb->stats[0]) * num_stats); + sg_init_one(&sg, vb->cmdq_stats.stats, + sizeof(vb->cmdq_stats.stats[0]) * num_stats); virtqueue_add_outbuf(vq, &sg, 1, vb, GFP_KERNEL); virtqueue_kick(vq); } @@ -686,43 +753,216 @@ static void update_balloon_size_func(struct work_struct *work) queue_work(system_free...
2017 Mar 24
2
[PATCH] virtio_balloon: prevent uninitialized variable use
On Fri, Mar 24, 2017 at 7:38 PM, David Hildenbrand <david at redhat.com> wrote: > On 23.03.2017 16:17, Arnd Bergmann wrote: >> The latest gcc-7.0.1 snapshot reports a new warning: >> >> virtio/virtio_balloon.c: In function 'update_balloon_stats': >> virtio/virtio_balloon.c:258:26: error: 'events[2]' is used uninitialized in this function
2017 Mar 24
2
[PATCH] virtio_balloon: prevent uninitialized variable use
On Fri, Mar 24, 2017 at 7:38 PM, David Hildenbrand <david at redhat.com> wrote: > On 23.03.2017 16:17, Arnd Bergmann wrote: >> The latest gcc-7.0.1 snapshot reports a new warning: >> >> virtio/virtio_balloon.c: In function 'update_balloon_stats': >> virtio/virtio_balloon.c:258:26: error: 'events[2]' is used uninitialized in this function
2017 Mar 24
0
[PATCH] virtio_balloon: prevent uninitialized variable use
...pages_to_bytes(i.totalram)); update_stat(vb, idx++, VIRTIO_BALLOON_S_AVAIL, pages_to_bytes(available)); + + return idx; } /* @@ -294,13 +296,14 @@ static void stats_handle_request(struct virtio_balloon *vb) struct virtqueue *vq; struct scatterlist sg; unsigned int len; + unsigned int num_stats; - update_balloon_stats(vb); + num_stats = update_balloon_stats(vb); vq = vb->stats_vq; if (!virtqueue_get_buf(vq, &len)) return; - sg_init_one(&sg, vb->stats, sizeof(vb->stats)); + sg_init_one(&sg, vb->stats, sizeof(vb->stats[0] * num_stats)); virtqueue_add_ou...
2017 Mar 27
0
[PATCH] virtio_balloon: prevent uninitialized variable use
...vailable)); >> + >> + return idx; >> } >> >> /* >> @@ -294,13 +296,14 @@ static void stats_handle_request(struct >> virtio_balloon *vb) >> struct virtqueue *vq; >> struct scatterlist sg; >> unsigned int len; >> + unsigned int num_stats; >> >> - update_balloon_stats(vb); >> + num_stats = update_balloon_stats(vb); >> >> vq = vb->stats_vq; >> if (!virtqueue_get_buf(vq, &len)) >> return; >> - sg_init_one(&sg, vb->stats, sizeof(vb->stats)); >> + sg_init_one(...
2018 Jan 17
2
[PATCH v22 2/3] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...> + NULL, NULL); > if (err) > - return err; > + goto err_find; > > vb->inflate_vq = vqs[0]; > vb->deflate_vq = vqs[1]; > + i = 2; > if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) { > - struct scatterlist sg; > - unsigned int num_stats; > - vb->stats_vq = vqs[2]; > - > + vb->stats_vq = vqs[i++]; > /* > * Prime this virtqueue with one buffer so the hypervisor can > * use it to signal us later (it can't be broken yet!). > */ > - num_stats = update_balloon_stats(vb); > - > -...
2018 Jan 17
2
[PATCH v22 2/3] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...> + NULL, NULL); > if (err) > - return err; > + goto err_find; > > vb->inflate_vq = vqs[0]; > vb->deflate_vq = vqs[1]; > + i = 2; > if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) { > - struct scatterlist sg; > - unsigned int num_stats; > - vb->stats_vq = vqs[2]; > - > + vb->stats_vq = vqs[i++]; > /* > * Prime this virtqueue with one buffer so the hypervisor can > * use it to signal us later (it can't be broken yet!). > */ > - num_stats = update_balloon_stats(vb); > - > -...
2018 Jun 26
2
[PATCH v34 2/4] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT
...; > + names[VIRTIO_BALLOON_VQ_STATS] = NULL; > + names[VIRTIO_BALLOON_VQ_FREE_PAGE] = NULL; > > - vb->inflate_vq = vqs[0]; > - vb->deflate_vq = vqs[1]; > if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) { > - struct scatterlist sg; > - unsigned int num_stats; > - vb->stats_vq = vqs[2]; > + names[VIRTIO_BALLOON_VQ_STATS] = "stats"; > + callbacks[VIRTIO_BALLOON_VQ_STATS] = stats_request; > + } > > + if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT)) { > + names[VIRTIO_BALLOON_VQ_FREE_PAGE] = &qu...
2018 Jun 26
2
[PATCH v34 2/4] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT
...; > + names[VIRTIO_BALLOON_VQ_STATS] = NULL; > + names[VIRTIO_BALLOON_VQ_FREE_PAGE] = NULL; > > - vb->inflate_vq = vqs[0]; > - vb->deflate_vq = vqs[1]; > if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) { > - struct scatterlist sg; > - unsigned int num_stats; > - vb->stats_vq = vqs[2]; > + names[VIRTIO_BALLOON_VQ_STATS] = "stats"; > + callbacks[VIRTIO_BALLOON_VQ_STATS] = stats_request; > + } > > + if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT)) { > + names[VIRTIO_BALLOON_VQ_FREE_PAGE] = &qu...
2017 Jul 12
0
[PATCH v12 8/8] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ
...desc that was just + * added, and re-start to add the hdr. + */ + virtqueue_detach_buf(vb->cmd_vq, *head_id, NULL); + *head_id = VIRTQUEUE_DESC_ID_INIT; + *prev_id = VIRTQUEUE_DESC_ID_INIT; + goto retry; + } +} + +static void cmdq_handle_stats(struct virtio_balloon *vb) +{ + unsigned int num_stats, + head_id = VIRTQUEUE_DESC_ID_INIT, + prev_id = VIRTQUEUE_DESC_ID_INIT; + uint64_t addr = (uint64_t)virt_to_phys((void *)vb->stats); + uint32_t len; + + spin_lock(&vb->stop_update_lock); + if (!vb->stop_update) { + num_stats = update_balloon_stats(vb); + len = sizeof(st...
2017 Aug 03
0
[PATCH v13 5/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...>find_vqs(vb->vdev, nvqs, vqs, callbacks, names, + NULL, NULL); if (err) - return err; + goto err_find; vb->inflate_vq = vqs[0]; vb->deflate_vq = vqs[1]; + i = 2; if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) { - struct scatterlist sg; - unsigned int num_stats; - vb->stats_vq = vqs[2]; - + vb->stats_vq = vqs[i++]; /* * Prime this virtqueue with one buffer so the hypervisor can * use it to signal us later (it can't be broken yet!). */ - num_stats = update_balloon_stats(vb); - - sg_init_one(&sg, vb->stats, sizeof(vb-&gt...
2018 Jan 17
0
[PATCH v22 2/3] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
...>> - return err; >> + goto err_find; >> >> vb->inflate_vq = vqs[0]; >> vb->deflate_vq = vqs[1]; >> + i = 2; >> if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) { >> - struct scatterlist sg; >> - unsigned int num_stats; >> - vb->stats_vq = vqs[2]; >> - >> + vb->stats_vq = vqs[i++]; >> /* >> * Prime this virtqueue with one buffer so the hypervisor can >> * use it to signal us later (it can't be broken yet!). >> */ >> - num_stats = upd...
2018 Jun 26
0
[PATCH v34 2/4] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT
...VQ_STATS] = NULL; >> + names[VIRTIO_BALLOON_VQ_FREE_PAGE] = NULL; >> >> - vb->inflate_vq = vqs[0]; >> - vb->deflate_vq = vqs[1]; >> if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) { >> - struct scatterlist sg; >> - unsigned int num_stats; >> - vb->stats_vq = vqs[2]; >> + names[VIRTIO_BALLOON_VQ_STATS] = "stats"; >> + callbacks[VIRTIO_BALLOON_VQ_STATS] = stats_request; >> + } >> >> + if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT)) { >> + names[VIRTI...