Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> --- examples/send-zerocopy.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/examples/send-zerocopy.c b/examples/send-zerocopy.c index 84d2323..d7eb46a 100644 --- a/examples/send-zerocopy.c +++ b/examples/send-zerocopy.c @@ -452,7 +452,6 @@ out_fail: io_uring_queue_exit(&ring); } - static void *do_test(void *arg) { struct thread_data *td = arg; @@ -467,8 +466,24 @@ static void *do_test(void *arg) static void usage(const char *filepath) { - t_error(1, 0, "Usage: %s [-n<N>] [-z<val>] [-s<payload size>] " - "(-4|-6) [-t<time s>] -D<dst_ip> udp", filepath); + printf("Usage:\t%s <protocol> <ip-version> -D<addr> [options]\n", filepath); + printf("\t%s <protocol> <ip-version> -R [options]\n\n", filepath); + + printf(" -4\t\tUse IPv4\n"); + printf(" -6\t\tUse IPv4\n"); + printf(" -D <address>\tDestination address\n"); + printf(" -p <port>\tServer port to listen on/connect to\n"); + printf(" -s <size>\tBytes per request\n"); + printf(" -s <size>\tBytes per request\n"); + printf(" -n <nr>\tNumber of parallel requests\n"); + printf(" -z <mode>\tZerocopy mode, 0 to disable, enabled otherwise\n"); + printf(" -b <mode>\tUse registered buffers\n"); + printf(" -l <mode>\tUse huge pages\n"); + printf(" -d\t\tUse defer taskrun\n"); + printf(" -C <cpu>\tPin to the specified CPU\n"); + printf(" -T <nr>\tNumber of threads to use for sending\n"); + printf(" -R\t\tPlay the server role\n"); + printf(" -t <seconds>\tTime in seconds\n"); } static void parse_opts(int argc, char **argv) @@ -480,8 +495,10 @@ static void parse_opts(int argc, char **argv) int c; char *daddr = NULL; - if (argc <= 1) + if (argc <= 1) { usage(argv[0]); + exit(0); + } cfg_payload_len = max_payload_len; -- 2.43.0