Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp3821220pxm; Tue, 1 Mar 2022 06:08:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJwxOJv6c13Zz5fbeHNbkuvRtOl3yy1QQGb8eFaEWeYVSQgWsD+oLAqwnCcVeWGKAGLE5/F2 X-Received: by 2002:a17:906:9454:b0:6b5:aa6:2822 with SMTP id z20-20020a170906945400b006b50aa62822mr18502627ejx.619.1646143716813; Tue, 01 Mar 2022 06:08:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646143716; cv=none; d=google.com; s=arc-20160816; b=axpAt4CHB3tgeDCnAWlkVYqFoWXwbcQZINxXDuwb/lRaNgQOSONl2CZZXAtTtvdwge P0DHt2MUM6QVGUJehgHqgFOc74ZH68BAHkuTIwDLwOk4NQ7gYk5F7lx95CLGq5eY2ph0 951CgBQnaQOdxs+bo/7DuTnzrZppsdqRuVJhgxpFfImsO/eUd2d8cjMakf8ji3ItVRUV wFA7bKCbtH38MlcE5UM7Hqbid5a+glxbZ0pdNTi+4+pogOKFmIbIXaJNrw4sBr6gFsof g9/VKt6SfLQP2b4yGvMFh079g8FNKiXayHUkqC4YWZ/pMRjP1/XXv8tJBsCP2KPNwIZr 4k3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:cc:to:from:references:in-reply-to :message-id:date; bh=ZWBEauztfyD4o50Nrl8/GUFMydbCfk3qyb68NBVgyz8=; b=ziAG0K+QtDlWk4vJ2WrCEtl+UhFnZiZQ4amocEkeGc4wFyVKNRIWlgt5dkiAUxyQy+ Ucf/c95WbkYpHKxt3sUXw0rE+KwRdsKHZFOjhEGOLnULAuqRZNS7N9xirO5JDIO+HgVr 388Hmr20BD4FxTd3Lbc985TgA0yJqXPtkBexbb93YNjXoc5FYlfY6prOKIQUtH/kCUNK H6uZ6oVFG1PuOmSHaKDC+MPcOTmpnHPDo1LwSeDv/Ix22SnukjpkalukIr3gZkde8LH6 EPjtGgZN79MlTgF/WdX/xHUaqA1oOEBJX6V3JZi/afboQTVh/NK5UnF+tiEyWTypLhvp 8jjA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l21-20020a50d6d5000000b003e680b4421fsi9616897edj.354.2022.03.01.06.07.57; Tue, 01 Mar 2022 06:08:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233720AbiCANg4 (ORCPT + 99 others); Tue, 1 Mar 2022 08:36:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229588AbiCANgz (ORCPT ); Tue, 1 Mar 2022 08:36:55 -0500 Received: from cloud48395.mywhc.ca (cloud48395.mywhc.ca [173.209.37.211]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 607C57E08F; Tue, 1 Mar 2022 05:36:14 -0800 (PST) Received: from [45.44.224.220] (port=56370 helo=localhost) by cloud48395.mywhc.ca with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nP2fk-0001gf-U7; Tue, 01 Mar 2022 08:36:12 -0500 Date: Tue, 01 Mar 2022 08:36:12 -0500 Message-Id: <84513f7cc1b1fb31d8f4cb910aee033391d036b4.1646141294.git.olivier@trillion01.com> In-Reply-To: References: From: Olivier Langlois To: Jens Axboe , Pavel Begunkov Cc: Hao Xu , io-uring , linux-kernel Subject: [PATCH v3 1/2] io_uring: minor io_cqring_wait() optimization X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cloud48395.mywhc.ca X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - trillion01.com X-Get-Message-Sender-Via: cloud48395.mywhc.ca: authenticated_id: olivier@trillion01.com X-Authenticated-Sender: cloud48395.mywhc.ca: olivier@trillion01.com X-Source: X-Source-Args: X-Source-Dir: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Move up the block manipulating the sig variable to execute code that may encounter an error and exit first before continuing exectuing the rest of the function and avoid useless computations Signed-off-by: Olivier Langlois --- fs/io_uring.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/io_uring.c b/fs/io_uring.c index 4715980e9015..f7b8df79a02b 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -7732,14 +7732,6 @@ static int io_cqring_wait(struct io_ring_ctx *ctx, int min_events, break; } while (1); - if (uts) { - struct timespec64 ts; - - if (get_timespec64(&ts, uts)) - return -EFAULT; - timeout = ktime_add_ns(timespec64_to_ktime(ts), ktime_get_ns()); - } - if (sig) { #ifdef CONFIG_COMPAT if (in_compat_syscall()) @@ -7753,6 +7745,14 @@ static int io_cqring_wait(struct io_ring_ctx *ctx, int min_events, return ret; } + if (uts) { + struct timespec64 ts; + + if (get_timespec64(&ts, uts)) + return -EFAULT; + timeout = ktime_add_ns(timespec64_to_ktime(ts), ktime_get_ns()); + } + init_waitqueue_func_entry(&iowq.wq, io_wake_function); iowq.wq.private = current; INIT_LIST_HEAD(&iowq.wq.entry); -- 2.35.1