[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221227022528.609839-6-mie@igel.co.jp>
Date: Tue, 27 Dec 2022 11:25:27 +0900
From: Shunsuke Mie <mie@...l.co.jp>
To: "Michael S. Tsirkin" <mst@...hat.com>,
Jason Wang <jasowang@...hat.com>,
Rusty Russell <rusty@...tcorp.com.au>
Cc: kvm@...r.kernel.org, virtualization@...ts.linux-foundation.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
Shunsuke Mie <mie@...l.co.jp>
Subject: [RFC PATCH 5/9] tools/virtio: convert to use new unified vringh APIs
vringh_*_user APIs is being removed without vringh_init_user(). so change
to use new APIs.
Signed-off-by: Shunsuke Mie <mie@...l.co.jp>
---
tools/virtio/vringh_test.c | 89 +++++++++++++++++++-------------------
1 file changed, 44 insertions(+), 45 deletions(-)
diff --git a/tools/virtio/vringh_test.c b/tools/virtio/vringh_test.c
index 6c9533b8a2ca..068c6d5aa4fd 100644
--- a/tools/virtio/vringh_test.c
+++ b/tools/virtio/vringh_test.c
@@ -187,7 +187,7 @@ static int parallel_test(u64 features,
vring_init(&vrh.vring, RINGSIZE, host_map, ALIGN);
vringh_init_user(&vrh, features, RINGSIZE, true,
- vrh.vring.desc, vrh.vring.avail, vrh.vring.used);
+ vrh.vring.desc, vrh.vring.avail, vrh.vring.used, getrange);
CPU_SET(first_cpu, &cpu_set);
if (sched_setaffinity(getpid(), sizeof(cpu_set), &cpu_set))
errx(1, "Could not set affinity to cpu %u", first_cpu);
@@ -202,9 +202,9 @@ static int parallel_test(u64 features,
err = vringh_get_head(&vrh, &head);
if (err != 0)
break;
- err = vringh_need_notify_user(&vrh);
+ err = vringh_need_notify(&vrh);
if (err < 0)
- errx(1, "vringh_need_notify_user: %i",
+ errx(1, "vringh_need_notify: %i",
err);
if (err) {
write(to_guest[1], "", 1);
@@ -223,46 +223,45 @@ static int parallel_test(u64 features,
host_wiov,
ARRAY_SIZE(host_wiov));
- err = vringh_getdesc_user(&vrh, &riov, &wiov,
- getrange, &head);
+ err = vringh_getdesc(&vrh, &riov, &wiov, &head);
}
if (err == 0) {
- err = vringh_need_notify_user(&vrh);
+ err = vringh_need_notify(&vrh);
if (err < 0)
- errx(1, "vringh_need_notify_user: %i",
+ errx(1, "vringh_need_notify: %i",
err);
if (err) {
write(to_guest[1], "", 1);
notifies++;
}
- if (!vringh_notify_enable_user(&vrh))
+ if (!vringh_notify_enable(&vrh))
continue;
/* Swallow all notifies at once. */
if (read(to_host[0], buf, sizeof(buf)) < 1)
break;
- vringh_notify_disable_user(&vrh);
+ vringh_notify_disable(&vrh);
receives++;
continue;
}
if (err != 1)
- errx(1, "vringh_getdesc_user: %i", err);
+ errx(1, "vringh_getdesc: %i", err);
/* We simply copy bytes. */
if (riov.used) {
- rlen = vringh_iov_pull_user(&riov, rbuf,
+ rlen = vringh_iov_pull(&vrh, &riov, rbuf,
sizeof(rbuf));
if (rlen != 4)
- errx(1, "vringh_iov_pull_user: %i",
+ errx(1, "vringh_iov_pull: %i",
rlen);
assert(riov.i == riov.used);
written = 0;
} else {
- err = vringh_iov_push_user(&wiov, rbuf, rlen);
+ err = vringh_iov_push(&vrh, &wiov, rbuf, rlen);
if (err != rlen)
- errx(1, "vringh_iov_push_user: %i",
+ errx(1, "vringh_iov_push: %i",
err);
assert(wiov.i == wiov.used);
written = err;
@@ -270,14 +269,14 @@ static int parallel_test(u64 features,
complete:
xfers++;
- err = vringh_complete_user(&vrh, head, written);
+ err = vringh_complete(&vrh, head, written);
if (err != 0)
- errx(1, "vringh_complete_user: %i", err);
+ errx(1, "vringh_complete: %i", err);
}
- err = vringh_need_notify_user(&vrh);
+ err = vringh_need_notify(&vrh);
if (err < 0)
- errx(1, "vringh_need_notify_user: %i", err);
+ errx(1, "vringh_need_notify: %i", err);
if (err) {
write(to_guest[1], "", 1);
notifies++;
@@ -493,12 +492,12 @@ int main(int argc, char *argv[])
/* Set up host side. */
vring_init(&vrh.vring, RINGSIZE, __user_addr_min, ALIGN);
vringh_init_user(&vrh, vdev.features, RINGSIZE, true,
- vrh.vring.desc, vrh.vring.avail, vrh.vring.used);
+ vrh.vring.desc, vrh.vring.avail, vrh.vring.used, getrange);
/* No descriptor to get yet... */
- err = vringh_getdesc_user(&vrh, &riov, &wiov, getrange, &head);
+ err = vringh_getdesc(&vrh, &riov, &wiov, &head);
if (err != 0)
- errx(1, "vringh_getdesc_user: %i", err);
+ errx(1, "vringh_getdesc: %i", err);
/* Guest puts in a descriptor. */
memcpy(__user_addr_max - 1, "a", 1);
@@ -520,9 +519,9 @@ int main(int argc, char *argv[])
vringh_kiov_init(&riov, host_riov, ARRAY_SIZE(host_riov));
vringh_kiov_init(&wiov, host_wiov, ARRAY_SIZE(host_wiov));
- err = vringh_getdesc_user(&vrh, &riov, &wiov, getrange, &head);
+ err = vringh_getdesc(&vrh, &riov, &wiov, &head);
if (err != 1)
- errx(1, "vringh_getdesc_user: %i", err);
+ errx(1, "vringh_getdesc: %i", err);
assert(riov.used == 1);
assert(riov.iov[0].iov_base == __user_addr_max - 1);
@@ -539,25 +538,25 @@ int main(int argc, char *argv[])
assert(wiov.iov[1].iov_len == 1);
}
- err = vringh_iov_pull_user(&riov, buf, 5);
+ err = vringh_iov_pull(&vrh, &riov, buf, 5);
if (err != 1)
- errx(1, "vringh_iov_pull_user: %i", err);
+ errx(1, "vringh_iov_pull: %i", err);
assert(buf[0] == 'a');
assert(riov.i == 1);
- assert(vringh_iov_pull_user(&riov, buf, 5) == 0);
+ assert(vringh_iov_pull(&vrh, &riov, buf, 5) == 0);
memcpy(buf, "bcdef", 5);
- err = vringh_iov_push_user(&wiov, buf, 5);
+ err = vringh_iov_push(&vrh, &wiov, buf, 5);
if (err != 2)
- errx(1, "vringh_iov_push_user: %i", err);
+ errx(1, "vringh_iov_push: %i", err);
assert(memcmp(__user_addr_max - 3, "bc", 2) == 0);
assert(wiov.i == wiov.used);
- assert(vringh_iov_push_user(&wiov, buf, 5) == 0);
+ assert(vringh_iov_push(&vrh, &wiov, buf, 5) == 0);
/* Host is done. */
- err = vringh_complete_user(&vrh, head, err);
+ err = vringh_complete(&vrh, head, err);
if (err != 0)
- errx(1, "vringh_complete_user: %i", err);
+ errx(1, "vringh_complete: %i", err);
/* Guest should see used token now. */
__kfree_ignore_start = __user_addr_min + vring_size(RINGSIZE, ALIGN);
@@ -589,9 +588,9 @@ int main(int argc, char *argv[])
vringh_kiov_init(&riov, host_riov, ARRAY_SIZE(host_riov));
vringh_kiov_init(&wiov, host_wiov, ARRAY_SIZE(host_wiov));
- err = vringh_getdesc_user(&vrh, &riov, &wiov, getrange, &head);
+ err = vringh_getdesc(&vrh, &riov, &wiov, &head);
if (err != 1)
- errx(1, "vringh_getdesc_user: %i", err);
+ errx(1, "vringh_getdesc: %i", err);
assert(riov.max_num & VRINGH_IOV_ALLOCATED);
assert(riov.iov != host_riov);
@@ -605,9 +604,9 @@ int main(int argc, char *argv[])
/* Pull data back out (in odd chunks), should be as expected. */
for (i = 0; i < RINGSIZE * USER_MEM/4; i += 3) {
- err = vringh_iov_pull_user(&riov, buf, 3);
+ err = vringh_iov_pull(&vrh, &riov, buf, 3);
if (err != 3 && i + err != RINGSIZE * USER_MEM/4)
- errx(1, "vringh_iov_pull_user large: %i", err);
+ errx(1, "vringh_iov_pulllarge: %i", err);
assert(buf[0] == (char)i);
assert(err < 2 || buf[1] == (char)(i + 1));
assert(err < 3 || buf[2] == (char)(i + 2));
@@ -619,9 +618,9 @@ int main(int argc, char *argv[])
/* Complete using multi interface, just because we can. */
used[0].id = head;
used[0].len = 0;
- err = vringh_complete_multi_user(&vrh, used, 1);
+ err = vringh_complete_multi(&vrh, used, 1);
if (err)
- errx(1, "vringh_complete_multi_user(1): %i", err);
+ errx(1, "vringh_complete_multi(1): %i", err);
/* Free up those descriptors. */
ret = virtqueue_get_buf(vq, &i);
@@ -642,17 +641,17 @@ int main(int argc, char *argv[])
vringh_kiov_init(&wiov, host_wiov, ARRAY_SIZE(host_wiov));
for (i = 0; i < RINGSIZE; i++) {
- err = vringh_getdesc_user(&vrh, &riov, &wiov, getrange, &head);
+ err = vringh_getdesc(&vrh, &riov, &wiov, &head);
if (err != 1)
- errx(1, "vringh_getdesc_user: %i", err);
+ errx(1, "vringh_getdesc: %i", err);
used[i].id = head;
used[i].len = 0;
}
/* Make sure it wraps around ring, to test! */
assert(vrh.vring.used->idx % RINGSIZE != 0);
- err = vringh_complete_multi_user(&vrh, used, RINGSIZE);
+ err = vringh_complete_multi(&vrh, used, RINGSIZE);
if (err)
- errx(1, "vringh_complete_multi_user: %i", err);
+ errx(1, "vringh_complete_multi: %i", err);
/* Free those buffers. */
for (i = 0; i < RINGSIZE; i++) {
@@ -726,19 +725,19 @@ int main(int argc, char *argv[])
vringh_kiov_init(&riov, host_riov, ARRAY_SIZE(host_riov));
vringh_kiov_init(&wiov, host_wiov, ARRAY_SIZE(host_wiov));
- err = vringh_getdesc_user(&vrh, &riov, &wiov, getrange, &head);
+ err = vringh_getdesc(&vrh, &riov, &wiov, &head);
if (err != 1)
- errx(1, "vringh_getdesc_user: %i", err);
+ errx(1, "vringh_getdesc: %i", err);
if (head != 0)
- errx(1, "vringh_getdesc_user: head %i not 0", head);
+ errx(1, "vringh_getdesc: head %i not 0", head);
assert(riov.max_num & VRINGH_IOV_ALLOCATED);
if (getrange != getrange_slow)
assert(riov.used == 7);
else
assert(riov.used == 28);
- err = vringh_iov_pull_user(&riov, buf, 29);
+ err = vringh_iov_pull(&vrh, &riov, buf, 29);
assert(err == 28);
/* Data should be linear. */
--
2.25.1
Powered by blists - more mailing lists