From patchwork Tue Dec 5 15:22:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13480304 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hCALABCn" Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C34310FD for ; Tue, 5 Dec 2023 07:24:06 -0800 (PST) Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-2c9fbb846b7so30535021fa.2 for ; Tue, 05 Dec 2023 07:24:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701789844; x=1702394644; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=znkkF+su/afd2Tr2p7STGGP/AsviaGZ8tXbxC7ntFQQ=; b=hCALABCnl83FhcjqFvzcJPWcEMJXr07LRURMFq3NByD8NPpinwYajyMDC0Ah2mhzNR NboLXzu0iyeOvRDIMaiC6zlUVO+PQN3HLpLN9qWuRwyZ7feihbZLV9UeAwe/LfeS/Hsw FNJpzfqqC88WQvVvuonklumOXM7uQ8ITEbHhV+7PIhlMGONoWa+7jsykDL5bJD/WCjdU OFgC4+lbVXVhIWiNwPItRj+QIWxs01Pb3CF71n3i7V+bmoiVzdqjgExP1Xji68PPhg+I Qq+VzfMVSb+rzZG2VAYLTZLiMid614dfg7VBO5z4dn1u2p4tNPC5BZ1Wk10Oc5dIZ+gM zQHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701789844; x=1702394644; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=znkkF+su/afd2Tr2p7STGGP/AsviaGZ8tXbxC7ntFQQ=; b=mjkUAmFmJpDoMGJT5LlLj3kg0KhmPd14kNVUjIooO2EZkyhwgOKXg88RdMbAseKbPg PuqpsLpuCayrQeHPF3gnF0HgKruNNmrR8ZHaKYwIhJVZOy6j8A+ZNwV+VMgji+GRfrjW tg43dDX+LpDhIT7WEcPD2nm4g3AygSu4FsszFSiy9jLC2uETj1DYJvMsyK3bC6Apn1Dg NQfJHgd42UBYUHUzu3kHD2cia0Yk3NUVNRcTJt+iUHlq6DliJkz34wxfqoVKKNoDjdtc UZeFKYdnSEzSar1rZ1JaZiG2BN1CJfUgq4yJAprZfgD911A9Ian4VnvIsdWYe2jARa0V qDZQ== X-Gm-Message-State: AOJu0YyXSfZA5iaAX6P+cC1dp66F4/UCflMid27zdS1e4yaO4Js2C1s5 Atav2wmwj8K35rddKljVqEYESpARnxM= X-Google-Smtp-Source: AGHT+IFlpRpn089H98dV9NwM34Q5Ev+v94RNwhj0dfp/1DKUHGb7pGTQYqI4UPWRvfFdyNNr0fmoBQ== X-Received: by 2002:a2e:82c3:0:b0:2c9:f79d:1998 with SMTP id n3-20020a2e82c3000000b002c9f79d1998mr1993481ljh.93.1701789843771; Tue, 05 Dec 2023 07:24:03 -0800 (PST) Received: from 127.com ([2620:10d:c092:600::2:ebcf]) by smtp.gmail.com with ESMTPSA id s24-20020aa7d798000000b0054c9211021csm1221591edq.69.2023.12.05.07.24.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 07:24:03 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: Jens Axboe , asml.silence@gmail.com Subject: [PATCH liburing 1/5] tests: comment on io_uring zc and SO_ZEROCOPY Date: Tue, 5 Dec 2023 15:22:20 +0000 Message-ID: <84f20fd3b1b0f6bd43b7388f7e442205bf9502f6.1701789563.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Application writes can be using send-zerocopy.c as an example of io_uring zc enablement. However, it's a test, and we're testing all weird corner cases. One of them is setting SO_ZEROCOPY for io_uring zc, which is not needed, and applications should not do it. Add a comment in an attempt to limit misunderstanding. Signed-off-by: Pavel Begunkov --- test/send-zerocopy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/send-zerocopy.c b/test/send-zerocopy.c index 9828ac6..1b6dd77 100644 --- a/test/send-zerocopy.c +++ b/test/send-zerocopy.c @@ -278,6 +278,10 @@ static int create_socketpair_ip(struct sockaddr_storage *addr, #ifdef SO_ZEROCOPY int val = 1; + /* + * NOTE: apps must not set SO_ZEROCOPY when using io_uring zc. + * It's only here to test interactions with MSG_ZEROCOPY. + */ if (setsockopt(*sock_client, SOL_SOCKET, SO_ZEROCOPY, &val, sizeof(val))) { perror("setsockopt zc"); return 1; From patchwork Tue Dec 5 15:22:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13480305 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iXmIHF32" Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 50FD910D3 for ; Tue, 5 Dec 2023 07:24:06 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-54bfd4546fbso7121834a12.1 for ; Tue, 05 Dec 2023 07:24:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701789844; x=1702394644; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2QEtZM1ddOlob8bIMBELDAFyo8g74w6lP7y5ucd4Yz8=; b=iXmIHF32aGOyWyc4RMg63vM5l1+t2YDPmtvXxAlHobnPc817SVBAWv3jcP6bhcl53m unlYJqj3dyfM73h7sfmvLd9errVKHT1pt3FnaoRNprZY8+MMYvNJeHyKJ2pRMbouNYOD EJVoUQeTumWGZ4R2BOzkkhwxheOPSq+Anh6/QPol1d+xsZtOE9jumzxjY6NrPyUztPnQ rpBBDXU0IH5B3wReXvw6wZ3EUNc52GbDD3KNp0M/rAuDk98m/8DtxrbyWKtW3RvWPG4F rPr/810U05ZzgG41Qr81BYmJZrZVGESuvyacrqWWRoPbHJeCAMWpedarNLb6gUpuVOQp 5JhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701789844; x=1702394644; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2QEtZM1ddOlob8bIMBELDAFyo8g74w6lP7y5ucd4Yz8=; b=Hj/D7Nmt7ndhuov8WlUmzCK6BNfHtN2M4A7nSPL20KqyVxEcT6my9k4a9U1hMK3VuC 1bgJkNjVTivUblmXKLBAmpUvzfheS8AHYM16/etUBsREed9HDBNIIm/OY4kk50xoF9WX yg9b170jPHDc4L+1RgVUsvfEesVtpFok0Y1Ysrl0txG/RyM0NC3fkA07Okdas9nQylGV 9lsjObD3aqVRP7et4s94Wyjhm23EGU7fjoi1NcQLLEXOyVamJHTMBo5kd72rOQUTlW4y kkE0AHI55JdJCIkK78mLPJy5LtJTI7EUxldKSigrSfx0H/TThkXDdYWkGi32ADIxeuBu QRZQ== X-Gm-Message-State: AOJu0YyrykQF3wHDh1bhlRkvjlOBAyoGnerYX5hBlA/Q2ZDYHM+IXcFT CVisjDujowbtFisiY0tPF+VZD0wylOA= X-Google-Smtp-Source: AGHT+IECk9duWCK6ssEvu4Xn+aPbRY9N/O48x3TwjF5RnBijgVajr4mOCpU0D5K7dlgaXifTkntG6A== X-Received: by 2002:a50:a404:0:b0:54c:6bce:375a with SMTP id u4-20020a50a404000000b0054c6bce375amr3680000edb.74.1701789844247; Tue, 05 Dec 2023 07:24:04 -0800 (PST) Received: from 127.com ([2620:10d:c092:600::2:ebcf]) by smtp.gmail.com with ESMTPSA id s24-20020aa7d798000000b0054c9211021csm1221591edq.69.2023.12.05.07.24.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 07:24:03 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: Jens Axboe , asml.silence@gmail.com Subject: [PATCH liburing 2/5] examples/sendzc: remove get time overhead Date: Tue, 5 Dec 2023 15:22:21 +0000 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 We call gettimeofday_ms() for each loop iteration, which annoyingly adds ~2% of overhead. We don't want to see it there, it should only be testing io_uring and the networking stack, so ammortise it to nothingness. Signed-off-by: Pavel Begunkov --- examples/send-zerocopy.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/examples/send-zerocopy.c b/examples/send-zerocopy.c index 1f3b220..19cf961 100644 --- a/examples/send-zerocopy.c +++ b/examples/send-zerocopy.c @@ -52,6 +52,7 @@ struct thread_data { int idx; unsigned long long packets; unsigned long long bytes; + unsigned long long dt_ms; struct sockaddr_storage dst_addr; int fd; }; @@ -315,10 +316,11 @@ static void do_tx(struct thread_data *td, int domain, int type, int protocol) const int notif_slack = 128; struct io_uring ring; struct iovec iov; - uint64_t tstop; + uint64_t tstart; int i, fd, ret; int compl_cqes = 0; int ring_flags = IORING_SETUP_COOP_TASKRUN | IORING_SETUP_SINGLE_ISSUER; + unsigned loop = 0; if (cfg_defer_taskrun) ring_flags |= IORING_SETUP_DEFER_TASKRUN; @@ -357,7 +359,7 @@ static void do_tx(struct thread_data *td, int domain, int type, int protocol) pthread_barrier_wait(&barrier); - tstop = gettimeofday_ms() + cfg_runtime_ms; + tstart = gettimeofday_ms(); do { struct io_uring_sqe *sqe; struct io_uring_cqe *cqe; @@ -419,7 +421,9 @@ static void do_tx(struct thread_data *td, int domain, int type, int protocol) } io_uring_cqe_seen(&ring, cqe); } - } while (gettimeofday_ms() < tstop); + } while ((++loop % 16 != 0) || gettimeofday_ms() < tstart + cfg_runtime_ms); + + td->dt_ms = gettimeofday_ms() - tstart; out_fail: shutdown(fd, SHUT_RDWR); @@ -536,6 +540,7 @@ static void parse_opts(int argc, char **argv) int main(int argc, char **argv) { + unsigned long long tsum = 0; unsigned long long packets = 0, bytes = 0; struct thread_data *td; const char *cfg_test; @@ -586,13 +591,18 @@ int main(int argc, char **argv) pthread_join(td->thread, &res); packets += td->packets; bytes += td->bytes; + tsum += td->dt_ms; + } + tsum = tsum / cfg_nr_threads; + + if (!tsum) { + fprintf(stderr, "The run is too short, can't gather stats\n"); + } else { + fprintf(stderr, "packets=%llu (MB=%llu), rps=%llu (MB/s=%llu)\n", + packets, bytes >> 20, + packets * 1000 / tsum, + (bytes >> 20) * 1000 / tsum); } - - fprintf(stderr, "packets=%llu (MB=%llu), rps=%llu (MB/s=%llu)\n", - packets, bytes >> 20, - packets / (cfg_runtime_ms / 1000), - (bytes >> 20) / (cfg_runtime_ms / 1000)); - pthread_barrier_destroy(&barrier); return 0; } From patchwork Tue Dec 5 15:22:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13480306 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GzL3XbJs" Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0ED6210F6 for ; Tue, 5 Dec 2023 07:24:07 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-54d0ae6cf20so1332767a12.0 for ; Tue, 05 Dec 2023 07:24:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701789845; x=1702394645; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YblFeZL8BaJUbavfZ9HG7Ur3HsYlTKtnN8xzvgYa01U=; b=GzL3XbJsTljcWTTrgAzLxkd4X/qCys+l+XkYOYjBQiGEyo4lqbOtvMUdgCm3X37UIJ WIXsf50HCd3m2gGJpPsoAOq7aw9LNNbeGG4iEs4qm1eSePdRtvifRv504Y/RBZm2rLT4 8r/ScSi4WyZj3KjWSckY/N4dM80eWXuRagzIj+YpSU5NldtdedjFS1Ez0fYBfV0NXHS3 DWh8yvsYTicBspmk8x7KkB3CRKQoNGy4/7t2rwft0WLbBFyfcox7zo2laG+DVVdWiUHe COyzR4Hbv7m8ttQMJzOhBY27seLbWXM2giZYxM7Ta436Rb7I0+9t8CcOdsoZRTA2Iu6n +rEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701789845; x=1702394645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YblFeZL8BaJUbavfZ9HG7Ur3HsYlTKtnN8xzvgYa01U=; b=H8Q1Js5yn5tBx5F0JfnikudPPZvmwlyGn6v7c03fz22Zc4gYatLlmtcQjbvOjsZOLG cuVejzaPkozy1KfSKMHnlRZVfJdKzlLtKzOm4vC85VORzLb8lUHS2u+bGxxIy//Fb3en 6nDsv24Ie55uPF1IC+bhZ7YM1IUWreiFbVLjMsetAScfMh/HoyYg5b8dLtnnS/uRUTxB C308EyrMjcfcmZyXtE1c8KQ7r2DcYm2crdhVfRpNYlc2ZFg6cSGo5R+/Q5yrqiCiLKBQ bZq7srXILDLbaz/T1GTmuAdHb/nYWbGm1ioZHt1dztZs/a4G6uyI502bqA9G02edKYY7 ii9Q== X-Gm-Message-State: AOJu0YwCsYN0dlf4HdSoImjvgHvCbwMMsYsAG+MDZ/pLTzVkMdTIpdXr Z46F1jySKqtf1BSOdPvkLf/HRMtlyPk= X-Google-Smtp-Source: AGHT+IGrokBjR+N5ErTVcO4R3x5IXIMqVQf1fwTrZ+UXR1FDGY+QX12HUXL1nSZCgQwqRWiCYap4TQ== X-Received: by 2002:a50:8e4f:0:b0:548:4785:e4f9 with SMTP id 15-20020a508e4f000000b005484785e4f9mr4585482edx.39.1701789845318; Tue, 05 Dec 2023 07:24:05 -0800 (PST) Received: from 127.com ([2620:10d:c092:600::2:ebcf]) by smtp.gmail.com with ESMTPSA id s24-20020aa7d798000000b0054c9211021csm1221591edq.69.2023.12.05.07.24.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 07:24:04 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: Jens Axboe , asml.silence@gmail.com Subject: [PATCH liburing 3/5] examples/sendzc: use stdout for stats Date: Tue, 5 Dec 2023 15:22:22 +0000 Message-ID: <4401869d414e2d503a8a16e3c3791f5ef86b375d.1701789563.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 stderr is not the right place to print a valid result of the program, use stdout. Signed-off-by: Pavel Begunkov --- examples/send-zerocopy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/send-zerocopy.c b/examples/send-zerocopy.c index 19cf961..9725d0b 100644 --- a/examples/send-zerocopy.c +++ b/examples/send-zerocopy.c @@ -596,9 +596,9 @@ int main(int argc, char **argv) tsum = tsum / cfg_nr_threads; if (!tsum) { - fprintf(stderr, "The run is too short, can't gather stats\n"); + printf("The run is too short, can't gather stats\n"); } else { - fprintf(stderr, "packets=%llu (MB=%llu), rps=%llu (MB/s=%llu)\n", + printf("packets=%llu (MB=%llu), rps=%llu (MB/s=%llu)\n", packets, bytes >> 20, packets * 1000 / tsum, (bytes >> 20) * 1000 / tsum); From patchwork Tue Dec 5 15:22:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13480307 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Btdsm94c" Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B6A431705 for ; Tue, 5 Dec 2023 07:24:07 -0800 (PST) Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-50c0f6b1015so282453e87.3 for ; Tue, 05 Dec 2023 07:24:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701789846; x=1702394646; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=je/vg8f82xCfwDvxT7gCSUQJp1afzamAFLgk+nn4sZY=; b=Btdsm94c1C48hoGUQXjKJpOvNcWB6GrfH9vxwgXAl5zQm4goBk1vWo45xLr/8YW4Fi +nHGBIn8YRpj886P/e7vlOV27ywGZ9NEDPxruLMdAiN0Cu8htRcVFtVdoi6bXLyVduuk zXCQhhDL/ohxAq2D8OO35wosjSEu08nZabFOcEqu5SoBgL2wYwtriVg5O7b5mW9XiFg9 tWFvAHFFRygQDODDDuU+/FK5vMzrl29ZzjGls6h/h9zFxeK+wZYmjbToMSGfzANlBk7w gkif+EtwA/71bkQyG3pLWzgDuoVWqEWQNmjzX8eZLA1F5AqvVJRf7i3/XWfjBpYHV2wf C4TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701789846; x=1702394646; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=je/vg8f82xCfwDvxT7gCSUQJp1afzamAFLgk+nn4sZY=; b=X5RfY15KqhpcQZ0hVn6o7+x+TgSURO5ddILWYvXmNDqYQCKTO7X7H6cPHp1o6NYOEX 2Ij+IsJ6+SzKpaQect2XpbTwN80pnzTj2B4J0dgY8uSLBbbu+txS+QRJYKRKwQFe8kkp 2BfhKSJKxVp9jqtMdzJ8Nrwg/OWojcQjoRDGST+3BfJNxfTBWfSl6OW14tvszRV1MJGJ QMFGZBCNy7PLacEinolLpHzsCAhlhGyjTNZZuS2WQQO7e3ARdgV+VoELVzVL5kx/7HKq P5hEcnH0Ep7aaBhfp5uKgZOCfhlCNa/DptojpIu1A8stsykJaAST6llWGca4N6NFlnN6 cC8w== X-Gm-Message-State: AOJu0YwkAg+OhUqSUjINvFILRo6m/nQaxWH6ZWsjE6uZpWaowoW/kFc0 xqLvSCmXlQZbkYIKfzgXExHSPJxgpts= X-Google-Smtp-Source: AGHT+IE+6S72aDzKqtwXOIsg77tdvCg9w/hfTv4YdDK7jDzXSk3DWjTJgZpcQB+NFNu6gHDScHfueQ== X-Received: by 2002:ac2:5fad:0:b0:50b:e195:d38b with SMTP id s13-20020ac25fad000000b0050be195d38bmr2403119lfe.25.1701789845694; Tue, 05 Dec 2023 07:24:05 -0800 (PST) Received: from 127.com ([2620:10d:c092:600::2:ebcf]) by smtp.gmail.com with ESMTPSA id s24-20020aa7d798000000b0054c9211021csm1221591edq.69.2023.12.05.07.24.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 07:24:05 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: Jens Axboe , asml.silence@gmail.com Subject: [PATCH liburing 4/5] examples/sendzc: try to print stats on SIGINT Date: Tue, 5 Dec 2023 15:22:23 +0000 Message-ID: <08d8d03b0f4e17afb8643996b8d8f55a730d1a4f.1701789563.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 If interrupted in the middle of a long run, instead of silently crashing, as we currently do, we can try to print intermediate stats. That's a good use case, and it's always annoying loosing results when you forget about it. Signed-off-by: Pavel Begunkov --- examples/send-zerocopy.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/examples/send-zerocopy.c b/examples/send-zerocopy.c index 9725d0b..84d2323 100644 --- a/examples/send-zerocopy.c +++ b/examples/send-zerocopy.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "liburing.h" @@ -82,6 +83,16 @@ static char *payload; static struct thread_data threads[MAX_THREADS]; static pthread_barrier_t barrier; +static bool should_stop = false; + +static void sigint_handler(int sig) +{ + /* kill if should_stop can't unblock threads fast enough */ + if (should_stop) + _exit(-1); + should_stop = true; +} + /* * Implementation of error(3), prints an error message and exits. */ @@ -421,6 +432,8 @@ static void do_tx(struct thread_data *td, int domain, int type, int protocol) } io_uring_cqe_seen(&ring, cqe); } + if (should_stop) + break; } while ((++loop % 16 != 0) || gettimeofday_ms() < tstart + cfg_runtime_ms); td->dt_ms = gettimeofday_ms() - tstart; @@ -582,6 +595,9 @@ int main(int argc, char **argv) if (cfg_rx) do_setup_rx(cfg_family, cfg_type, 0); + if (!cfg_rx) + signal(SIGINT, sigint_handler); + for (i = 0; i < cfg_nr_threads; i++) pthread_create(&threads[i].thread, NULL, !cfg_rx ? do_test : do_rx, &threads[i]); From patchwork Tue Dec 5 15:22:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13480308 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mT7pK6SI" Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 304DD19B1 for ; Tue, 5 Dec 2023 07:24:08 -0800 (PST) Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-54c7744a93fso4389409a12.2 for ; Tue, 05 Dec 2023 07:24:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701789846; x=1702394646; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tC4ZuU4FwCpLW3ILkOiQ3z01qz2B/fhVJo40MJ+SuLw=; b=mT7pK6SIZVrrwSv13Iyko3BWIODHlaeGQQCQ5w+ILHYY1MOKY53fZ6JpJlPx7PBX5Q JEB4PRLmIXuSfhlfSSaL0aum5YS28CE7hVITMPCjZXj+Te+AQDnTVto3hPlS1GzeH5Om O6N6iZnt+saRVwMBzj9TkeokjERxL1VWcbWWtZRUvxDAWcDNgmqb5+laDZ8mRwEp1Fon 7BzbfIepUDoZzkrbtMga7h2+VbcRUqR7iizyB/ULyoGqnb53PFYM1ua2q8Co7LmfCL+S 7o3F97H22LADvM9DKQKnOsISByTPUn5zGS2tHRcttan5QkksW2BxNH07QNT2zcLJTsad 2+hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701789846; x=1702394646; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tC4ZuU4FwCpLW3ILkOiQ3z01qz2B/fhVJo40MJ+SuLw=; b=Rw5r03Je9yhenk6ygSnj2szzuu6Gn7NrNHrB9dPynNkuYh1tNisme88SHGqYDZD3G2 2VIdReXGQiSsZxMx56PJMcC8T773eiw+brE9Nw667RbbJQxWuTMU01gQ7Ic+jJA+KYJc hl/gcojAJgPGVLVT+tw5KVz2hsvBsSDPYqBjm4H0FWKTxQMTOOCKurQXGdqplroAKFdi SCPi+NOG/Iyuan1L84R5+KzaiSnSb3EVy67BSoQ92y+CxqqSMNkns0BwgQBVJ+Z+3+9o RnLRzYUZ7zki4IEIGHbRmSirylt7oyAyQSxPSWvuZGfeHJAObaT/rJN7tXNxq/WyjAKf k4oA== X-Gm-Message-State: AOJu0YzQw/HZYbEVqrAilIAo57TcozN/e68J5/FfTR1mL92h6LKJ+TGZ CyzGq9tG1TzmuA1JbJ3vrBMbfy0qlB4= X-Google-Smtp-Source: AGHT+IFM4n5eIPpHlsOxA4LI/s7NoAhTdYEQb4JrKnzIX1p3/ZEgxiwtMMd+r44lUM/Uh+jBhQ5nqw== X-Received: by 2002:a50:9344:0:b0:54a:f1db:c2b3 with SMTP id n4-20020a509344000000b0054af1dbc2b3mr4354916eda.0.1701789846094; Tue, 05 Dec 2023 07:24:06 -0800 (PST) Received: from 127.com ([2620:10d:c092:600::2:ebcf]) by smtp.gmail.com with ESMTPSA id s24-20020aa7d798000000b0054c9211021csm1221591edq.69.2023.12.05.07.24.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 07:24:05 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: Jens Axboe , asml.silence@gmail.com Subject: [PATCH liburing 5/5] examples/sendzc: improve help message Date: Tue, 5 Dec 2023 15:22:24 +0000 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Signed-off-by: Pavel Begunkov --- 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] [-z] [-s] " - "(-4|-6) [-t