From patchwork Thu Nov 24 16:28:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055169 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2ACEAC4332F for ; Thu, 24 Nov 2022 16:29:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229497AbiKXQ3T (ORCPT ); Thu, 24 Nov 2022 11:29:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229379AbiKXQ3S (ORCPT ); Thu, 24 Nov 2022 11:29:18 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36C2D16FB34 for ; Thu, 24 Nov 2022 08:29:18 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id 4843281754; Thu, 24 Nov 2022 16:29:14 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307358; bh=lWLuJAgrOcmH7yJVZ5Yi6DKqREayPo1EvH6B5Qi8OO4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oXYd+mtIXoYA4hRe5LAzXPE/GjTETgQ+3HNiDg/NNCeX0fa6ai0eKnLAVfS8itrQG FqVipBN4qWZHl6Ve27hP4+VD1zVbERRkM6g5oiLYGLfKs9niT5ZnsxoDiAvrPe9SDW ywYnJ+HULEwDcsL6vW5S/na94J1sdp2BjF0zwuRXc1iNiosNUuPAfVBGe2u0K5oTMV iYjQNSyM79LMVlvv+JdieCF9NvrfpuiBoCqcA8HrX7EXJ8fFjiqjXJLZuKCf1GIdhr Fa+G8y3Amvs8vDOyZckxPOKQUBMg+bF5OwCMVyw2jNErgfnZ8SushuGYDgqy5wSqn7 Kp8EDaWDTXg0Q== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 1/8] queue: Fix typo "entererd" -> "entered" Date: Thu, 24 Nov 2022 23:28:54 +0700 Message-Id: <20221124162633.3856761-2-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi s/entererd/entered/ Signed-off-by: Ammar Faizi --- src/queue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/queue.c b/src/queue.c index c06bcc3..feea0ad 100644 --- a/src/queue.c +++ b/src/queue.c @@ -81,7 +81,7 @@ static int _io_uring_get_cqe(struct io_uring *ring, } if (!cqe && !data->wait_nr && !data->submit) { /* - * If we already looped once, we already entererd + * If we already looped once, we already entered * the kernel. Since there's nothing to submit or * wait for, don't keep retrying. */ From patchwork Thu Nov 24 16:28:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055170 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA783C433FE for ; Thu, 24 Nov 2022 16:29:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229515AbiKXQ3Y (ORCPT ); Thu, 24 Nov 2022 11:29:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229502AbiKXQ3X (ORCPT ); Thu, 24 Nov 2022 11:29:23 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 59FAB170277 for ; Thu, 24 Nov 2022 08:29:22 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id 838CF8164B; Thu, 24 Nov 2022 16:29:18 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307362; bh=WNN4MSAzEnSdNPtHpyHl24nIGH/PyYRQzsAIHhjoQtM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bK/PexH8up11U/oWlP8PXaTxgRhvnzDnYjrJ2LYiUtpiBXRoiei0E/Ccmlzg54Vz4 nucKYLLS/VrjBuEz5gH+RhH5iyA2Xi3i4AACb36AOToTYJTnGZBvRRakJmSb0RnYBZ Jy9SKifV78EOsxJ3sbLzFb/HYD/yvnba0Q4ThyWYhcQ+xpnVkcj/2dvUpeRgdhMZo7 VWj1/DIwJP8Ca4Snd8Vx/4stKZ+NUg56BMxS/O2IX88qae0oJ5Y4rij62h9pQ01AQN J6biKIUQC/tbnUV/gTgBB8zR3O7tUUFIMW80ec8GDFL+4i4z5I1FaKNd6s+YPcispg OU8YyjwB6Gchg== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 2/8] queue: Mark `__io_uring_flush_sq()` as static Date: Thu, 24 Nov 2022 23:28:55 +0700 Message-Id: <20221124162633.3856761-3-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi This function is not exported, mark it as static. Clang says: queue.c:204:10: error: no previous prototype for function \ '__io_uring_flush_sq' [-Werror,-Wmissing-prototypes] \ unsigned __io_uring_flush_sq(struct io_uring *ring) ^ queue.c:204:1: note: declare 'static' if the function is not intended \ to be used outside of this translation unit \ unsigned __io_uring_flush_sq(struct io_uring *ring) Side note: There was an attempt to export this function because it is used by test/iopoll.c and test/io_uring_passthrough.c. But after a discussion with Dylan and Jens, it's better to make a copy of this function for those tests only instead of exporting it. Therefore, also create a copy of this function in test/helpers.c. Cc: Dylan Yudaken Cc: Jens Axboe Link: https://lore.kernel.org/io-uring/6491d7b5-0a52-e6d1-0f86-d36ec88bbc15@kernel.dk Signed-off-by: Ammar Faizi --- src/queue.c | 2 +- test/helpers.c | 33 +++++++++++++++++++++++++++++++++ test/helpers.h | 2 ++ test/io_uring_passthrough.c | 2 -- test/iopoll.c | 2 -- 5 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/queue.c b/src/queue.c index feea0ad..b784b10 100644 --- a/src/queue.c +++ b/src/queue.c @@ -201,7 +201,7 @@ again: * Sync internal state with kernel ring state on the SQ side. Returns the * number of pending items in the SQ ring, for the shared ring. */ -unsigned __io_uring_flush_sq(struct io_uring *ring) +static unsigned __io_uring_flush_sq(struct io_uring *ring) { struct io_uring_sq *sq = &ring->sq; unsigned tail = sq->sqe_tail; diff --git a/test/helpers.c b/test/helpers.c index 8fb32b8..869e903 100644 --- a/test/helpers.c +++ b/test/helpers.c @@ -266,3 +266,36 @@ bool t_probe_defer_taskrun(void) io_uring_queue_exit(&ring); return true; } + +/* + * Sync internal state with kernel ring state on the SQ side. Returns the + * number of pending items in the SQ ring, for the shared ring. + */ +unsigned __io_uring_flush_sq(struct io_uring *ring) +{ + struct io_uring_sq *sq = &ring->sq; + unsigned tail = sq->sqe_tail; + + if (sq->sqe_head != tail) { + sq->sqe_head = tail; + /* + * Ensure kernel sees the SQE updates before the tail update. + */ + if (!(ring->flags & IORING_SETUP_SQPOLL)) + IO_URING_WRITE_ONCE(*sq->ktail, tail); + else + io_uring_smp_store_release(sq->ktail, tail); + } + /* + * This _may_ look problematic, as we're not supposed to be reading + * SQ->head without acquire semantics. When we're in SQPOLL mode, the + * kernel submitter could be updating this right now. For non-SQPOLL, + * task itself does it, and there's no potential race. But even for + * SQPOLL, the load is going to be potentially out-of-date the very + * instant it's done, regardless or whether or not it's done + * atomically. Worst case, we're going to be over-estimating what + * we can submit. The point is, we need to be able to deal with this + * situation regardless of any perceived atomicity. + */ + return tail - *sq->khead; +} diff --git a/test/helpers.h b/test/helpers.h index 4375a9e..cb814ca 100644 --- a/test/helpers.h +++ b/test/helpers.h @@ -85,6 +85,8 @@ enum t_setup_ret t_register_buffers(struct io_uring *ring, bool t_probe_defer_taskrun(void); +unsigned __io_uring_flush_sq(struct io_uring *ring); + #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #ifdef __cplusplus diff --git a/test/io_uring_passthrough.c b/test/io_uring_passthrough.c index ee9ab87..d8468c5 100644 --- a/test/io_uring_passthrough.c +++ b/test/io_uring_passthrough.c @@ -268,8 +268,6 @@ static int test_io(const char *file, int tc, int read, int sqthread, return ret; } -extern unsigned __io_uring_flush_sq(struct io_uring *ring); - /* * Send a passthrough command that nvme will fail during submission. * This comes handy for testing error handling. diff --git a/test/iopoll.c b/test/iopoll.c index 20f91c7..f8ab1f1 100644 --- a/test/iopoll.c +++ b/test/iopoll.c @@ -201,8 +201,6 @@ err: return 1; } -extern unsigned __io_uring_flush_sq(struct io_uring *ring); - /* * if we are polling io_uring_submit needs to always enter the * kernel to fetch events From patchwork Thu Nov 24 16:28:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055171 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 210A2C433FE for ; Thu, 24 Nov 2022 16:29:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229502AbiKXQ32 (ORCPT ); Thu, 24 Nov 2022 11:29:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229379AbiKXQ31 (ORCPT ); Thu, 24 Nov 2022 11:29:27 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8D18170273 for ; Thu, 24 Nov 2022 08:29:26 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id A9CD381754; Thu, 24 Nov 2022 16:29:22 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307366; bh=Ov7T+cVML2fZWPau1xESLQDyLzqpY18IJ9L7HJxRzOs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lIBFbsbD/mCTU7jwTy94VYUTOgEke5VjBkoYDXe8R3CLW8xO5Fk0ucoeYtS/nQ57u v4PdC/s+zFggn9kvV3XIBIfSQnPyp5L1TCYRFqVCyiq4eKAYYS+5zKh9SnV1LZZ0JS lnXCUmag/nsWulKpdlH76tgQhiOqY4IVfP1FTJaDeSOZwse5qtw6N4amn0lnFJ2Dj9 A4M9lm81+5ZDMu8bMO3vRVarWD6zPQVbIBWv9TBkH2uESm0U0ZNm1Uy1K+0gO0RJly /8/U8dh2lajJQ4ZURbHS8wmZQ70rZ4zxfcdDqc1QpkJTAXrIR0QpkoQBiPGr+rlvBe rkz/aNqt7P7JQ== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 3/8] test/io_uring_setup: Remove unused functions Date: Thu, 24 Nov 2022 23:28:56 +0700 Message-Id: <20221124162633.3856761-4-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi When marking all internal functions as static after an attempt to integrate `-Wmissing-prototypes` flag. Unused functions are found: io_uring_setup.c:22:14: error: unused function 'features_string' [-Werror,-Wunused-function] static char *features_string(struct io_uring_params *p) ^ io_uring_setup.c:44:14: error: unused function 'flags_string' [-Werror,-Wunused-function] static char *flags_string(struct io_uring_params *p) ^ io_uring_setup.c:83:15: error: unused function 'dump_resv' [-Werror,-Wunused-function] static char * dump_resv(struct io_uring_params *p) ^ 3 errors generated. make[1]: *** [Makefile:215: io_uring_setup.t] Error 1 make[1]: *** Waiting for unfinished jobs.... Remove them. Signed-off-by: Ammar Faizi --- test/io_uring_setup.c | 82 ++----------------------------------------- 1 file changed, 2 insertions(+), 80 deletions(-) diff --git a/test/io_uring_setup.c b/test/io_uring_setup.c index d945421..9e1a353 100644 --- a/test/io_uring_setup.c +++ b/test/io_uring_setup.c @@ -19,86 +19,9 @@ #include "../syscall.h" -char *features_string(struct io_uring_params *p) -{ - static char flagstr[64]; - - if (!p || !p->features) - return "none"; - - if (p->features & ~IORING_FEAT_SINGLE_MMAP) { - snprintf(flagstr, 64, "0x%.8x", p->features); - return flagstr; - } - - if (p->features & IORING_FEAT_SINGLE_MMAP) - strncat(flagstr, "IORING_FEAT_SINGLE_MMAP", 64 - strlen(flagstr)); - - return flagstr; -} - -/* - * Attempt the call with the given args. Return 0 when expect matches - * the return value of the system call, 1 otherwise. - */ -char * -flags_string(struct io_uring_params *p) -{ - static char flagstr[64]; - int add_pipe = 0; - - memset(flagstr, 0, sizeof(flagstr)); - - if (!p || p->flags == 0) - return "none"; - - /* - * If unsupported flags are present, just print the bitmask. - */ - if (p->flags & ~(IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL | - IORING_SETUP_SQ_AFF)) { - snprintf(flagstr, 64, "0x%.8x", p->flags); - return flagstr; - } - - if (p->flags & IORING_SETUP_IOPOLL) { - strncat(flagstr, "IORING_SETUP_IOPOLL", 64 - strlen(flagstr)); - add_pipe = 1; - } - if (p->flags & IORING_SETUP_SQPOLL) { - if (add_pipe) - strncat(flagstr, "|", 64 - strlen(flagstr)); - else - add_pipe = 1; - strncat(flagstr, "IORING_SETUP_SQPOLL", 64 - strlen(flagstr)); - } - if (p->flags & IORING_SETUP_SQ_AFF) { - if (add_pipe) - strncat(flagstr, "|", 64 - strlen(flagstr)); - strncat(flagstr, "IORING_SETUP_SQ_AFF", 64 - strlen(flagstr)); - } - - return flagstr; -} - -char * -dump_resv(struct io_uring_params *p) -{ - static char resvstr[4096]; - - if (!p) - return ""; - - sprintf(resvstr, "0x%.8x 0x%.8x 0x%.8x", p->resv[0], - p->resv[1], p->resv[2]); - - return resvstr; -} - /* bogus: setup returns a valid fd on success... expect can't predict the fd we'll get, so this really only takes 1 parameter: error */ -int -try_io_uring_setup(unsigned entries, struct io_uring_params *p, int expect) +int try_io_uring_setup(unsigned entries, struct io_uring_params *p, int expect) { int ret; @@ -123,8 +46,7 @@ try_io_uring_setup(unsigned entries, struct io_uring_params *p, int expect) return 0; } -int -main(int argc, char **argv) +int main(int argc, char **argv) { int fd; unsigned int status = 0; From patchwork Thu Nov 24 16:28:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055172 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5A646C433FE for ; Thu, 24 Nov 2022 16:29:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229379AbiKXQ3b (ORCPT ); Thu, 24 Nov 2022 11:29:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60862 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229514AbiKXQ3b (ORCPT ); Thu, 24 Nov 2022 11:29:31 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A62C6170277 for ; Thu, 24 Nov 2022 08:29:30 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id D09A88175E; Thu, 24 Nov 2022 16:29:26 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307370; bh=IjiWigqeUBXqOFxVyLVTRYHaAHBjdEuLBkIGHoU0ZZ8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X6zIvaQxvBvB2xnnL7KBWtT7ZK5b367vvLbOBhK73HhEICkMbuH3O8vFqZF392v9A ZFBC4KWTbqeKXyxHBwiwUbeR3e5GlGgV4APmbhj1/kMne2LJ0oSdpjhsJV5qYZNsOr a208DEXwGlDmQiPcir37VAl9+1A8A/SB0cqpWRVWxIoEzHdTQD10a+I6EXxgRnsCNp uuGRwfYw2Meourrh0h4/wZ3HBPuWYnWwLQu8a9nMZTBJAP87FbkQmudr0hkoSZ3rnd URVkYBR5KzPAquu+X29QphoPFlc11q2jJ9byj4h/z23euKs6dR8r3otWAmVXsSK7Gy ju+Tuv9Hp6QNA== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 4/8] ucontext-cp: Remove an unused function Date: Thu, 24 Nov 2022 23:28:57 +0700 Message-Id: <20221124162633.3856761-5-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi When marking all internal functions as static after an attempt to integrate `-Wmissing-prototypes` flag. An unused function is found: ucontext-cp.c:71:12: error: ‘await_poll’ defined but not used [-Werror=unused-function] 71 | static int await_poll(async_context *pctx, int fd, short poll_mask) | ^~~~~~~~~~ cc1: all warnings being treated as errors make[1]: *** [Makefile:36: ucontext-cp] Error 1 Remove it. Signed-off-by: Ammar Faizi --- examples/ucontext-cp.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/examples/ucontext-cp.c b/examples/ucontext-cp.c index 281013f..ed3b342 100644 --- a/examples/ucontext-cp.c +++ b/examples/ucontext-cp.c @@ -68,23 +68,8 @@ DEFINE_AWAIT_OP(readv) DEFINE_AWAIT_OP(writev) #undef DEFINE_AWAIT_OP -int await_poll(async_context *pctx, int fd, short poll_mask) { - struct io_uring_sqe *sqe = io_uring_get_sqe(pctx->ring); - struct io_uring_cqe *cqe; - if (!sqe) - return -1; - - io_uring_prep_poll_add(sqe, fd, poll_mask); - io_uring_sqe_set_data(sqe, pctx); - swapcontext(&pctx->ctx_fnew, &pctx->ctx_main); - io_uring_peek_cqe(pctx->ring, &cqe); - assert(cqe); - io_uring_cqe_seen(pctx->ring, cqe); - - return cqe->res; -} - -int await_delay(async_context *pctx, time_t seconds) { +int await_delay(async_context *pctx, time_t seconds) +{ struct io_uring_sqe *sqe = io_uring_get_sqe(pctx->ring); struct io_uring_cqe *cqe; struct __kernel_timespec ts = { From patchwork Thu Nov 24 16:28:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055173 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F5C2C4332F for ; Thu, 24 Nov 2022 16:29:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229514AbiKXQ3g (ORCPT ); Thu, 24 Nov 2022 11:29:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229536AbiKXQ3f (ORCPT ); Thu, 24 Nov 2022 11:29:35 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE4BB17027C for ; Thu, 24 Nov 2022 08:29:34 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id 021908164B; Thu, 24 Nov 2022 16:29:30 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307374; bh=8wGlOZYCu5M4eOvRib96fJBf/doJAkRO4Sw1VRCDPbM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZcQC4zH5rOuHiIQ3ts2oz27zoRC0GfXiUuF4XsJ8D8e0NJt9AtD+YXYKxfSK7gutK 1Rt3iWO8S1HaL+WhC0frGRZ+lsmatX38DtfuSHFZki3ycKXhwJrVWCfO4mb4u80zVW f6e1lc1idsM60hbUu5Q72XsamWYpkFv1qBE3TwX33RIVqswnfye2txui2gQOZuv7pl Bq4bbVdBlT1Mb3aMxP29m/rqvrYNp+o8XjWYn8Rpd+LYTpmndrBBUicw6gYtm2jkSO a1gBmk0zkfICgYH9Di52YGF3H2gP0c5MTGO/zmbtgLbOGJaqBm8I8Wsxwh1oOUSBhX S7OThxMYiI/RA== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 5/8] tests: Mark non-exported functions as static Date: Thu, 24 Nov 2022 23:28:58 +0700 Message-Id: <20221124162633.3856761-6-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi Functions that are not used outside the translation unit should be static. Signed-off-by: Ammar Faizi --- test/accept-link.c | 2 +- test/accept-reuse.c | 9 ++++----- test/ce593a6c480a.c | 4 ++-- test/defer-taskrun.c | 2 +- test/exit-no-cleanup.c | 2 +- test/hardlink.c | 2 +- test/io_uring_setup.c | 3 ++- test/link_drain.c | 2 +- test/multicqes_drain.c | 27 ++++++++++++++++----------- test/nvme.h | 3 ++- test/poll-link.c | 2 +- test/poll-mshot-overflow.c | 2 +- test/read-before-exit.c | 2 +- test/ring-leak2.c | 2 +- test/sq-poll-kthread.c | 2 +- test/sqpoll-cancel-hang.c | 2 +- test/symlink.c | 3 ++- test/timeout-new.c | 12 ++++++++---- 18 files changed, 47 insertions(+), 36 deletions(-) diff --git a/test/accept-link.c b/test/accept-link.c index d0dc73b..4d42f15 100644 --- a/test/accept-link.c +++ b/test/accept-link.c @@ -77,7 +77,7 @@ static void *send_thread(void *arg) return NULL; } -void *recv_thread(void *arg) +static void *recv_thread(void *arg) { struct data *data = arg; struct io_uring ring; diff --git a/test/accept-reuse.c b/test/accept-reuse.c index 66eded2..7df5e56 100644 --- a/test/accept-reuse.c +++ b/test/accept-reuse.c @@ -13,15 +13,14 @@ struct io_uring io_uring; -int sys_io_uring_enter(const int fd, - const unsigned to_submit, - const unsigned min_complete, - const unsigned flags, sigset_t * const sig) +static int sys_io_uring_enter(const int fd, const unsigned to_submit, + const unsigned min_complete, + const unsigned flags, sigset_t * const sig) { return __sys_io_uring_enter(fd, to_submit, min_complete, flags, sig); } -int submit_sqe(void) +static int submit_sqe(void) { struct io_uring_sq *sq = &io_uring.sq; const unsigned tail = *sq->ktail; diff --git a/test/ce593a6c480a.c b/test/ce593a6c480a.c index 4c71fbc..9fa74a9 100644 --- a/test/ce593a6c480a.c +++ b/test/ce593a6c480a.c @@ -15,7 +15,7 @@ static int use_sqpoll = 0; -void notify_fd(int fd) +static void notify_fd(int fd) { char buf[8] = {0, 0, 0, 0, 0, 0, 1}; int ret; @@ -25,7 +25,7 @@ void notify_fd(int fd) perror("write"); } -void *delay_set_fd_from_thread(void *data) +static void *delay_set_fd_from_thread(void *data) { int fd = (intptr_t) data; diff --git a/test/defer-taskrun.c b/test/defer-taskrun.c index 9283f28..624285e 100644 --- a/test/defer-taskrun.c +++ b/test/defer-taskrun.c @@ -119,7 +119,7 @@ struct thread_data { char buff[8]; }; -void *thread(void *t) +static void *thread(void *t) { struct thread_data *td = t; diff --git a/test/exit-no-cleanup.c b/test/exit-no-cleanup.c index 4b8574d..aadef8c 100644 --- a/test/exit-no-cleanup.c +++ b/test/exit-no-cleanup.c @@ -26,7 +26,7 @@ static pthread_barrier_t init_barrier; static int sleep_fd, notify_fd; static sem_t sem; -void *thread_func(void *arg) +static void *thread_func(void *arg) { struct io_uring ring; int res; diff --git a/test/hardlink.c b/test/hardlink.c index aeb9ac6..2b5140e 100644 --- a/test/hardlink.c +++ b/test/hardlink.c @@ -44,7 +44,7 @@ err: return 1; } -int files_linked_ok(const char* fn1, const char *fn2) +static int files_linked_ok(const char* fn1, const char *fn2) { struct stat s1, s2; diff --git a/test/io_uring_setup.c b/test/io_uring_setup.c index 9e1a353..2e95418 100644 --- a/test/io_uring_setup.c +++ b/test/io_uring_setup.c @@ -21,7 +21,8 @@ /* bogus: setup returns a valid fd on success... expect can't predict the fd we'll get, so this really only takes 1 parameter: error */ -int try_io_uring_setup(unsigned entries, struct io_uring_params *p, int expect) +static int try_io_uring_setup(unsigned entries, struct io_uring_params *p, + int expect) { int ret; diff --git a/test/link_drain.c b/test/link_drain.c index b95168d..1a50c10 100644 --- a/test/link_drain.c +++ b/test/link_drain.c @@ -96,7 +96,7 @@ err: return 1; } -int test_link_drain_multi(struct io_uring *ring) +static int test_link_drain_multi(struct io_uring *ring) { struct io_uring_cqe *cqe; struct io_uring_sqe *sqe[9]; diff --git a/test/multicqes_drain.c b/test/multicqes_drain.c index f95c438..3755bee 100644 --- a/test/multicqes_drain.c +++ b/test/multicqes_drain.c @@ -42,12 +42,16 @@ struct sqe_info { * up an entry in multi_sqes when form a cancellation sqe. * multi_cap: limitation of number of multishot sqes */ -const unsigned sqe_flags[4] = {0, IOSQE_IO_LINK, IOSQE_IO_DRAIN, - IOSQE_IO_LINK | IOSQE_IO_DRAIN}; -int multi_sqes[max_entry], cnt = 0; -int multi_cap = max_entry / 5; +static const unsigned sqe_flags[4] = { + 0, + IOSQE_IO_LINK, + IOSQE_IO_DRAIN, + IOSQE_IO_LINK | IOSQE_IO_DRAIN +}; +static int multi_sqes[max_entry], cnt = 0; +static int multi_cap = max_entry / 5; -int write_pipe(int pipe, char *str) +static int write_pipe(int pipe, char *str) { int ret; do { @@ -57,7 +61,7 @@ int write_pipe(int pipe, char *str) return ret; } -void read_pipe(int pipe) +static void read_pipe(int pipe) { char str[4] = {0}; int ret; @@ -67,7 +71,7 @@ void read_pipe(int pipe) perror("read"); } -int trigger_event(int p[]) +static int trigger_event(int p[]) { int ret; if ((ret = write_pipe(p[1], "foo")) != 3) { @@ -78,7 +82,8 @@ int trigger_event(int p[]) return 0; } -void io_uring_sqe_prep(int op, struct io_uring_sqe *sqe, unsigned sqe_flags, int arg) +static void io_uring_sqe_prep(int op, struct io_uring_sqe *sqe, + unsigned sqe_flags, int arg) { switch (op) { case multi: @@ -98,7 +103,7 @@ void io_uring_sqe_prep(int op, struct io_uring_sqe *sqe, unsigned sqe_flags, int sqe->flags = sqe_flags; } -__u8 generate_flags(int sqe_op) +static __u8 generate_flags(int sqe_op) { __u8 flags = 0; /* @@ -136,7 +141,7 @@ __u8 generate_flags(int sqe_op) * - ensure number of multishot sqes doesn't exceed multi_cap * - don't generate multishot sqes after high watermark */ -int generate_opcode(int i, int pre_flags) +static int generate_opcode(int i, int pre_flags) { int sqe_op; int high_watermark = max_entry - max_entry / 5; @@ -163,7 +168,7 @@ static inline void add_multishot_sqe(int index) multi_sqes[cnt++] = index; } -int remove_multishot_sqe() +static int remove_multishot_sqe(void) { int ret; diff --git a/test/nvme.h b/test/nvme.h index 14dc338..52f4172 100644 --- a/test/nvme.h +++ b/test/nvme.h @@ -120,7 +120,8 @@ static inline int ilog2(uint32_t i) return log; } -int nvme_get_info(const char *file) +__attribute__((__unused__)) +static int nvme_get_info(const char *file) { struct nvme_id_ns ns; int fd, err; diff --git a/test/poll-link.c b/test/poll-link.c index 39b48f5..b94f954 100644 --- a/test/poll-link.c +++ b/test/poll-link.c @@ -71,7 +71,7 @@ static void *send_thread(void *arg) return 0; } -void *recv_thread(void *arg) +static void *recv_thread(void *arg) { struct sockaddr_in addr = { }; struct data *data = arg; diff --git a/test/poll-mshot-overflow.c b/test/poll-mshot-overflow.c index 0dc8ee5..041e872 100644 --- a/test/poll-mshot-overflow.c +++ b/test/poll-mshot-overflow.c @@ -12,7 +12,7 @@ #include "liburing.h" #include "helpers.h" -int check_final_cqe(struct io_uring *ring) +static int check_final_cqe(struct io_uring *ring) { struct io_uring_cqe *cqe; int count = 0; diff --git a/test/read-before-exit.c b/test/read-before-exit.c index be36bd4..d57cdd2 100644 --- a/test/read-before-exit.c +++ b/test/read-before-exit.c @@ -22,7 +22,7 @@ struct data { uint64_t buf2; }; -void *submit(void *data) +static void *submit(void *data) { struct io_uring_sqe *sqe; struct data *d = data; diff --git a/test/ring-leak2.c b/test/ring-leak2.c index a8c03fe..6e76717 100644 --- a/test/ring-leak2.c +++ b/test/ring-leak2.c @@ -46,7 +46,7 @@ static struct io_uring *client_ring; static int client_eventfd = -1; -int setup_io_uring(struct io_uring *ring) +static int setup_io_uring(struct io_uring *ring) { struct io_uring_params p = { }; int ret; diff --git a/test/sq-poll-kthread.c b/test/sq-poll-kthread.c index 3f4a07b..bf5122a 100644 --- a/test/sq-poll-kthread.c +++ b/test/sq-poll-kthread.c @@ -117,7 +117,7 @@ err_pipe: return ret; } -int test_sq_poll_kthread_stopped(bool do_exit) +static int test_sq_poll_kthread_stopped(bool do_exit) { pid_t pid; int status = 0; diff --git a/test/sqpoll-cancel-hang.c b/test/sqpoll-cancel-hang.c index ef62272..cd1c309 100644 --- a/test/sqpoll-cancel-hang.c +++ b/test/sqpoll-cancel-hang.c @@ -92,7 +92,7 @@ SIZEOF_IO_URING_CQE + 63) & ~63; } -void trigger_bug(void) +static void trigger_bug(void) { intptr_t res = 0; *(uint32_t*)0x20000204 = 0; diff --git a/test/symlink.c b/test/symlink.c index cf4aa96..7edb514 100644 --- a/test/symlink.c +++ b/test/symlink.c @@ -43,7 +43,8 @@ err: return 1; } -int test_link_contents(const char* linkname, const char *expected_contents) +static int test_link_contents(const char* linkname, + const char *expected_contents) { char buf[128]; int ret = readlink(linkname, buf, 127); diff --git a/test/timeout-new.c b/test/timeout-new.c index 6efcfb4..8640678 100644 --- a/test/timeout-new.c +++ b/test/timeout-new.c @@ -111,7 +111,8 @@ static int test_return_after_timeout(struct io_uring *ring) return 0; } -int __reap_thread_fn(void *data) { +static int __reap_thread_fn(void *data) +{ struct io_uring *ring = (struct io_uring *)data; struct io_uring_cqe *cqe; struct __kernel_timespec ts; @@ -123,12 +124,14 @@ int __reap_thread_fn(void *data) { return io_uring_wait_cqe_timeout(ring, &cqe, &ts); } -void *reap_thread_fn0(void *data) { +static void *reap_thread_fn0(void *data) +{ thread_ret0 = __reap_thread_fn(data); return NULL; } -void *reap_thread_fn1(void *data) { +static void *reap_thread_fn1(void *data) +{ thread_ret1 = __reap_thread_fn(data); return NULL; } @@ -137,7 +140,8 @@ void *reap_thread_fn1(void *data) { * This is to test issuing a sqe in main thread and reaping it in two child-thread * at the same time. To see if timeout feature works or not. */ -int test_multi_threads_timeout() { +static int test_multi_threads_timeout(void) +{ struct io_uring ring; int ret; bool both_wait = false; From patchwork Thu Nov 24 16:28:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055174 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7667C433FE for ; Thu, 24 Nov 2022 16:29:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229477AbiKXQ3k (ORCPT ); Thu, 24 Nov 2022 11:29:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229535AbiKXQ3j (ORCPT ); Thu, 24 Nov 2022 11:29:39 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 090D017027F for ; Thu, 24 Nov 2022 08:29:39 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id 2982B8175E; Thu, 24 Nov 2022 16:29:34 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307378; bh=PiYQQILwWUGqPy72iXWcKsCfm2nayS/FojzHuMN10q4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f2HTO/9q5Hh7ZrllC2zIIgS/59lQ4MhFDLOYE3V/gUFYyYHe5HzjhhaVtUhTt0+Wb vgfQW5dr32fLwxDPfVJnFBatR5xeah+Ta78LsBNKoVvsZVWdfrq3axAcSKwKIBLdHi xDibxg58/zrjYhPXv9zu+//OoH2RVxPR98kgHt4RvWuP0IKj1uw7Fi2/d+0beTzlqo 5GgbWRxe5nP6g96YklwT/MDpQarwUmWP60r80EIpf8ezyYjwf6CdEEdIeI8vSa8+Xz x2mF/zjH3294D1cYkeFVHlNPzIHw2ujtTAncj2i9bRi8YqxVSSw0Fnv/WA/zkISzlx 9Eo2jQZYoJMuA== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 6/8] ucontext-cp: Mark a non-exported function as static Date: Thu, 24 Nov 2022 23:28:59 +0700 Message-Id: <20221124162633.3856761-7-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi Functions that are not used outside the translation unit should be static. Signed-off-by: Ammar Faizi --- examples/ucontext-cp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/ucontext-cp.c b/examples/ucontext-cp.c index ed3b342..d17aae7 100644 --- a/examples/ucontext-cp.c +++ b/examples/ucontext-cp.c @@ -68,7 +68,7 @@ DEFINE_AWAIT_OP(readv) DEFINE_AWAIT_OP(writev) #undef DEFINE_AWAIT_OP -int await_delay(async_context *pctx, time_t seconds) +static int await_delay(async_context *pctx, time_t seconds) { struct io_uring_sqe *sqe = io_uring_get_sqe(pctx->ring); struct io_uring_cqe *cqe; From patchwork Thu Nov 24 16:29:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055175 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DABADC4332F for ; Thu, 24 Nov 2022 16:29:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229601AbiKXQ3q (ORCPT ); Thu, 24 Nov 2022 11:29:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229581AbiKXQ3n (ORCPT ); Thu, 24 Nov 2022 11:29:43 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 33F38170C8F for ; Thu, 24 Nov 2022 08:29:43 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id 593DC8173F; Thu, 24 Nov 2022 16:29:39 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307382; bh=I8+aPRh++xFhEmPVgD+jVUkqZVdfhhklZ90+OLkmncE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AENnaq1Le1MjsOlT6XtI24kwNjHRaIsjRR+b/KuRQq/8wkmLczo3VW/JrmnBLZ1J0 LAbVkKQ7tApKgjFTpG3fT87T2dFuTyZVJbFepyirS8ZC9pAaUElLoMcBd8qwMJ3lfr XjOfW6dLXtdgWUOe6yaEQZp61GMp/Z2enW54ULCPP/NZDrgH78R2mRyypA1qbnLrd5 9pQpib7QqfDjGmumbAnn8AeHtnRu5X9E94HJ5yjAnRped5jqXoJqLdYXDUeRZnzI+y 74611WaTuGTV3tVxCvatD67Bn1CSPbG7gP1Zq07Hvuy+I/ykfwwauiepZRQHphRAMw Tr9BdgJ7uMuCQ== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 7/8] test/Makefile: Omit `-Wmissing-prototypes` from the C++ compiler flags Date: Thu, 24 Nov 2022 23:29:00 +0700 Message-Id: <20221124162633.3856761-8-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi This is a preparation patch to integrate -Wmissing-prototypes to the CI test robot. Clang++ is not happy with -Wmissing-prototypes: cc1plus: warning: command-line option '-Wmissing-prototypes' \ is valid for C/ObjC but not for C++ Omit this flag when we are compiling a C++ source file. Using -Wmissing-prototypes ensures we mark functions and variables as static if we don't use them outside the translation unit. Signed-off-by: Ammar Faizi --- test/Makefile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/test/Makefile b/test/Makefile index 8ad9964..87b1fe1 100644 --- a/test/Makefile +++ b/test/Makefile @@ -214,8 +214,17 @@ helpers.o: helpers.c %.t: %.c $(helpers) helpers.h ../src/liburing.a $(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(helpers) $(LDFLAGS) +# +# Clang++ is not happy with -Wmissing-prototypes: +# +# cc1plus: warning: command-line option '-Wmissing-prototypes' \ +# is valid for C/ObjC but not for C++ +# %.t: %.cc $(helpers) helpers.h ../src/liburing.a - $(QUIET_CXX)$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< $(helpers) $(LDFLAGS) + $(QUIET_CXX)$(CXX) \ + $(patsubst -Wmissing-prototypes,,$(CPPFLAGS)) \ + $(patsubst -Wmissing-prototypes,,$(CXXFLAGS)) \ + -o $@ $< $(helpers) $(LDFLAGS) install: $(test_targets) runtests.sh runtests-loop.sh From patchwork Thu Nov 24 16:29:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ammar Faizi X-Patchwork-Id: 13055176 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79D74C433FE for ; Thu, 24 Nov 2022 16:29:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229536AbiKXQ3u (ORCPT ); Thu, 24 Nov 2022 11:29:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229535AbiKXQ3s (ORCPT ); Thu, 24 Nov 2022 11:29:48 -0500 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7E71170C88 for ; Thu, 24 Nov 2022 08:29:47 -0800 (PST) Received: from localhost.localdomain (unknown [182.253.183.240]) by gnuweeb.org (Postfix) with ESMTPSA id 8155F81735; Thu, 24 Nov 2022 16:29:43 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1669307387; bh=mEI6HC5l2sBw24fjcNUAA4bUPzG2/JQPzrbzIlLPK4g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RiPz2yf3kXTFTRgy3NC3HG7IY7oGAX45jCqBG2EQ0ApxuxNVkwotFznfsFvW02wV9 AoZ5q7ZKFEKHTQ+Qf2YDEOMfbuxd6HILpneD+cnfWQ2qYD6RivR/eY6xUbHnNP7B2F 8GeTha1tU3b/MyQZtB/IkfU9avfC89PFJ6JoEu76guYqdlfhpfQKoTalHNxrqlGLI3 XSYs6A7EXVTVvQHKpvGbG3bE6Uf0/3VpDPfyLyK2G7ytiL7Wr9St2JtselcMeRgB++ XCSsBULXsf9MtWDoxvxSPiQw8jtVWmaduknBGqNiCy1kLuftwozNCxWuawyBN58rm8 zn3wWSKtJupZg== From: Ammar Faizi To: Jens Axboe Cc: Ammar Faizi , Dylan Yudaken , Pavel Begunkov , Gilang Fachrezy , Muhammad Rizki , Alviro Iskandar Setiawan , VNLX Kernel Department , io-uring Mailing List , GNU/Weeb Mailing List Subject: [PATCH liburing v2 8/8] github: Add `-Wmissing-prototypes` for GitHub CI bot Date: Thu, 24 Nov 2022 23:29:01 +0700 Message-Id: <20221124162633.3856761-9-ammar.faizi@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221124162633.3856761-1-ammar.faizi@intel.com> References: <20221124162633.3856761-1-ammar.faizi@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Ammar Faizi Using -Wmissing-prototypes ensures we mark functions and variables as static if we don't use them outside the translation unit. Signed-off-by: Ammar Faizi --- .github/workflows/build.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b0e669d..4c0bd26 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,8 @@ jobs: cxx_pkg: clang cc: clang cxx: clang++ - extra_flags: -Wshorten-64-to-32 + liburing_extra_flags: -Wshorten-64-to-32 + extra_flags: -Wmissing-prototypes # x86 (32-bit) gcc - arch: i686 @@ -85,10 +86,10 @@ jobs: cxx: mips-linux-gnu-g++ env: - FLAGS: -g -O3 -Wall -Wextra -Werror + FLAGS: -g -O3 -Wall -Wextra -Werror ${{matrix.extra_flags}} # Flags for building sources in src/ dir only. - LIBURING_CFLAGS: ${{matrix.extra_flags}} + LIBURING_CFLAGS: ${{matrix.liburing_extra_flags}} steps: - name: Checkout source