Displaying 20 results from an estimated 24 matches for "virtio_rpmsg_num_of_vqs".
2020 May 27
0
[PATCH v2 5/5] vhost: add an RPMsg API
...t;
> > +
> > +/* RPMsg uses two VirtQueues: one for each direction */
> > +enum {
> > + VIRTIO_RPMSG_RESPONSE, /* RPMsg response (host->guest) buffers */
> > + VIRTIO_RPMSG_REQUEST, /* RPMsg request (guest->host) buffers */
> > + /* Keep last */
> > + VIRTIO_RPMSG_NUM_OF_VQS,
> > +};
> > +
> > +struct vhost_rpmsg_ept;
> > +
> > +struct vhost_rpmsg_iter {
> > + struct iov_iter iov_iter;
> > + struct rpmsg_hdr rhdr;
> > + struct vhost_virtqueue *vq;
> > + const struct vhost_rpmsg_ept *ept;
> > + int head;
> &...
2020 Sep 10
0
[PATCH v7 3/3] vhost: add an RPMsg API
...ngth in the iterator is used
+ */
+int vhost_rpmsg_start_lock(struct vhost_rpmsg *vr, struct vhost_rpmsg_iter *iter,
+ unsigned int qid, ssize_t len)
+ __acquires(vq->mutex)
+{
+ struct vhost_virtqueue *vq = vr->vq + qid;
+ unsigned int cnt;
+ ssize_t ret;
+ size_t tmp;
+
+ if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
+ return -EINVAL;
+
+ iter->vq = vq;
+
+ mutex_lock(&vq->mutex);
+ vhost_disable_notify(&vr->dev, vq);
+
+ iter->head = vhost_rpmsg_get_msg(vq, &cnt);
+ if (iter->head == vq->num)
+ iter->head = -EAGAIN;
+
+ if (iter->head < 0) {
+ ret = iter->head;
+...
2020 May 27
0
[PATCH v3 5/5] vhost: add an RPMsg API
...r sending a response, the length in the iterator is used
+ */
+int vhost_rpmsg_start_lock(struct vhost_rpmsg *vr,
+ struct vhost_rpmsg_iter *iter,
+ unsigned int qid, ssize_t len)
+ __acquires(vq->mutex)
+{
+ struct vhost_virtqueue *vq = vr->vq + qid;
+ size_t tmp;
+
+ if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
+ return -EINVAL;
+
+ iter->vq = vq;
+
+ mutex_lock(&vq->mutex);
+ vhost_disable_notify(&vr->dev, vq);
+
+ iter->head = vhost_rpmsg_get_single(vq);
+ if (iter->head == vq->num)
+ iter->head = -EAGAIN;
+
+ if (iter->head < 0)
+ goto unlock;
+
+ tmp = vq->iov...
2020 Jul 22
0
[PATCH v4 4/4] vhost: add an RPMsg API
...red, for sending a response, the length in the iterator is used
+ */
+int vhost_rpmsg_start_lock(struct vhost_rpmsg *vr, struct vhost_rpmsg_iter *iter,
+ unsigned int qid, ssize_t len)
+ __acquires(vq->mutex)
+{
+ struct vhost_virtqueue *vq = vr->vq + qid;
+ size_t tmp;
+
+ if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
+ return -EINVAL;
+
+ iter->vq = vq;
+
+ mutex_lock(&vq->mutex);
+ vhost_disable_notify(&vr->dev, vq);
+
+ iter->head = vhost_rpmsg_get_single(vq);
+ if (iter->head == vq->num)
+ iter->head = -EAGAIN;
+
+ if (iter->head < 0)
+ goto unlock;
+
+ tmp = vq->iov...
2020 May 25
6
[PATCH v2 0/5] Add a vhost RPMsg API
v2:
- remove "default n" from Kconfig
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- update patch #5 with a correct vhost_dev_init() prototype
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases. It can however also be used for virtualisation scenarios,
e.g. when using KVM to run Linux on both the host and the guests.
This
2020 Sep 10
0
[PATCH v5 4/4] vhost: add an RPMsg API
...ct vhost_rpmsg_iter *iter,
> > + unsigned int qid, ssize_t len)
> > + __acquires(vq->mutex)
> > +{
> > + struct vhost_virtqueue *vq = vr->vq + qid;
> > + unsigned int cnt;
> > + ssize_t ret;
> > + size_t tmp;
> > +
> > + if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
> > + return -EINVAL;
> > +
> > + iter->vq = vq;
> > +
> > + mutex_lock(&vq->mutex);
> > + vhost_disable_notify(&vr->dev, vq);
> > +
> > + iter->head = vhost_rpmsg_get_msg(vq, &cnt);
> > + if (iter->head == vq->nu...
2020 Sep 18
0
[PATCH v7 3/3] vhost: add an RPMsg API
...ct vhost_rpmsg_iter *iter,
> > + unsigned int qid, ssize_t len)
> > + __acquires(vq->mutex)
> > +{
> > + struct vhost_virtqueue *vq = vr->vq + qid;
> > + unsigned int cnt;
> > + ssize_t ret;
> > + size_t tmp;
> > +
> > + if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
> > + return -EINVAL;
> > +
> > + iter->vq = vq;
> > +
> > + mutex_lock(&vq->mutex);
> > + vhost_disable_notify(&vr->dev, vq);
> > +
> > + iter->head = vhost_rpmsg_get_msg(vq, &cnt);
> > + if (iter->head == vq->nu...
2020 Sep 10
6
[PATCH v7 0/3] Add a vhost RPMsg API
Hi,
Next update:
v7:
- remove documentation update to be send separately
- address comments from Mathieu Poirier (thanks)
v6:
- rename include/linux/virtio_rpmsg.h -> include/linux/rpmsg/virtio.h
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
2020 Sep 10
6
[PATCH v7 0/3] Add a vhost RPMsg API
Hi,
Next update:
v7:
- remove documentation update to be send separately
- address comments from Mathieu Poirier (thanks)
v6:
- rename include/linux/virtio_rpmsg.h -> include/linux/rpmsg/virtio.h
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
2020 Aug 26
12
[PATCH v5 0/4] Add a vhost RPMsg API
Hi,
Next update:
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- address comments from Pierre-Louis Bossart:
2020 Aug 26
12
[PATCH v5 0/4] Add a vhost RPMsg API
Hi,
Next update:
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- address comments from Pierre-Louis Bossart:
2020 Sep 11
0
[PATCH v5 4/4] vhost: add an RPMsg API
...eues: one for each direction */
> > > > +enum {
> > > > + VIRTIO_RPMSG_RESPONSE, /* RPMsg response (host->guest) buffers */
> > > > + VIRTIO_RPMSG_REQUEST, /* RPMsg request (guest->host) buffers */
> > > > + /* Keep last */
> > > > + VIRTIO_RPMSG_NUM_OF_VQS,
> > > > +};
> > > > +
> > > > +struct vhost_rpmsg_ept;
> > > > +
> > > > +struct vhost_rpmsg_iter {
> > > > + struct iov_iter iov_iter;
> > > > + struct rpmsg_hdr rhdr;
> > > > + struct vhost_virtqueue...
2020 Sep 17
1
[PATCH v7 3/3] vhost: add an RPMsg API
...rpmsg_start_lock(struct vhost_rpmsg *vr, struct vhost_rpmsg_iter *iter,
> + unsigned int qid, ssize_t len)
> + __acquires(vq->mutex)
> +{
> + struct vhost_virtqueue *vq = vr->vq + qid;
> + unsigned int cnt;
> + ssize_t ret;
> + size_t tmp;
> +
> + if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
> + return -EINVAL;
> +
> + iter->vq = vq;
> +
> + mutex_lock(&vq->mutex);
> + vhost_disable_notify(&vr->dev, vq);
> +
> + iter->head = vhost_rpmsg_get_msg(vq, &cnt);
> + if (iter->head == vq->num)
> + iter->head = -EAGAIN;
> +
&g...
2020 Aug 04
2
[PATCH v4 4/4] vhost: add an RPMsg API
...e iterator is used
> + */
> +int vhost_rpmsg_start_lock(struct vhost_rpmsg *vr, struct vhost_rpmsg_iter *iter,
> + unsigned int qid, ssize_t len)
> + __acquires(vq->mutex)
> +{
> + struct vhost_virtqueue *vq = vr->vq + qid;
> + size_t tmp;
> +
> + if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
> + return -EINVAL;
> +
> + iter->vq = vq;
> +
> + mutex_lock(&vq->mutex);
> + vhost_disable_notify(&vr->dev, vq);
> +
> + iter->head = vhost_rpmsg_get_single(vq);
> + if (iter->head == vq->num)
> + iter->head = -EAGAIN;
> +
> + if...
2020 Aug 04
2
[PATCH v4 4/4] vhost: add an RPMsg API
...e iterator is used
> + */
> +int vhost_rpmsg_start_lock(struct vhost_rpmsg *vr, struct vhost_rpmsg_iter *iter,
> + unsigned int qid, ssize_t len)
> + __acquires(vq->mutex)
> +{
> + struct vhost_virtqueue *vq = vr->vq + qid;
> + size_t tmp;
> +
> + if (qid >= VIRTIO_RPMSG_NUM_OF_VQS)
> + return -EINVAL;
> +
> + iter->vq = vq;
> +
> + mutex_lock(&vq->mutex);
> + vhost_disable_notify(&vr->dev, vq);
> +
> + iter->head = vhost_rpmsg_get_single(vq);
> + if (iter->head == vq->num)
> + iter->head = -EAGAIN;
> +
> + if...
2020 Jul 22
13
[PATCH v4 0/4] Add a vhost RPMsg API
Hi,
Now that virtio-rpmsg endianness fixes have been merged we can
proceed with the next step.
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
-
2020 Jul 22
13
[PATCH v4 0/4] Add a vhost RPMsg API
Hi,
Now that virtio-rpmsg endianness fixes have been merged we can
proceed with the next step.
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
-
2020 May 16
9
[PATCH 0/6] Add a vhost RPMsg API
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases. It can however also be used for virtualisation scenarios,
e.g. when using KVM to run Linux on both the host and the guests.
This patch set adds a wrapper API to facilitate writing vhost
drivers for such RPMsg-based solutions. The first use case is an
audio DSP virtualisation project, currently under development,
2020 May 16
9
[PATCH 0/6] Add a vhost RPMsg API
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases. It can however also be used for virtualisation scenarios,
e.g. when using KVM to run Linux on both the host and the guests.
This patch set adds a wrapper API to facilitate writing vhost
drivers for such RPMsg-based solutions. The first use case is an
audio DSP virtualisation project, currently under development,
2020 Sep 15
0
[PATCH v5 4/4] vhost: add an RPMsg API
...; > > +enum {
> > > > > > + VIRTIO_RPMSG_RESPONSE, /* RPMsg response (host->guest) buffers */
> > > > > > + VIRTIO_RPMSG_REQUEST, /* RPMsg request (guest->host) buffers */
> > > > > > + /* Keep last */
> > > > > > + VIRTIO_RPMSG_NUM_OF_VQS,
> > > > > > +};
> > > > > > +
> > > > > > +struct vhost_rpmsg_ept;
> > > > > > +
> > > > > > +struct vhost_rpmsg_iter {
> > > > > > + struct iov_iter iov_iter;
> > > > > >...