Displaying 20 results from an estimated 405 matches for "virtqueue_add_outbuf".
2014 Aug 28
3
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
....644039] Modules linked in: virtio_net virtio_blk dm_multipath sunrpc
> [ 8.644046] CPU: 0 PID: 1291 Comm: iperf Not tainted 3.16.0+ #130
> [ 8.644048] task: 00000000018ee4c0 ti: 0000000022098000 task.ti: 0000000022098000
> [ 8.644051] Krnl PSW : 0704d00180000000 0000000000421618 (virtqueue_add_outbuf+0x2e4/0x340)
> [ 8.644066] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 EA:3
> Krnl GPRS: 00000000299f8a80 0000000000000000 0000000000000001 000003d100000000
> [ 8.644070] 00000000004214de 0000000000000e2c 0000000000000001 0000000000000002
> [ 8.6440...
2014 Aug 28
3
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
....644039] Modules linked in: virtio_net virtio_blk dm_multipath sunrpc
> [ 8.644046] CPU: 0 PID: 1291 Comm: iperf Not tainted 3.16.0+ #130
> [ 8.644048] task: 00000000018ee4c0 ti: 0000000022098000 task.ti: 0000000022098000
> [ 8.644051] Krnl PSW : 0704d00180000000 0000000000421618 (virtqueue_add_outbuf+0x2e4/0x340)
> [ 8.644066] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 EA:3
> Krnl GPRS: 00000000299f8a80 0000000000000000 0000000000000001 000003d100000000
> [ 8.644070] 00000000004214de 0000000000000e2c 0000000000000001 0000000000000002
> [ 8.6440...
2017 Sep 11
6
mm, virtio: possible OOM lockup at virtballoon_oom_notify()
...loon_oom_notify() via
blocking_notifier_call_chain() callback when vb->balloon_lock mutex is already
held by fill_balloon(). As a result, despite __GFP_NORETRY is specified,
fill_balloon() can indirectly get stuck waiting for vb->balloon_lock mutex
at leak_balloon().
Also, in leak_balloon(), virtqueue_add_outbuf(GFP_KERNEL) is called via
tell_host(). Reaching __alloc_pages_may_oom() from this virtqueue_add_outbuf()
request from leak_balloon() from virtballoon_oom_notify() from
blocking_notifier_call_chain() from out_of_memory() leads to OOM lockup
because oom_lock mutex is already held before calling out_o...
2017 Sep 11
6
mm, virtio: possible OOM lockup at virtballoon_oom_notify()
...loon_oom_notify() via
blocking_notifier_call_chain() callback when vb->balloon_lock mutex is already
held by fill_balloon(). As a result, despite __GFP_NORETRY is specified,
fill_balloon() can indirectly get stuck waiting for vb->balloon_lock mutex
at leak_balloon().
Also, in leak_balloon(), virtqueue_add_outbuf(GFP_KERNEL) is called via
tell_host(). Reaching __alloc_pages_may_oom() from this virtqueue_add_outbuf()
request from leak_balloon() from virtballoon_oom_notify() from
blocking_notifier_call_chain() from out_of_memory() leads to OOM lockup
because oom_lock mutex is already held before calling out_o...
2023 May 17
2
[PATCH vhost v9 04/12] virtio_ring: virtqueue_add() support premapped
...ue *vq = to_vvq(_vq);
@@ -2176,7 +2177,7 @@ int virtqueue_add_sgs(struct virtqueue *_vq,
total_sg++;
}
return virtqueue_add(_vq, sgs, total_sg, out_sgs, in_sgs,
- data, NULL, gfp);
+ data, NULL, false, gfp);
}
EXPORT_SYMBOL_GPL(virtqueue_add_sgs);
@@ -2198,7 +2199,7 @@ int virtqueue_add_outbuf(struct virtqueue *vq,
void *data,
gfp_t gfp)
{
- return virtqueue_add(vq, &sg, num, 1, 0, data, NULL, gfp);
+ return virtqueue_add(vq, &sg, num, 1, 0, data, NULL, false, gfp);
}
EXPORT_SYMBOL_GPL(virtqueue_add_outbuf);
@@ -2220,7 +2221,7 @@ int virtqueue_add_inbuf(struct virt...
2013 Mar 18
28
[PATCH 00/22] virtqueue_add_sgs, virtqueue_add_outbuf, virtqueue_add_inbuf
Add virtqueue_add_sgs which is more general than virtqueue_add_buf,
which makes virtio-scsi and virtio-blk nicer, then add virtqueue_add_inbuf
and virtqueue_add_outbuf which handle the more general case, and finally
delete virtqueue_add_buf().
I'm hoping this will be the final post of the whole series, and it can
move from my pending-rebases tree into virtio-next.
Thanks!
Rusty.
Paolo Bonzini (4):
scatterlist: introduce sg_unmark_end
virtio-blk: reorga...
2013 Mar 18
28
[PATCH 00/22] virtqueue_add_sgs, virtqueue_add_outbuf, virtqueue_add_inbuf
Add virtqueue_add_sgs which is more general than virtqueue_add_buf,
which makes virtio-scsi and virtio-blk nicer, then add virtqueue_add_inbuf
and virtqueue_add_outbuf which handle the more general case, and finally
delete virtqueue_add_buf().
I'm hoping this will be the final post of the whole series, and it can
move from my pending-rebases tree into virtio-next.
Thanks!
Rusty.
Paolo Bonzini (4):
scatterlist: introduce sg_unmark_end
virtio-blk: reorga...
2023 Mar 07
2
[PATCH vhost v1 03/12] virtio_ring: split: introduce virtqueue_add_split_premapped()
...gfp_t gfp)
> +{
> + struct vring_virtqueue *vq = to_vvq(_vq);
> +
> + return virtqueue_add_split(_vq, sgs, total_sg, out_sgs, in_sgs, data,
> + ctx, false, gfp);
> }
>
> /**
> @@ -2264,6 +2293,31 @@ int virtqueue_add_outbuf(struct virtqueue *vq,
> }
> EXPORT_SYMBOL_GPL(virtqueue_add_outbuf);
>
> +/**
> + * virtqueue_add_outbuf_premapped - expose output buffers with dma address to other end
> + * @vq: the struct virtqueue we're talking about.
> + * @sg: scatterlist (must be well-formed and te...
2015 May 01
5
[RFC 0/4] rpmsg: Fix init of DMA:able virtqueues
From: "Edgar E. Iglesias" <edgar.iglesias at xilinx.com>
I'm trying to run rpmsg and remoteproc on the ZynqMP (arm64) but I'm hitting
a DMA/mm error. The issue was discussed here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-March/333050.html
Russel King pointed out that the arm64 is not doing anything wrong by
returning vmapped memory (which is incompatible
2015 May 01
5
[RFC 0/4] rpmsg: Fix init of DMA:able virtqueues
From: "Edgar E. Iglesias" <edgar.iglesias at xilinx.com>
I'm trying to run rpmsg and remoteproc on the ZynqMP (arm64) but I'm hitting
a DMA/mm error. The issue was discussed here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-March/333050.html
Russel King pointed out that the arm64 is not doing anything wrong by
returning vmapped memory (which is incompatible
2020 Jul 10
2
[PATCH] virtio_balloon: fix sparse warning
...on *vb)
while (virtqueue_get_buf(vq, &unused))
;
- vb->cmd_id_active = virtio32_to_cpu(vb->vdev,
+ vb->cmd_id_active = cpu_to_virtio32(vb->vdev,
virtio_balloon_cmd_id_received(vb));
sg_init_one(&sg, &vb->cmd_id_active, sizeof(vb->cmd_id_active));
err = virtqueue_add_outbuf(vq, &sg, 1, &vb->cmd_id_active, GFP_KERNEL);
--
MST
2014 Aug 28
0
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
...ules linked in: virtio_net virtio_blk dm_multipath sunrpc
>> [ 8.644046] CPU: 0 PID: 1291 Comm: iperf Not tainted 3.16.0+ #130
>> [ 8.644048] task: 00000000018ee4c0 ti: 0000000022098000 task.ti: 0000000022098000
>> [ 8.644051] Krnl PSW : 0704d00180000000 0000000000421618 (virtqueue_add_outbuf+0x2e4/0x340)
>> [ 8.644066] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 EA:3
>> Krnl GPRS: 00000000299f8a80 0000000000000000 0000000000000001 000003d100000000
>> [ 8.644070] 00000000004214de 0000000000000e2c 0000000000000001 0000000000000002
>...
2013 Oct 02
2
Kmemleak: false-positive in vring_add_indirect ?
...=............
02 dc 51 3c 00 00 00 00 56 00 00 00 00 00 00 00 ..Q<....V.......
backtrace:
[<ffffffff8152db19>] kmemleak_alloc+0x59/0xc0
[<ffffffff81102e93>] __kmalloc+0xf3/0x180
[<ffffffff812db5d6>] vring_add_indirect+0x36/0x280
[<ffffffff812dc59f>] virtqueue_add_outbuf+0xbf/0x4e0
[<ffffffff813a8b30>] start_xmit+0x1a0/0x3b0
[<ffffffff81445861>] dev_hard_start_xmit+0x2d1/0x4d0
[<ffffffff81460052>] sch_direct_xmit+0xf2/0x1c0
[<ffffffff81445c28>] dev_queue_xmit+0x1c8/0x460
[<ffffffff814e3187>] ip6_finish_output2+0x1d7...
2013 Oct 02
2
Kmemleak: false-positive in vring_add_indirect ?
...=............
02 dc 51 3c 00 00 00 00 56 00 00 00 00 00 00 00 ..Q<....V.......
backtrace:
[<ffffffff8152db19>] kmemleak_alloc+0x59/0xc0
[<ffffffff81102e93>] __kmalloc+0xf3/0x180
[<ffffffff812db5d6>] vring_add_indirect+0x36/0x280
[<ffffffff812dc59f>] virtqueue_add_outbuf+0xbf/0x4e0
[<ffffffff813a8b30>] start_xmit+0x1a0/0x3b0
[<ffffffff81445861>] dev_hard_start_xmit+0x2d1/0x4d0
[<ffffffff81460052>] sch_direct_xmit+0xf2/0x1c0
[<ffffffff81445c28>] dev_queue_xmit+0x1c8/0x460
[<ffffffff814e3187>] ip6_finish_output2+0x1d7...
2014 Aug 28
0
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
...#1] SMP
[ 8.644039] Modules linked in: virtio_net virtio_blk dm_multipath sunrpc
[ 8.644046] CPU: 0 PID: 1291 Comm: iperf Not tainted 3.16.0+ #130
[ 8.644048] task: 00000000018ee4c0 ti: 0000000022098000 task.ti: 0000000022098000
[ 8.644051] Krnl PSW : 0704d00180000000 0000000000421618 (virtqueue_add_outbuf+0x2e4/0x340)
[ 8.644066] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 EA:3
Krnl GPRS: 00000000299f8a80 0000000000000000 0000000000000001 000003d100000000
[ 8.644070] 00000000004214de 0000000000000e2c 0000000000000001 0000000000000002
[ 8.644072] 00000...
2023 Mar 07
1
[PATCH vhost v1 03/12] virtio_ring: split: introduce virtqueue_add_split_premapped()
...{
> > + struct vring_virtqueue *vq = to_vvq(_vq);
> > +
> > + return virtqueue_add_split(_vq, sgs, total_sg, out_sgs, in_sgs, data,
> > + ctx, false, gfp);
> > }
> >
> > /**
> > @@ -2264,6 +2293,31 @@ int virtqueue_add_outbuf(struct virtqueue *vq,
> > }
> > EXPORT_SYMBOL_GPL(virtqueue_add_outbuf);
> >
> > +/**
> > + * virtqueue_add_outbuf_premapped - expose output buffers with dma address to other end
> > + * @vq: the struct virtqueue we're talking about.
> > + * @sg: scat...
2023 Feb 20
1
[PATCH vhost 04/10] virtio_ring: split: introduce virtqueue_add_split_premapped()
...l_sg, out_sgs,
> > + in_sgs, data, ctx, gfp);
> > +}
> > +
> > /**
> > * virtqueue_add_sgs - expose buffers to other end
> > * @_vq: the struct virtqueue we're talking about.
> > @@ -2261,6 +2326,31 @@ int virtqueue_add_outbuf(struct virtqueue *vq,
> > }
> > EXPORT_SYMBOL_GPL(virtqueue_add_outbuf);
> >
> > +/**
> > + * virtqueue_add_outbuf_premapped - expose output buffers to other end
> > + * @vq: the struct virtqueue we're talking about.
> > + * @sg: scatterlist (must be...
2014 Sep 03
0
[PATCH 2/3] virtio_ring: assume sgs are always well-formed.
...sgs[i]; sg; sg = sg_next(sg))
- total_in++;
+ total_sg++;
}
- return virtqueue_add(_vq, sgs, sg_next_chained,
- total_out, total_in, out_sgs, in_sgs, data, gfp);
+ return virtqueue_add(_vq, sgs, total_sg, out_sgs, in_sgs, data, gfp);
}
EXPORT_SYMBOL_GPL(virtqueue_add_sgs);
/**
* virtqueue_add_outbuf - expose output buffers to other end
* @vq: the struct virtqueue we're talking about.
- * @sgs: array of scatterlists (need not be terminated!)
- * @num: the number of scatterlists readable by other side
+ * @sg: scatterlist (must be well-formed and terminated!)
+ * @num: the number of entrie...
2016 May 20
6
[PATCH RFC kernel] balloon: speed up inflating/deflating process
..., sizeof(flags));
+ sg_set_buf(&sg[1], &start_pfn, sizeof(start_pfn));
+ sg_set_buf(&sg[2], &page_shift, sizeof(page_shift));
+ sg_set_buf(&sg[3], &bmap_len, sizeof(bmap_len));
+ sg_set_buf(&sg[4], vb->page_bitmap +
+ (start_pfn / BITS_PER_LONG), bmap_len);
+ virtqueue_add_outbuf(vq, sg, 5, vb, GFP_KERNEL);
+
+ } else {
+ struct scatterlist sg;
+
+ sg_init_one(&sg, vb->pfns, sizeof(vb->pfns[0]) * vb->num_pfns);
+ /* We should always be able to add one buffer to an
+ * empty queue.
+ */
+ virtqueue_add_outbuf(vq, &sg, 1, vb, GFP_KERNEL);
+ }
- /* We...
2016 May 20
6
[PATCH RFC kernel] balloon: speed up inflating/deflating process
..., sizeof(flags));
+ sg_set_buf(&sg[1], &start_pfn, sizeof(start_pfn));
+ sg_set_buf(&sg[2], &page_shift, sizeof(page_shift));
+ sg_set_buf(&sg[3], &bmap_len, sizeof(bmap_len));
+ sg_set_buf(&sg[4], vb->page_bitmap +
+ (start_pfn / BITS_PER_LONG), bmap_len);
+ virtqueue_add_outbuf(vq, sg, 5, vb, GFP_KERNEL);
+
+ } else {
+ struct scatterlist sg;
+
+ sg_init_one(&sg, vb->pfns, sizeof(vb->pfns[0]) * vb->num_pfns);
+ /* We should always be able to add one buffer to an
+ * empty queue.
+ */
+ virtqueue_add_outbuf(vq, &sg, 1, vb, GFP_KERNEL);
+ }
- /* We...