Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp403880ybk; Fri, 15 May 2020 03:56:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwXGmYwCCfXPfxsL73maYA67MsPRR7ZI0ziZ5cpi/ZA4wKhDMdO2pW4OxxNXrZuxIAyaHap X-Received: by 2002:a05:6402:2058:: with SMTP id bc24mr2226155edb.134.1589540185886; Fri, 15 May 2020 03:56:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589540185; cv=none; d=google.com; s=arc-20160816; b=Fq/yw39l+5iqFu9IkKkE21nthxpOlizMMnPgosu/kH2uQoJZ52F2RfPk3TRNR1W4Zy vrNtx2O1LyAaGebEfCl3hSnDx70DIziIy9ET3M7Rm4KzBd4ZgiYOHnjwDekULvP0mWEb +hHc34UNG2Fjde6M2v9S1UvVhuGY5X+i6GbK4g2wZH+pNPXtsUmO8GVnn8mWLfAbtOPo C8aFPflPdiKLrJ7UAcepcO/U78IBkHRkq2egYLej7AtWjG/ZIRd2cjIcL4pz48matLlF 7MuRDx4TjcKfn8kEQWNadXtOjVrUw8WjRaxbw95YqScCwM+mXcuVUUwUKsqvPwKZtTyH pXhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=v6+7HSHBKR8s0hEc33VZWCAeaUDT8hTqdZCAfgvJPF0=; b=oT+XHpIcxLN3z+ZTT9TN8EXnruBe5GkskPdKX3MyGuJn1JMEos5FHwGMWPnomT69zm t5/8v0fNg1u1NUr+vdn8GNM0fXCICHx4q/S2gvUNixn1ndV3MlEevxmaiN1u4qmdC4ka 1YhP0/7J0SBNNAL4voVC9dwXtdT6+W12rdc4NmGp3rePTAYv9ClyRazKrc2Hd4fVRPCz a2zB20NTBVcyBrTx8pWT9MUD9Tz4cO8IiR0pnbMe5C2vFbw9IeXUerdrb1pDgMkn5WiT l2s1FE4q6u2Oz2f9IRKAgSIHTHK59vizc5J0kRxPvTj/awF8pr9Qh5nVn2jKnG2o8Ecu aIXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=auwsXi5C; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q10si926386eju.123.2020.05.15.03.56.02; Fri, 15 May 2020 03:56:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=auwsXi5C; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725980AbgEOKyW (ORCPT + 99 others); Fri, 15 May 2020 06:54:22 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:51053 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725835AbgEOKyV (ORCPT ); Fri, 15 May 2020 06:54:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589540060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=v6+7HSHBKR8s0hEc33VZWCAeaUDT8hTqdZCAfgvJPF0=; b=auwsXi5ChYKGe9gfeUvtqL62zydkMAhZSHybWOWtL2afFS2HcwvMftLHTfwCzdx7LN8q+y Zb846USVkIbP2M/Wai8jWGoA3QpuH0+2V/yuK3ei0yqhgG1o00bkD5cZrEqPOElktCdtid skRVMi+wXmLFHBTRckfPCjSpudt/2Fo= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-102-X7dsn6_OMbGZOYC2dsUqdg-1; Fri, 15 May 2020 06:54:18 -0400 X-MC-Unique: X7dsn6_OMbGZOYC2dsUqdg-1 Received: by mail-wr1-f69.google.com with SMTP id 90so990050wrg.23 for ; Fri, 15 May 2020 03:54:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=v6+7HSHBKR8s0hEc33VZWCAeaUDT8hTqdZCAfgvJPF0=; b=DXIVe+147Xq29v08TP+4z91I4lzLmDz9jQzGXGFmI4JZ0uxi2N9YUdfI3gqf6HOnH+ JFufShULDxH99tZ1XpH75WfUuSoZFWJ9v8JZT++/hKuobj+BDQiJcTPTnlVHxoiJkb4r JAwHpIrgpIyRFyIdg8TetPFdUk9anb91jNm3HR0aLfDrWZ8KM12wOJC2J6pBLW9Q08sa tsGUiALzxcX5gkR0AeHc0G6aUMulkEblUo2+jg4BS/ChTAxiRLh3cAAyylTqQWp0XjHX VkwLVKG8YfTnGfNFf1g1JFdnwOkQDMgV/61gdCtJeN/ThzfFxfWiwSeMmhAWrt45YdY/ rHHg== X-Gm-Message-State: AOAM530U44La202fZC6P2aGkinFsWCd4B9pPpBLgsVCs01+A2RyTfF2G Sj2wC7OvfEchH2jfRzGzio6EXznbFGotHigGwDGthOKnr7XY3NTK5rE4xnfDMDdP5LP5NMpzuZm 83EWDid8Egcakmi1xPJJKGJ45 X-Received: by 2002:a1c:e3d7:: with SMTP id a206mr611343wmh.141.1589540056767; Fri, 15 May 2020 03:54:16 -0700 (PDT) X-Received: by 2002:a1c:e3d7:: with SMTP id a206mr611327wmh.141.1589540056541; Fri, 15 May 2020 03:54:16 -0700 (PDT) Received: from steredhat.redhat.com ([79.49.207.108]) by smtp.gmail.com with ESMTPSA id u74sm3081713wmu.13.2020.05.15.03.54.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2020 03:54:15 -0700 (PDT) From: Stefano Garzarella To: Jens Axboe Cc: io-uring@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Alexander Viro Subject: [PATCH 0/2] io_uring: add a CQ ring flag to enable/disable eventfd notification Date: Fri, 15 May 2020 12:54:12 +0200 Message-Id: <20200515105414.68683-1-sgarzare@redhat.com> X-Mailer: git-send-email 2.25.4 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The first patch adds the new 'cq_flags' field for the CQ ring. It should be written by the application and read by the kernel. The second patch adds a new IORING_CQ_NEED_WAKEUP flag that can be used by the application to enable/disable eventfd notifications. I'm not sure the name is the best one, an alternative could be IORING_CQ_NEED_EVENT. This feature can be useful if the application are using eventfd to be notified when requests are completed, but they don't want a notification for every request. Of course the application can already remove the eventfd from the event loop, but as soon as it adds the eventfd again, it will be notified, even if it has already handled all the completed requests. The most important use case is when the registered eventfd is used to notify a KVM guest through irqfd and we want a mechanism to enable/disable interrupts. I also extended liburing API and added a test case here: https://github.com/stefano-garzarella/liburing/tree/eventfd-disable Stefano Garzarella (2): io_uring: add 'cq_flags' field for the CQ ring io_uring: add IORING_CQ_NEED_WAKEUP to the CQ ring flags fs/io_uring.c | 17 ++++++++++++++++- include/uapi/linux/io_uring.h | 9 ++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) -- 2.25.4