From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558706834; cv=none; d=zoho.com; s=zohoarc; b=Xz8OZx7pNkESZ8ygWMaiHPrsKLy1Czjx0WOfrbtyXC9GHbTFGGo9yXH67U6eEZ82F1G7rt5cVzBaKb3satNaeqZ2r50YREE8J5vF/Bm29vlxD7vfchJ05b8dmPujMsVFOsHAVHB6pcWY6emIFfNxdLGTOMX/Mj+FgV0GkhTaJP0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558706834; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=MOLjMhKSGechndhxC45XWXBaUt38Hb0jpsQqlDASuQI=; b=fiQKiCbwEcDxhkMevtj8PXIqFsAcmsFaziAoxKYMrbmrDKohVr4B17XsQffMXDkVaCOAZq/M/g+xh7hh+GicSKxxSaO7KmMNX3PPPvdpuuyrqwfZBrQgZpbSgk9JDBipkdtsNwWaAVbNYI1Ms0v0EVZ55M6YbwzmOoPjtEAIkNY= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558706834276132.5935188119215; Fri, 24 May 2019 07:07:14 -0700 (PDT) Received: from localhost ([127.0.0.1]:55149 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAqf-0004rD-6v for importer@patchew.org; Fri, 24 May 2019 10:07:05 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAoP-0003SB-2Z for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAnj-0002OP-5q for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:03 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]:42637) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAnj-0002Nf-0X; Fri, 24 May 2019 10:04:03 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 33so2162792pgv.9; Fri, 24 May 2019 07:04:02 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.03.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MOLjMhKSGechndhxC45XWXBaUt38Hb0jpsQqlDASuQI=; b=fGvlprkOGqYCx4shyGCXwfblzCKE0Jui6v0XhIbUPpbOAlKZ3i92xPf2Brz9hun9RG HrhZw5Rly2nxpT7Wl5fNvIj1bkNcHOkYN3VHLoyph3fV8C1BaQSl5OSOBZGYEXs3e5rf kjuQ78sFSR5L092ejLITDJ7t72QPg2A0T2uX8DAEtIWcdXzY7FAtAQQhf15fecaQiYlY OnY/Qd/OGXofsKrK43C0ZitTERn62AksTaBSNFWrfgrQABt9ptClsVXd4NpVsXZLcIUo BK/1R8kJJLjlMFdbrC5r4OdjkmE8g4ecq+t2A+Efb3jjc/JiNgc6EbIX0bWaGc/xlIa4 nVsw== 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:in-reply-to :references; bh=MOLjMhKSGechndhxC45XWXBaUt38Hb0jpsQqlDASuQI=; b=qQRv8o462FApOmSdwABrnOb6ka/ZzOnZMmLb+uqVchF/JLnoAa2cYk3+Efr11aX2Wf 1ACP9kTbXD4mPAqR6xdC4UoMbNwAFzyNM4NR3jPu/oKHNlvWUah7S8fkrKsZj/dF3xHB NV0S6U9hj9r8zl4+rRGlVrCQtDzpZ22VHO32q4bguL818JYHnZZ7UTVV+q2qGU2K1MAM dE5MgAVWFRTgAx/lNLYDbKPDm1czVYXtrafodicW5NzvI5ieeoPkgcMstGZKjbN3fhsF kztJmOeSUv5YcXCI+s9xf9trOIS3LAAFaE8mgLYwebKDLWMpMevftDGH0g4f/z/rZB0O Jv2A== X-Gm-Message-State: APjAAAXmqEnkGQ2p/l9fgwRbVId0Cy+4GMfGOaLYhHHSnBOBKRkzaSw3 8xZqvjvXVmtaWCnEiHsxAeiWKfUXujZxmQ== X-Google-Smtp-Source: APXvYqxI41XB2iojAX6k1A6EenTsYGvVYmRkHnYZX6Hi+pyNFL0uIouqGFdvoL94qtml9EdtvhXglQ== X-Received: by 2002:a62:2e46:: with SMTP id u67mr114236791pfu.206.1558706641550; Fri, 24 May 2019 07:04:01 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:29 +0530 Message-Id: <20190524140337.13415-2-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::52f Subject: [Qemu-devel] [RFC PATCH v2 1/9] qapi/block-core: add option for io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta --- qapi/block-core.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index 7ccbfff9d0..0e927b247d 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -2776,11 +2776,13 @@ # # @threads: Use qemu's thread pool # @native: Use native AIO backend (only Linux and Windows) +# @io_uring: Use linux io_uring (only Linux) # -# Since: 2.9 +# Since: 4.1 ## { 'enum': 'BlockdevAioOptions', - 'data': [ 'threads', 'native' ] } + 'data': [ 'threads', 'native', + { 'name': 'io_uring', 'if': 'defined(CONFIG_LINUX)' } ] } ## # @BlockdevCacheOptions: -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558707009; cv=none; d=zoho.com; s=zohoarc; b=LTvDrVgTLDRdRlxNEV3ebsA8d21fVtj3CsvRUEXKKobuC62r05/frZkxXo3ijNRxSoMhbp42xEwgQSnJlpEwArKToEzxeihfURVZa9zuHFYLCiyBfz2FvOgOCzzoolEIC1ZrR/VpKpNUX39XKwiHC9Mgj9xvCtYbD7krUAFlXB4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558707009; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=3FKBJA17va/jv2u1TvUxLDB1xiagIFwWCBsEV/clovc=; b=UYpcdGulUrVMgfDn+gQ4bhiO3NSkcM0+rnwXzJdLJ7z7ranrojGcnIRKED+KhbjTk0JGb5Mg1fgpzAwZPw2P/zjdJilqiC1qbk4eC/E79oycbPPSvCQRwrH6l8JeEoYuPGaxHLDKP4jnAxfTPmonjVzfsGVqYew1mveDcJyGyi4= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558707009850199.46237327464883; Fri, 24 May 2019 07:10:09 -0700 (PDT) Received: from localhost ([127.0.0.1]:55174 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAtX-00078T-PY for importer@patchew.org; Fri, 24 May 2019 10:10:03 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAoO-0003KZ-4h for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAnn-0002RN-Br for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:08 -0400 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]:37440) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAnn-0002Ql-5F; Fri, 24 May 2019 10:04:07 -0400 Received: by mail-pf1-x443.google.com with SMTP id a23so5409603pff.4; Fri, 24 May 2019 07:04:07 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3FKBJA17va/jv2u1TvUxLDB1xiagIFwWCBsEV/clovc=; b=a4855LGhNEYcj8uL4x3QndWURkakTYZkaqqP4d4oYiu192b2tsudRdYqWJjtJis+CR aSGOvI1YVvX6dqwTqTGW29AuQf40xqhZzMW8uBfIQpfChhAJ/in/L3PdYlto6au16/G3 5ax5wdRu9u30VKEXCfdle3XWpyNPfA8vcnGnA/+MbmGNzlxhE5zkL2j8U5tm/FVnsquz g5QOxGHjg0Y9Jgj5ogUH3+oETzqsGLFsaX2i6EsUFxEmqAzBGWm4dqbxNUg6KBJ2TuFT NU9Bdvp+D2+MKrUfzrC7D7k+SPYLQkPBZdu10Eku1h+VhIO7pbyIi9R7R+Cfhamp3ae3 Nasg== 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:in-reply-to :references; bh=3FKBJA17va/jv2u1TvUxLDB1xiagIFwWCBsEV/clovc=; b=tqOFfloyBsYgf0IboauHwc/PnO4DF6Po/YQxmgL8ft27JZuZsmjmst9e/KqDhYeYY6 ohQ/CEZiOLKcCc89vQ7y9TA4E0TMEs4v2YrBwvUCR6MMUqG1Zt48il4W7piuavzTJRxN KCWc8wm4o3Y6sGLoSkFNH0NcpJqPbs1/b0UBS59dLw9roAYBUtGzUJBBylEj1j+y1pdZ sSDkeOiwMbJjoCStopIyUt5Dxo2oZEsve/qLpvFHXThqeRPu9+qTmsq7p0MekKyfJdgM 9TDiDL7VstKW8Mea4sbTfxWFdj3KwFzuFDE2cAJJjW/qZcM7XQTQQLdsXGMtE69AseNQ Sn/g== X-Gm-Message-State: APjAAAUuF//OpYlFcMovV8twNy3grYlKavmdR3mlP3PxTkbKvDRNHk+w QeXrlMqmIjfZxh4vQmdFFzl66Eu2Vxk+Hw== X-Google-Smtp-Source: APXvYqy4l/3ibeoF9lugxLRcZk2nFEzQ/rSSZqVuB3NnKQayxkGKq4FFbqh7sQgtkZ/6z2qw5pyqqw== X-Received: by 2002:a63:d00d:: with SMTP id z13mr9056359pgf.368.1558706645836; Fri, 24 May 2019 07:04:05 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:30 +0530 Message-Id: <20190524140337.13415-3-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::443 Subject: [Qemu-devel] [RFC PATCH v2 2/9] block/block: add BDRV flag for io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta Reviewed-by: Stefan Hajnoczi --- include/block/block.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/block/block.h b/include/block/block.h index 9b083e2bca..60f7c6c01c 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -121,6 +121,7 @@ typedef struct HDGeometry { ignoring the format layer */ #define BDRV_O_NO_IO 0x10000 /* don't initialize for I/O */ #define BDRV_O_AUTO_RDONLY 0x20000 /* degrade to read-only if opening read= -write fails */ +#define BDRV_O_IO_URING 0x40000 /* use io_uring instead of the thread p= ool */ #define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_NO_FLUSH) -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558707423; cv=none; d=zoho.com; s=zohoarc; b=UVAXXzHw2H+zSdot1jJ/3c/WXYN6HuEat38a7EizhKY59Q0m4CyAm2N6i8fhgP7w4+CgpOwfSb7BFBNIsuH61f12oIb0D3B2BRxPmoCKfn4IEGmjBJ0fR4RC0KF5orMolDGZIy8xzkN0zznToLCRI9HplLwI/7qBJoxv8qQaQhU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558707423; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=IwdgR4CAZqUTgzHR3HV5kaLH/wCH1Pdav2fxuHWxNdY=; b=KFLkjolxxO9qmuAkWzFIwlNWBCN16DhkmdEqUCa8lHBoF/bBpiihe7mxCtnofDpGVPuv5JIAqWVENNPNdWONVkyULcXmWopVBD6onxLsRKgF2QSB8hjM6630o/lc0e6SXaeq5jO/iCjaQgXnbPPFfCj/MclWGKhPJAatWfTMvDc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 155870742311230.760374110549378; Fri, 24 May 2019 07:17:03 -0700 (PDT) Received: from localhost ([127.0.0.1]:55350 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUB0C-0005Eu-2x for importer@patchew.org; Fri, 24 May 2019 10:16:56 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAoJ-0003KZ-Vm for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAns-0002Un-0q for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:13 -0400 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:45822) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAnr-0002Ts-RW; Fri, 24 May 2019 10:04:11 -0400 Received: by mail-pg1-x543.google.com with SMTP id w34so459018pga.12; Fri, 24 May 2019 07:04:11 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=IwdgR4CAZqUTgzHR3HV5kaLH/wCH1Pdav2fxuHWxNdY=; b=OelFy3qun/4+OUHJQRyLVzDM+eEQL4qik9A9v8slQ9W6cEbTswGtRi82C0zmqSfCaR dS6JSXll7U8ISYEfBeQVbTUn7o1A1/He+M+3XD8+BWM/4eYq665adwH95B1BSuG3cJAP ShXhmYwghDh+L5lD7Bu7b0NU7BNdsmRcpnxCBkBTS5lGBB5ePBnDQW9cXq64VkdeT8Md 2YFbSRDcIp2d3cjL9ds0P/+mE6xeNBXkuLH8Xvv+EGhK/QmUgOl5OqHeA6YpmDdpY7eR ZWwIKRdeWvFdR0UTTzR2WNCHmR4ZlT96wysHBIXIvyuHIUt9b9gktpHUXbStR46wsnIA LQWQ== 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:in-reply-to :references; bh=IwdgR4CAZqUTgzHR3HV5kaLH/wCH1Pdav2fxuHWxNdY=; b=LFOSJmDd/Cgqtqw1UwO5jMFsK9sMPrUUengVO2+TSvOdlsXdKLF66RNgQQzGCTO4x4 mrvACiUmCM7R6ygGshAeikXhdv5JEffcWxeptFMD1ftGw/2oaVb/UyV5yLqVJYrZBJlP IVHeoDchKc7h7Ze2kO0mfWf613Clt7PPZa4SDElE/+ya9IPaB7/2iA+5p+T6mMrUVQ2+ ur4ft6GXRupRAfG6qRzNCHLc1Svlyu0PBsTxS189zefE7doeRPjOHfrfUYvlmeJh0POT GbE7HzWimbPvAuopytPlb0/vbj1nDIgjVHttEHzKWFjitVpLuSXj38Iw+bYFZrwOV7ir U3jw== X-Gm-Message-State: APjAAAXEm5Jctu7WM0xspSX24gn5UTeHn18W/1TDTg4iJh44szOKKn49 NhQU5PqzR/Tbw+7QwDBWDuYkddpUe4nHqw== X-Google-Smtp-Source: APXvYqz4WYDo2X5tT4guQwyOQkqYM0FFIUm67mo71cQI3kVT2QYmZXCiMjJfENV32WGaRBE1/w/F+A== X-Received: by 2002:a63:4c14:: with SMTP id z20mr13272594pga.360.1558706650426; Fri, 24 May 2019 07:04:10 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:31 +0530 Message-Id: <20190524140337.13415-4-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::543 Subject: [Qemu-devel] [RFC PATCH v2 3/9] include/block: declare interfaces for io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta --- include/block/aio.h | 16 +++++++++++++++- include/block/raw-aio.h | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/include/block/aio.h b/include/block/aio.h index 0ca25dfec6..9da3fd9793 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -50,6 +50,7 @@ typedef void IOHandler(void *opaque); struct Coroutine; struct ThreadPool; struct LinuxAioState; +struct LuringState; struct AioContext { GSource source; @@ -118,11 +119,19 @@ struct AioContext { struct ThreadPool *thread_pool; #ifdef CONFIG_LINUX_AIO - /* State for native Linux AIO. Uses aio_context_acquire/release for + /* + * State for native Linux AIO. Uses aio_context_acquire/release for * locking. */ struct LinuxAioState *linux_aio; #endif +#ifdef CONFIG_LINUX_IO_URING + /* + * State for Linux io_uring. Uses aio_context_acquire/release for + * locking. + */ + struct LuringState *linux_io_uring; +#endif /* TimerLists for calling timers - one per clock type. Has its own * locking. @@ -387,6 +396,11 @@ struct LinuxAioState *aio_setup_linux_aio(AioContext *= ctx, Error **errp); /* Return the LinuxAioState bound to this AioContext */ struct LinuxAioState *aio_get_linux_aio(AioContext *ctx); +/* Setup the LuringState bound to this AioContext */ +struct LuringState *aio_setup_linux_io_uring(AioContext *ctx, Error **errp= ); + +/* Return the LuringState bound to this AioContext */ +struct LuringState *aio_get_linux_io_uring(AioContext *ctx); /** * aio_timer_new_with_attrs: * @ctx: the aio context diff --git a/include/block/raw-aio.h b/include/block/raw-aio.h index ba223dd1f1..28a836151e 100644 --- a/include/block/raw-aio.h +++ b/include/block/raw-aio.h @@ -58,6 +58,21 @@ void laio_attach_aio_context(LinuxAioState *s, AioContex= t *new_context); void laio_io_plug(BlockDriverState *bs, LinuxAioState *s); void laio_io_unplug(BlockDriverState *bs, LinuxAioState *s); #endif +/* io_uring.c - Linux io_uring implementation */ +#ifdef CONFIG_LINUX_IO_URING +typedef struct LuringState LuringState; +LuringState *luring_init(Error **errp); +void luring_cleanup(LuringState *s); +int coroutine_fn luring_co_submit(BlockDriverState *bs, LuringState *s, in= t fd, + uint64_t offset, QEMUIOVector *qiov, int t= ype); +BlockAIOCB *luring_submit(BlockDriverState *bs, LuringState *s, int fd, + int64_t sector_num, QEMUIOVector *qiov, BlockCompletionFunc *cb, + void *opaque, int type); +void luring_detach_aio_context(LuringState *s, AioContext *old_context); +void luring_attach_aio_context(LuringState *s, AioContext *new_context); +void luring_io_plug(BlockDriverState *bs, LuringState *s); +void luring_io_unplug(BlockDriverState *bs, LuringState *s); +#endif #ifdef _WIN32 typedef struct QEMUWin32AIOState QEMUWin32AIOState; -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558707307; cv=none; d=zoho.com; s=zohoarc; b=mJJ0+oLt+IZFSDhlrQDsK4/EZGL6uCcRfT7UXCiLVgjcOn2hIz2fibVFd/KWske55hsK6Ci5sFgJt3o9v33BCECec57xkDKiwsEKS6W2mp4D//DRg2whcj6EMd6VdGG10ihp0ErXDeTwkBT5yJK6DYCgwQHMuw1exCZo+y226ik= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558707307; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=FCCo4ZKd5wKU/RZQx2PmB632H55T8NWp+BdOu+4KPVU=; b=S2H1nJzkqqB+GzxAX7udGcfWsx3lW/MRf5ig+ci1lmHIkKSHbV5LZOZ7x0rlNPQ18WW4Fztoj/WJKWrKRerZ8Wc7WRfQY7RywxMsgbIpz0VLcYhG0rfRj1blDinMzoTYjGTRl1w0b8QS9vOIA0ujycImhxaTr2HnCECs67l59Kg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558707307091170.14476814638408; Fri, 24 May 2019 07:15:07 -0700 (PDT) Received: from localhost ([127.0.0.1]:55308 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAyK-0003mn-3a for importer@patchew.org; Fri, 24 May 2019 10:15:00 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAoF-0003KZ-FB for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAnw-0002YT-1d for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:17 -0400 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]:39268) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAnv-0002Y9-SF; Fri, 24 May 2019 10:04:15 -0400 Received: by mail-pf1-x443.google.com with SMTP id z26so5400650pfg.6; Fri, 24 May 2019 07:04:15 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=FCCo4ZKd5wKU/RZQx2PmB632H55T8NWp+BdOu+4KPVU=; b=as+Vk1dQb/OXplBcCrodEcfjzrOyUFTkmKNpRxw4yv6TfUS5817UwshGDj0XJ6ejnM 9+ioAfKcEBh7hWfuzfrzaeimZSP183So3K2xgOBvf2HvS2mv64ogRTgzP2mAonU/TgMp qKXaqD/Ii1f/FqshcpBCxukvQFy4BqZDUCgmfyfKVXY4UWEZXhsmXl1YEtJIjCrkji3x ELwQPsQvwBt1oFOeMW6FQgejkECNLrBVhWDgSx3kgb22PLsCDaaKddiV95mMvTBlES9L 4zrPrSbKD/tjuwPtCnyO5+2dLmPMZ0VOBgpS92vYTxFP5bZR3iHZM1paYvMWCBvDNxt2 X4wA== 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:in-reply-to :references; bh=FCCo4ZKd5wKU/RZQx2PmB632H55T8NWp+BdOu+4KPVU=; b=Z6eo/z18iDMw/CLxIYhmK/Y643IYUbyw9HJynLSJUGuEDCf2yJb7WqhfTUh1s86r95 WmIMgt/HeOqUtHpS12ll3WQkPh0l8rVL3ZGRmKy+n2WIz6hm7v4f1ghH1sEgb8++23Dl VSBh5M2U7WucgRIWjX0tWZkUz3EwbPCVJAw4FMnURzi6fhwNiwsebnOAsm5HJZk1aiQV 4HPd+jTK5AV5rB/8qTpd4TyXGrIZ/3D0YrK78W12v8gRX4mACyJ0A4SljRk1/VeHv1FM UU5DBHo7Kft6JyWPmd4ze85WvWsK+5Wi+AukWN/9vPDHUMMJsvxDpmSGYMV39a3aNEc2 ofqw== X-Gm-Message-State: APjAAAW2eLTenmYS1/dq7CSYBnfqe0Za4yVr6LqTFx1Wp/eVZZTIq1nr FIA5k58uKIzxGcStQPO5b2GNoDPXslUbTQ== X-Google-Smtp-Source: APXvYqyblh9DSPxCfWtwBOq4be18VYrZfmBpEm3WGqUYA9EKA1eo8NqDaKBKhFGyKgiknrfFTbWuRg== X-Received: by 2002:a17:90a:6348:: with SMTP id v8mr9485166pjs.34.1558706654512; Fri, 24 May 2019 07:04:14 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:32 +0530 Message-Id: <20190524140337.13415-5-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::443 Subject: [Qemu-devel] [RFC PATCH v2 4/9] stubs: add aio interface stubs for io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta --- MAINTAINERS | 10 ++++++++++ stubs/Makefile.objs | 1 + stubs/io_uring.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 stubs/io_uring.c diff --git a/MAINTAINERS b/MAINTAINERS index 3cacd751bf..b8fc1e3fe3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2504,6 +2504,16 @@ F: block/file-posix.c F: block/file-win32.c F: block/win32-aio.c +Linux io_uring +M: Aarushi Mehta +R: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Maintained +F: stubs/io_uring.c + + +L: qemu-block@nongnu.original + qcow2 M: Kevin Wolf M: Max Reitz diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 73452ad265..ea158cf0ee 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -13,6 +13,7 @@ stub-obj-y +=3D iothread.o stub-obj-y +=3D iothread-lock.o stub-obj-y +=3D is-daemonized.o stub-obj-$(CONFIG_LINUX_AIO) +=3D linux-aio.o +stub-obj-$(CONFIG_LINUX_IO_URING) +=3D io_uring.o stub-obj-y +=3D machine-init-done.o stub-obj-y +=3D migr-blocker.o stub-obj-y +=3D change-state-handler.o diff --git a/stubs/io_uring.c b/stubs/io_uring.c new file mode 100644 index 0000000000..622d1e4648 --- /dev/null +++ b/stubs/io_uring.c @@ -0,0 +1,32 @@ +/* + * Linux io_uring support. + * + * Copyright (C) 2009 IBM, Corp. + * Copyright (C) 2009 Red Hat, Inc. + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ +#include "qemu/osdep.h" +#include "block/aio.h" +#include "block/raw-aio.h" + +void luring_detach_aio_context(LuringState *s, AioContext *old_context) +{ + abort(); +} + +void luring_attach_aio_context(LuringState *s, AioContext *new_context) +{ + abort(); +} + +LuringState *luring_init(Error **errp) +{ + abort(); +} + +void luring_cleanup(LuringState *s) +{ + abort(); +} -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558707170; cv=none; d=zoho.com; s=zohoarc; b=Y41wlcKfWo13Vod/FrR8K68ha9/iI9SRPLppnbn7SHC6qBc/6GNwIwOAfpRqVarofzwiOm+U/EF6q9CKWL+ysUgGR+iDmk5gIOKCPIzLh5cw5P+pyMIHo9jcNbWEX0nGC9DO4uSboTPcl3PokduczZ+ll4UXySUcHoY6oUUxfBQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558707170; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=sX7eykaQ8cZK+ytZ0RoclnVS3C7FzTjrBrMveeNkyW0=; b=cHcqxC9Anr+4esDIjJrKC4pmgMOb+vfAWcmLm+bNgiNZAIgZvN2Rf5r19GsYzOJgroP03uirmPB3/AF5Qawb4SMRedJFpsNqKIdP08yPJ5cNI99Q9VfvO7ilRXrENuRUbQF0gGF1ht9611tTt6PpWYYr41k8tl//Cg2yaxMDzQo= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558707170510796.9826657384798; Fri, 24 May 2019 07:12:50 -0700 (PDT) Received: from localhost ([127.0.0.1]:55253 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAw5-0001o2-8p for importer@patchew.org; Fri, 24 May 2019 10:12:41 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAoD-0003K3-Cx for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAo0-0002cW-4d for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:21 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:37443) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAnz-0002c2-UU; Fri, 24 May 2019 10:04:20 -0400 Received: by mail-pf1-x444.google.com with SMTP id a23so5409939pff.4; Fri, 24 May 2019 07:04:19 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sX7eykaQ8cZK+ytZ0RoclnVS3C7FzTjrBrMveeNkyW0=; b=Evo77aYyLdCC6UeBeVsvqOqPSwLYkA7QMFLp3xjnKJei1ewqe8E1faz511cNBpd2t4 bNetoCn7+HmrJflvUtarj8sNiY5ZpAzC0T4JCBdEDaU4Dp2RwjPMyY8NKHnf0MsLrUR5 ejiL813hYUVBkGfWc4F/5g4Dl4OU9Yzy9Q29kCbIPJLSzgKxToZQYCWDTFhVxiuiFX7P GpPVGxojzRrk1dvXXyAFHp2QAS4gaLIpkHiSlQMYTHFN/GTugLUGEYwX7dK1H42+HGxl AyJ10GlZj+N9ytF2z+ngMwUDF1WAHh06Pwm59KfEr3OQIwsTzloHtmh05hT2DODLSUwE 9S/Q== 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:in-reply-to :references; bh=sX7eykaQ8cZK+ytZ0RoclnVS3C7FzTjrBrMveeNkyW0=; b=FiAl5+1qsajmcMH2u5V1FLrfE9Qvg8J4xUXoppla/MT9Q4RIM2ZjbfeJAPJ3S+Mw5F mcsD5IUCmU63/71l8u9HWKmCiNbLyhRBS2zcpfqUVL1jyBh1kDb5bCyzIEtb4HItCGtj hkQRMuL7aX9JmXuTPR1MKPtTYfeTyTFWBZlBrrmtSHf0TwRwuM7mg0pvCy+mg7U1OJes ViLYXQexqxjf6NX6M4x+WZeToLmu92CkaH8AN556DFNj6/rQwVJrBDv1TjLxZS3rx7hM HtPCtR9CMv5lm3U5i/4/Y8lU74hobz+OZeKu+LvaADt8PJ9U4Sm2qWyPifa4O6udG94V HakQ== X-Gm-Message-State: APjAAAUdfdRgmKC0NvkHuAcZ/thoWoS39Rml4m60eI5WnkAvhkkS9zbG LeIr56F4mNC/BQWIAyOy6WhY2WnQ0Mxdgw== X-Google-Smtp-Source: APXvYqwLhpJDTAMkQDahfqbOoPmf7EOgUKZcljgITJVmaQJmhrI5gTmiuNfr+kuGyHE/2e4mSBwhYg== X-Received: by 2002:a63:1854:: with SMTP id 20mr103061860pgy.366.1558706658608; Fri, 24 May 2019 07:04:18 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:33 +0530 Message-Id: <20190524140337.13415-6-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::444 Subject: [Qemu-devel] [RFC PATCH v2 5/9] util/async: add aio interfaces for io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta Reviewed-by: Stefan Hajnoczi --- util/async.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/util/async.c b/util/async.c index c10642a385..2709f0edc3 100644 --- a/util/async.c +++ b/util/async.c @@ -277,6 +277,14 @@ aio_ctx_finalize(GSource *source) } #endif +#ifdef CONFIG_LINUX_IO_URING + if (ctx->linux_io_uring) { + luring_detach_aio_context(ctx->linux_io_uring, ctx); + luring_cleanup(ctx->linux_io_uring); + ctx->linux_io_uring =3D NULL; + } +#endif + assert(QSLIST_EMPTY(&ctx->scheduled_coroutines)); qemu_bh_delete(ctx->co_schedule_bh); @@ -341,6 +349,29 @@ LinuxAioState *aio_get_linux_aio(AioContext *ctx) } #endif +#ifdef CONFIG_LINUX_IO_URING +LuringState *aio_setup_linux_io_uring(AioContext *ctx, Error **errp) +{ + if (ctx->linux_io_uring) { + return ctx->linux_io_uring; + } + + ctx->linux_io_uring =3D luring_init(errp); + if (!ctx->linux_io_uring) { + return NULL; + } + + luring_attach_aio_context(ctx->linux_io_uring, ctx); + return ctx->linux_io_uring; +} + +LuringState *aio_get_linux_io_uring(AioContext *ctx) +{ + assert(ctx->linux_io_uring); + return ctx->linux_io_uring; +} +#endif + void aio_notify(AioContext *ctx) { /* Write e.g. bh->scheduled before reading ctx->notify_me. Pairs @@ -432,6 +463,11 @@ AioContext *aio_context_new(Error **errp) #ifdef CONFIG_LINUX_AIO ctx->linux_aio =3D NULL; #endif + +#ifdef CONFIG_LINUX_IO_URING + ctx->linux_io_uring =3D NULL; +#endif + ctx->thread_pool =3D NULL; qemu_rec_mutex_init(&ctx->lock); timerlistgroup_init(&ctx->tlg, aio_timerlist_notify, ctx); -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558706847; cv=none; d=zoho.com; s=zohoarc; b=C8RIx5m5Asyyj9I0diSYApdHn0XM1xXzDM25wG+uRnxLupVe/C+BEZrLZwnlLdkSPn5vBTKsibQYXeOHlJOGk3DVmIV04N2LcvRhrh46QxUWHP7FByu8f9DYrXugnuTrklw0Brzu5XJLkMtBfVR8CIAGIQmMRWmiGxi7k0mview= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558706847; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=HHUEovWF7EXR7rQLHGWiE3cCOALQt2MWSiGE0Lugumc=; b=K5Td0lS+nsgHGZ0NO3nlZyRACKnRvhrHrRdUmsF6a4JiXHSlZZn6PQkOUn5BzqGkaWwOm3ijl8gOfQn/KJN9yVyamRkPEUey66VlOJwxtcc0EHZCjCkx3pkBuJWRVqPQuo4ogbwKUZqqUx1ERiYyjGRg29pG/pDzEXT66QkCyus= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558706847796728.3399364310234; Fri, 24 May 2019 07:07:27 -0700 (PDT) Received: from localhost ([127.0.0.1]:55145 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAqE-0004Vf-OC for importer@patchew.org; Fri, 24 May 2019 10:06:38 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAo6-0003K3-8M for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAo4-0002f2-Lv for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:26 -0400 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:40352) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAo4-0002eW-E1; Fri, 24 May 2019 10:04:24 -0400 Received: by mail-pg1-x544.google.com with SMTP id d30so5127519pgm.7; Fri, 24 May 2019 07:04:24 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HHUEovWF7EXR7rQLHGWiE3cCOALQt2MWSiGE0Lugumc=; b=hnARXkqDXehZrh41tvfk/VvinNqGoFHEaHO7S9P9BWbveGmrHUX8YlP2d6xwwvxPp8 TqhdbzMQA8ZdDXlR9pwWvR8xlC/74TG2OOnYlJ0QV2Z8ZEoazCTm36XvdWFE6zt9chXy 7nhAbjyCDlQkdz4grnkMS62+3HqqrT8MO8ADoCVKHdBmXppJH/bXTXVP9I8mE52K8gHO 6wWSL724oNpzSZN7FYgZUd/37FF+IdLO+xRiLU0qdZiTZH1S3hcKsx/tgUu2Oe7tfIGr mKRyOXvZSMO3Y5RbzgDIs/sz50LBzsXh/riZE+1zu3xJtOjwrcDBZvRBvLuY+XLcrrES HPqg== 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:in-reply-to :references; bh=HHUEovWF7EXR7rQLHGWiE3cCOALQt2MWSiGE0Lugumc=; b=lxhMIbXy/wnywi2JR1wuEC+jEQYb0pGJyXLn0PlDKDiYytUKJ/m93n7ULRiVJ9B3jR 8eMStQdYm91aRI4FbNslqIvdOoXh3CRcAPkXv4gsYG7+B1AHTdPphpF3Tc3KLr8SbL8F 9q9av74ruy36xywRhypLziTjJhe/zFQqtBjdcwl7KCz4SisPfkPwwtp99sURMJHQH9/R Tg0/NRLD+rnk3ovaPA+xjdpTW81qQNFNDO2tHPeKF8jDxjV8LYveTvHxKVn36ynvjjKK bs9nOt1/ThAQZLOk7fv619coJiBDRLcuCjEb3Q8byebn+A3WrCVt5XtIFdOXwQi/Xp9e ttyg== X-Gm-Message-State: APjAAAWV/sRTt0RdiDxggmb59ZV3fec208FSYNiZNI4/EAlt6z5J9NpW gdl8Yr48F/WF6UKu7yM3yrjTbXABNGVArA== X-Google-Smtp-Source: APXvYqyXiM6EZJrCb2ZykyUnksHiYEAKLkNKPtqbjWanj+f4XdxTvmsXzsCwtgV6Haj/PCx6GjixEw== X-Received: by 2002:a63:e018:: with SMTP id e24mr22720005pgh.361.1558706662971; Fri, 24 May 2019 07:04:22 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:34 +0530 Message-Id: <20190524140337.13415-7-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::544 Subject: [Qemu-devel] [RFC PATCH v2 6/9] block/io_uring: implements interfaces for io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta --- MAINTAINERS | 1 + block/Makefile.objs | 2 + block/io_uring.c | 306 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 309 insertions(+) create mode 100644 block/io_uring.c diff --git a/MAINTAINERS b/MAINTAINERS index b8fc1e3fe3..770d562c6c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2510,6 +2510,7 @@ R: Stefan Hajnoczi L: qemu-block@nongnu.org S: Maintained F: stubs/io_uring.c +F: block/io_uring.c L: qemu-block@nongnu.original diff --git a/block/Makefile.objs b/block/Makefile.objs index 7a81892a52..262d413c6d 100644 --- a/block/Makefile.objs +++ b/block/Makefile.objs @@ -18,6 +18,7 @@ block-obj-y +=3D block-backend.o snapshot.o qapi.o block-obj-$(CONFIG_WIN32) +=3D file-win32.o win32-aio.o block-obj-$(CONFIG_POSIX) +=3D file-posix.o block-obj-$(CONFIG_LINUX_AIO) +=3D linux-aio.o +block-obj-$(CONFIG_LINUX_IO_URING) +=3D io_uring.o block-obj-y +=3D null.o mirror.o commit.o io.o create.o block-obj-y +=3D throttle-groups.o block-obj-$(CONFIG_LINUX) +=3D nvme.o @@ -61,5 +62,6 @@ block-obj-$(if $(CONFIG_LZFSE),m,n) +=3D dmg-lzfse.o dmg-lzfse.o-libs :=3D $(LZFSE_LIBS) qcow.o-libs :=3D -lz linux-aio.o-libs :=3D -laio +io_uring.o-libs :=3D -luring parallels.o-cflags :=3D $(LIBXML2_CFLAGS) parallels.o-libs :=3D $(LIBXML2_LIBS) diff --git a/block/io_uring.c b/block/io_uring.c new file mode 100644 index 0000000000..817ec055db --- /dev/null +++ b/block/io_uring.c @@ -0,0 +1,306 @@ +/* + * Linux io_uring support. + * + * Copyright (C) 2009 IBM, Corp. + * Copyright (C) 2009 Red Hat, Inc. + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ +#include + +#include "qemu/osdep.h" +#include "qemu-common.h" +#include "block/aio.h" +#include "qemu/queue.h" +#include "block/block.h" +#include "block/raw-aio.h" +#include "qemu/event_notifier.h" +#include "qemu/coroutine.h" +#include "qapi/error.h" + +#define MAX_EVENTS 128 + +typedef struct LuringAIOCB { + BlockAIOCB common; + Coroutine *co; + struct io_uring_sqe sqeq; + int ret; + QSIMPLEQ_ENTRY(LuringAIOCB) next; +} LuringAIOCB; + +typedef struct LuringQueue { + int plugged; + unsigned int in_queue; + unsigned int in_flight; + bool blocked; + QSIMPLEQ_HEAD(, LuringAIOCB) pending; +} LuringQueue; + +typedef struct LuringState { + AioContext *aio_context; + + struct io_uring ring; + + /* io queue for submit at batch. Protected by AioContext lock. */ + LuringQueue io_q; + + /* I/O completion processing. Only runs in I/O thread. */ + QEMUBH *completion_bh; + int event_idx; + int event_max; +} LuringState; + +static void ioq_submit(LuringState *s); + +static inline int io_cqe_ret(struct io_uring_cqe *cqe) +{ + return cqe->res; +} + +/** + * qemu_luring_process_completions: + * @s: AIO state + * + * Fetches completed I/O requests, consumes cqes and invokes their callbac= ks. + * + */ +static void qemu_luring_process_completions(LuringState *s) +{ + struct io_uring_cqe *cqes; + + qemu_bh_schedule(s->completion_bh); + + while ((s->event_max =3D s->io_q.in_flight) && + !io_uring_peek_cqe(&s->ring, &cqes)) { + for (s->event_idx =3D 0; s->event_idx < s->event_max;) { + io_uring_cqe_seen(&s->ring, cqes); + + LuringAIOCB *luringcb; + luringcb =3D g_malloc0(sizeof(luringcb)); + luringcb->ret =3D io_cqe_ret(cqes); + /* Change counters one-by-one because we can be nested. */ + s->io_q.in_flight--; + s->event_idx++; + } + } + + qemu_bh_cancel(s->completion_bh); + + /* + *If we are nested we have to notify the level above that we are done + * by setting event_max to zero, upper level will then jump out of it's + * own `for` loop. If we are the last all counters dropped to zero. + */ + s->event_max =3D 0; + s->event_idx =3D 0; +} + +static void qemu_luring_process_completions_and_submit(LuringState *s) +{ + aio_context_acquire(s->aio_context); + qemu_luring_process_completions(s); + + if (!s->io_q.plugged && !QSIMPLEQ_EMPTY(&s->io_q.pending)) { + ioq_submit(s); + } + aio_context_release(s->aio_context); +} + +static void qemu_luring_completion_bh(void *opaque) +{ + LuringState *s =3D opaque; + qemu_luring_process_completions_and_submit(s); +} + +static void qemu_luring_completion_cb(void *opaque) +{ + LuringState *s =3D opaque; + qemu_luring_process_completions_and_submit(s); +} + +static const AIOCBInfo luring_aiocb_info =3D { + .aiocb_size =3D sizeof(LuringAIOCB), +}; + + +static void ioq_init(LuringQueue *io_q) +{ + QSIMPLEQ_INIT(&io_q->pending); + io_q->plugged =3D 0; + io_q->in_queue =3D 0; + io_q->in_flight =3D 0; + io_q->blocked =3D false; +} + +static void ioq_submit(LuringState *s) +{ + int ret, len; + LuringAIOCB *luringcb; + QSIMPLEQ_HEAD(, LuringAIOCB) completed; + + while (s->io_q.in_flight >=3D MAX_EVENTS && s->io_q.in_queue) { + len =3D 0; + QSIMPLEQ_FOREACH(luringcb, &s->io_q.pending, next) { + if (s->io_q.in_flight + len++ >=3D MAX_EVENTS) { + break; + } + struct io_uring_sqe *sqes =3D io_uring_get_sqe(&s->ring); + if (sqes) { /* Prep sqe for subission */ + memset(sqes, 0, sizeof(*sqes)); + *sqes =3D luringcb->sqeq; + QSIMPLEQ_REMOVE_HEAD(&s->io_q.pending, next); + } else { + break; + } + } + + ret =3D io_uring_submit(&s->ring); + if (ret =3D=3D -EAGAIN) { + break; + } + + s->io_q.in_flight +=3D ret; + s->io_q.in_queue -=3D ret; + QSIMPLEQ_SPLIT_AFTER(&s->io_q.pending, luringcb, next, &completed); + } + s->io_q.blocked =3D (s->io_q.in_queue > 0); + + if (s->io_q.in_flight) { + /* + * We can try to complete something just right away if there are + * still requests in-flight. + */ + qemu_luring_process_completions(s); + } +} + +void luring_io_plug(BlockDriverState *bs, LuringState *s) +{ + s->io_q.plugged++; +} + +void luring_io_unplug(BlockDriverState *bs, LuringState *s) +{ + assert(s->io_q.plugged); + if (--s->io_q.plugged =3D=3D 0 && + !s->io_q.blocked && !QSIMPLEQ_EMPTY(&s->io_q.pending)) { + ioq_submit(s); + } +} + +static int luring_do_submit(int fd, LuringAIOCB *luringcb, LuringState *s, + uint64_t offset, QEMUIOVector *qiov, int type) +{ + struct io_uring_sqe *sqes =3D io_uring_get_sqe(&s->ring); + if (!sqes) { + sqes =3D &luringcb->sqeq; + QSIMPLEQ_INSERT_TAIL(&s->io_q.pending, luringcb, next); + } + + switch (type) { + case QEMU_AIO_WRITE: + io_uring_prep_writev(sqes, fd, qiov->iov, qiov->niov, offset); + break; + case QEMU_AIO_READ: + io_uring_prep_readv(sqes, fd, qiov->iov, qiov->niov, offset); + break; + case QEMU_AIO_FLUSH: + io_uring_prep_fsync(sqes, fd, IORING_FSYNC_DATASYNC); + break; + default: + fprintf(stderr, "%s: invalid AIO request type, aborting 0x%x.\n", + __func__, type); + abort(); + } + + s->io_q.in_queue++; + if (!s->io_q.blocked && + (!s->io_q.plugged || + s->io_q.in_flight + s->io_q.in_queue >=3D MAX_EVENTS)) { + ioq_submit(s); + } + + return 0; +} + +int coroutine_fn luring_co_submit(BlockDriverState *bs, LuringState *s, in= t fd, + uint64_t offset, QEMUIOVector *qiov, int t= ype) +{ + int ret; + LuringAIOCB luringcb =3D { + .co =3D qemu_coroutine_self(), + .ret =3D -EINPROGRESS, + }; + + ret =3D luring_do_submit(fd, &luringcb, s, offset, qiov, type); + if (ret < 0) { + return ret; + } + + if (luringcb.ret =3D=3D -EINPROGRESS) { + qemu_coroutine_yield(); + } + return luringcb.ret; +} + +BlockAIOCB *luring_submit(BlockDriverState *bs, LuringState *s, int fd, + int64_t sector_num, QEMUIOVector *qiov, BlockCompletionFunc *cb, + void *opaque, int type) +{ + LuringAIOCB *luringcb; + off_t offset =3D sector_num * BDRV_SECTOR_SIZE; + int ret; + + luringcb =3D qemu_aio_get(&luring_aiocb_info, bs, cb, opaque); + luringcb->ret =3D -EINPROGRESS; + ret =3D luring_do_submit(fd, luringcb, s, offset, qiov, type); + if (ret < 0) { + qemu_aio_unref(luringcb); + return NULL; + } + + return &luringcb->common; +} + +void luring_detach_aio_context(LuringState *s, AioContext *old_context) +{ + aio_set_fd_handler(old_context, s->ring.ring_fd, false, NULL, NULL, NU= LL, + &s); + qemu_bh_delete(s->completion_bh); + s->aio_context =3D NULL; +} + +void luring_attach_aio_context(LuringState *s, AioContext *new_context) +{ + s->aio_context =3D new_context; + s->completion_bh =3D aio_bh_new(new_context, qemu_luring_completion_bh= , s); + aio_set_fd_handler(s->aio_context, s->ring.ring_fd, false, + (IOHandler *)qemu_luring_completion_cb, NULL, NULL,= &s); +} + +LuringState *luring_init(Error **errp) +{ + int rc; + LuringState *s; + s =3D g_malloc0(sizeof(*s)); + struct io_uring *ring =3D &s->ring; + rc =3D io_uring_queue_init(MAX_EVENTS, ring, 0); + if (rc =3D=3D -1) { + error_setg_errno(errp, errno, "failed to init linux io_uring ring"= ); + goto out_close_efd; + } + + ioq_init(&s->io_q); + return s; + +out_close_efd: + g_free(s); + return NULL; +} + +void luring_cleanup(LuringState *s) +{ + io_uring_queue_exit(&s->ring); + g_free(s); +} -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558706987; cv=none; d=zoho.com; s=zohoarc; b=Xz+1yrYB2kvfJExczverporgmLx8m4RiELrFst3xRQGQtpiQDhEoT48joWT091Jy7QTqcS78/rsNhyMubJmVf2WloELmc0uZZ8+PXP5F/M+ED9m+7OwVBOF4tEJ3Fkmj5/KbEfU+zQ1R9IWerk0ZYgpIXSxTX64FhOIe1SuycvY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558706987; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=bhbpjK0JQSStbd9y2pHNMHs1B0N4hnvXiiUW+QxkFQ4=; b=Eu3x/p3EOZte9SivWYExiwfmDzJZcHzZJkDMEpxlFVMlpbrmaVThds3Rp2K1NX0+rwDCJcjDqDGtRq9WF1LE/KLwj6u9D1aBK2m+k0sCaxE/JyPKcjF/spT+EhCt7oFTM3qOTXrof22hB3juUiYgPMNVXCpiv6NPrrVmgxkurZk= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558706987076899.2377552269476; Fri, 24 May 2019 07:09:47 -0700 (PDT) Received: from localhost ([127.0.0.1]:55170 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAtA-0006nZ-TJ for importer@patchew.org; Fri, 24 May 2019 10:09:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAo9-0003KZ-M2 for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAo8-0002hm-Qa for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:29 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:35973) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAo8-0002hC-H8; Fri, 24 May 2019 10:04:28 -0400 Received: by mail-pf1-x444.google.com with SMTP id v80so5410456pfa.3; Fri, 24 May 2019 07:04:28 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bhbpjK0JQSStbd9y2pHNMHs1B0N4hnvXiiUW+QxkFQ4=; b=Oyf7mzRbIXIQby8DetG/3EjqhHBVqDNz9Y1nM/7bDJBnz7izbKc4ZzHBAbOyCdyXTD GArTtt7UgKx91rvU8Sn3yYtB/DAeQqN/z09uhD7mxo9nDuD+tCiQ17WF1B0n/Krciz6K dXXrkKy6G/w/Bcj+UjwtM4Xj2Zvh1CWy6ARQUfVYe7voE64rQBFJfErCwidNCgDwNUKM Q9/8Y8l+WzFLTubJpfJg93yLpHN0pY9WW+zxO/L7dba6ygmsbkc/3iXS+Lg3nlZv37vM Ij+p+IpK2AeWdS/EBHj2NDS1OJiEK4tnRqQU0QMGkzSK5vBhfLYQ+TNTvld/n35sQ8/4 j2yg== 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:in-reply-to :references; bh=bhbpjK0JQSStbd9y2pHNMHs1B0N4hnvXiiUW+QxkFQ4=; b=fcb9nwjcLNJNm3AjNB1OB9oXeWmSjS5smDC5oQ9/MKofABv75YrLhhoPVDjrpOyQoe 6kss7OcWXN1qNCvt1r1NIXeBTWlXQRCRNB7tPB8nG1EE65iQgnRaW1OOsutezg3JHvDh S9WbHwtq7t/ZTfvtx0yLP6KIUIyJfY8bDeHELUXT244Yb/PBPSYlgpDLZ8raVLZp1faH HSGahLA+5KtqqJxvhy4j3xfFhoHoiuWjHVK/0f4z1P/iiamxXqLOSmx5gk9SZlHMNKOl hFfxOHUa8LkuKg5WUTKP/2ksun3L7xUBDeWpWEeutt+xL5l1tLOzFe9CGpezBeRZBLhI gmkA== X-Gm-Message-State: APjAAAX/6fY2/N/TFFazmd3HxZWJImkZ67PN++DvR9AZTDm/aBOxV+vf INGh2KfENmv6O8OgRWxsWoIf5KifRmeRjA== X-Google-Smtp-Source: APXvYqzpUrPhyOLEahTBrIgFjV89enubrXhSOEQ9zwPafgN7rEwry7KLVKssKuwOFyBNu0q9HFI0Cw== X-Received: by 2002:a63:5342:: with SMTP id t2mr2778154pgl.410.1558706667199; Fri, 24 May 2019 07:04:27 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:35 +0530 Message-Id: <20190524140337.13415-8-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::444 Subject: [Qemu-devel] [RFC PATCH v2 7/9] blockdev: accept io_uring as option X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta Reviewed-by: Stefan Hajnoczi --- blockdev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/blockdev.c b/blockdev.c index 79fbac8450..b44b9d660d 100644 --- a/blockdev.c +++ b/blockdev.c @@ -386,6 +386,8 @@ static void extract_common_blockdev_options(QemuOpts *o= pts, int *bdrv_flags, if ((aio =3D qemu_opt_get(opts, "aio")) !=3D NULL) { if (!strcmp(aio, "native")) { *bdrv_flags |=3D BDRV_O_NATIVE_AIO; + } else if (!strcmp(aio, "io_uring")) { + *bdrv_flags |=3D BDRV_O_IO_URING; } else if (!strcmp(aio, "threads")) { /* this is the default */ } else { @@ -4547,7 +4549,7 @@ QemuOptsList qemu_common_drive_opts =3D { },{ .name =3D "aio", .type =3D QEMU_OPT_STRING, - .help =3D "host AIO implementation (threads, native)", + .help =3D "host AIO implementation (threads, native, io_uring)= ", },{ .name =3D BDRV_OPT_CACHE_WB, .type =3D QEMU_OPT_BOOL, -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558706835; cv=none; d=zoho.com; s=zohoarc; b=DrXI9hCbXLBwI3USyDTB3zMJVi3y6JCXOp2dgJsxYtQyk21GTxfKP3li96Sg0//gMc9HmM0+6aSAVCd7qR6gGoIzDSP1jAIqC1xStMqlDk77WHnPB4V2xoeuhFoq29WZhRMgcqDsqIn1NEYP3gq8nBA/IG2vYNn6P+/y+dwhUWo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558706835; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=Bnl7EcppW2nmeABcnfX52ya1ob5IiGizIyyR9kXL2Gs=; b=AAR3USnP+JVxPrGSwcs03qu58uh2J5Askwr26QBVT9K3yt4eTMhJOJYFV9eHYKFg3WFDqGgkcSE2GqMxP/CqHKFzYko1lHDGuLHlyf3Ixd4khniiLU0CKZm4xvgmoXCOgUyq5FHotDkEXqeRXsBInIJPoGB4NXRwWkGOvGdQBow= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558706835622903.6372563383067; Fri, 24 May 2019 07:07:15 -0700 (PDT) Received: from localhost ([127.0.0.1]:55147 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAqd-0004pK-EE for importer@patchew.org; Fri, 24 May 2019 10:07:03 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAoN-0003SB-OH for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAoF-0002mX-Gj for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:38 -0400 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]:36270) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAoD-0002jz-DO; Fri, 24 May 2019 10:04:35 -0400 Received: by mail-pl1-x643.google.com with SMTP id d21so4229668plr.3; Fri, 24 May 2019 07:04:32 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Bnl7EcppW2nmeABcnfX52ya1ob5IiGizIyyR9kXL2Gs=; b=bNnXPd7JvwWstWPX8lmMgxJrEHeWAR1s2EKh4rM9xhcIzuyrbzvzpi/nHsom79twv2 orN87HOU+iXcgsBdp9RFN4tzu1dNGcqO1MYuB3U0V/4nUHYjclnOe7dw8eOGbpN6VceL XdSmrwwBa1ax3LuLgrvovFPkzCo1nPti38Sn9+0MCzsvXQdoJ+OuYY1BE44CuxyEWrkE Nyux5H2E0naq2crKddGkBcwFu7+HkGe8de6ICD/icxavMa7KMMdqRWl24n+P3AmZY1+u yUIpEVeSGfVHTiYNyogOSdZ3t62J3U0Sy7NFUzuucPpen3yo+b0BV+kJeJ34G+LvYFF/ XiYA== 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:in-reply-to :references; bh=Bnl7EcppW2nmeABcnfX52ya1ob5IiGizIyyR9kXL2Gs=; b=QKh84w03PWP9TmTGuPbPLERNIZeN2ZPzRnpbEtUg4MoWmNVDBaLAHxOjjHcINjKOkq zZfuleaV3EBuPVrcjCnkorgLis7lWf/zt5KsEePKV7c0Q7HEFucrVn8ZcyIbIDqb20sS ElMLx8cQKCv9JAFbGDEE+NG36MVu6OKXY2shqLaderLSDEdGDTK037KubXUXG1yAZ7I3 6L0IiU/Stog6oArq4SZdJodJjuj6WFnf5uVq+6Ite1Hsyrj20BQMPYvCQyOsX3MDe1Nt vtEFGwSLvjS2aXUf3h0HSu3rpzYXtl+6bLJa2mF6LO6lUU8k4xt96gMoDcv8ybfJevBg R7dg== X-Gm-Message-State: APjAAAUzBpqJbEke7/G4wfab9rkmSHxGQcu6IWoD/qpHd87NlE5ieBDW 2kC/J4wDpXT+lBgKMWmhfSFKyPL2v/VN+A== X-Google-Smtp-Source: APXvYqwuUsZku1PsiUrPWU5Qh/Ew67T39Hr95s6ATRLvE+izQYzjGoYuGOWJc+z1Zn8/VkzbKsukRg== X-Received: by 2002:a17:902:a982:: with SMTP id bh2mr2403318plb.224.1558706671221; Fri, 24 May 2019 07:04:31 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:36 +0530 Message-Id: <20190524140337.13415-9-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::643 Subject: [Qemu-devel] [RFC PATCH v2 8/9] block/file-posix: extends to use with io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta --- block/file-posix.c | 63 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 5 deletions(-) diff --git a/block/file-posix.c b/block/file-posix.c index d018429672..1f24618cfc 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -154,6 +154,7 @@ typedef struct BDRVRawState { bool has_write_zeroes:1; bool discard_zeroes:1; bool use_linux_aio:1; + bool use_linux_io_uring:1; bool page_cache_inconsistent:1; bool has_fallocate; bool needs_alignment; @@ -423,7 +424,7 @@ static QemuOptsList raw_runtime_opts =3D { { .name =3D "aio", .type =3D QEMU_OPT_STRING, - .help =3D "host AIO implementation (threads, native)", + .help =3D "host AIO implementation (threads, native, io_uring)= ", }, { .name =3D "locking", @@ -494,6 +495,7 @@ static int raw_open_common(BlockDriverState *bs, QDict = *options, goto fail; } s->use_linux_aio =3D (aio =3D=3D BLOCKDEV_AIO_OPTIONS_NATIVE); + s->use_linux_io_uring =3D (aio =3D=3D BLOCKDEV_AIO_OPTIONS_IO_URING); locking =3D qapi_enum_parse(&OnOffAuto_lookup, qemu_opt_get(opts, "locking"), @@ -557,7 +559,9 @@ static int raw_open_common(BlockDriverState *bs, QDict = *options, s->shared_perm =3D BLK_PERM_ALL; #ifdef CONFIG_LINUX_AIO - /* Currently Linux does AIO only for files opened with O_DIRECT */ + /* + * Currently Linux does AIO only for files opened with O_DIRECT + */ if (s->use_linux_aio) { if (!(s->open_flags & O_DIRECT)) { error_setg(errp, "aio=3Dnative was specified, but it requires " @@ -578,6 +582,21 @@ static int raw_open_common(BlockDriverState *bs, QDict= *options, goto fail; } #endif /* !defined(CONFIG_LINUX_AIO) */ +#ifdef CONFIG_LINUX_IO_URING + if (s->use_linux_io_uring) { + if (!aio_setup_linux_io_uring(bdrv_get_aio_context(bs), errp)) { + error_prepend(errp, "Unable to use io_uring: "); + goto fail; + } + } +#else + if (s->use_linux_io_uring) { + error_setg(errp, "aio=3Dio_uring was specified, but is not support= ed " + "in this build."); + ret =3D -EINVAL; + goto fail; + } +#endif /* !defined(CONFIG_LINUX_IO_URING) */ s->has_discard =3D true; s->has_write_zeroes =3D true; @@ -1883,6 +1902,12 @@ static int coroutine_fn raw_co_prw(BlockDriverState = *bs, uint64_t offset, LinuxAioState *aio =3D aio_get_linux_aio(bdrv_get_aio_context(= bs)); assert(qiov->size =3D=3D bytes); return laio_co_submit(bs, aio, s->fd, offset, qiov, type); +#endif +#ifdef CONFIG_LINUX_IO_URING + } else if (s->use_linux_io_uring) { + LuringState *aio =3D aio_get_linux_io_uring(bdrv_get_aio_conte= xt(bs)); + assert(qiov->size =3D=3D bytes); + return luring_co_submit(bs, aio, s->fd, offset, qiov, type); #endif } } @@ -1920,24 +1945,40 @@ static int coroutine_fn raw_co_pwritev(BlockDriverS= tate *bs, uint64_t offset, static void raw_aio_plug(BlockDriverState *bs) { -#ifdef CONFIG_LINUX_AIO +#if defined CONFIG_LINUX_AIO || defined CONFIG_LINUX_IO_URING BDRVRawState *s =3D bs->opaque; +#endif +#ifdef CONFIG_LINUX_AIO if (s->use_linux_aio) { LinuxAioState *aio =3D aio_get_linux_aio(bdrv_get_aio_context(bs)); laio_io_plug(bs, aio); } #endif +#ifdef CONFIG_LINUX_IO_URING + if (s->use_linux_io_uring) { + LuringState *aio =3D aio_get_linux_io_uring(bdrv_get_aio_context(b= s)); + luring_io_plug(bs, aio); + } +#endif } static void raw_aio_unplug(BlockDriverState *bs) { -#ifdef CONFIG_LINUX_AIO +#if defined CONFIG_LINUX_AIO || defined CONFIG_LINUX_IO_URING BDRVRawState *s =3D bs->opaque; +#endif +#ifdef CONFIG_LINUX_AIO if (s->use_linux_aio) { LinuxAioState *aio =3D aio_get_linux_aio(bdrv_get_aio_context(bs)); laio_io_unplug(bs, aio); } #endif +#ifdef CONFIG_LINUX_IO_URING + if (s->use_linux_aio) { + LuringState *aio =3D aio_get_linux_io_uring(bdrv_get_aio_context(b= s)); + luring_io_unplug(bs, aio); + } +#endif } static int raw_co_flush_to_disk(BlockDriverState *bs) @@ -1963,8 +2004,10 @@ static int raw_co_flush_to_disk(BlockDriverState *bs) static void raw_aio_attach_aio_context(BlockDriverState *bs, AioContext *new_context) { +#if defined CONFIG_LINUX_AIO || defined CONFIG_LINUX_IO_URING + BDRVRawState *s =3D bs->opaque; +#endif #ifdef CONFIG_LINUX_AIO - BDRVRawState *s =3D bs->opaque; if (s->use_linux_aio) { Error *local_err; if (!aio_setup_linux_aio(new_context, &local_err)) { @@ -1974,6 +2017,16 @@ static void raw_aio_attach_aio_context(BlockDriverSt= ate *bs, } } #endif +#ifdef CONFIG_LINUX_IO_URING + if (s->use_linux_io_uring) { + Error *local_err; + if (!aio_setup_linux_io_uring(new_context, &local_err)) { + error_reportf_err(local_err, "Unable to use linux io_uring, " + "falling back to thread pool: "); + s->use_linux_io_uring =3D false; + } + } +#endif } static void raw_close(BlockDriverState *bs) -- 2.17.1 From nobody Mon Apr 29 14:14:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1558706867; cv=none; d=zoho.com; s=zohoarc; b=A45xzGa5reCgdvDgvtDmIHRDr6RzTHfIAxt3hSWSccOsoS9BqSfB/m58SqUOeY6iX///T3Rti4XYBbM9SyAIPsv4Jp6BSoP35s1aaDn9Udmf+jBEqt0+9Vl6bcKfvTgGiLASKb3baTgTzmypoNFu1BFo3ZUawq5BhLSfCXWNhqE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558706867; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=mXSPb6nljQ3a7CRCQcFUnmtz50HC0QCQI3eoM4YTe0A=; b=gS7ylaG5MjzffQyQyfoxa5BDD2o6D2mq8WjMD8Z4MO0+qwhwVS+Pe2nwgRgPVDmtbh647D7eF9bV5qOi4LwVFHsFRGdMDf9bsREJdxSjGBzkik3cxc/jr71oow9CNLL/xHNVJrnSeS2RCN8F0VR4+tQNiRNqgFGd5EmdRhtLOQg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558706867000444.86039648216774; Fri, 24 May 2019 07:07:47 -0700 (PDT) Received: from localhost ([127.0.0.1]:55151 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUArE-0005I9-Uu for importer@patchew.org; Fri, 24 May 2019 10:07:41 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40530) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hUAoR-0003TT-IV for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hUAoP-0002sY-1w for qemu-devel@nongnu.org; Fri, 24 May 2019 10:04:47 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]:33486) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hUAoN-0002nD-4M; Fri, 24 May 2019 10:04:44 -0400 Received: by mail-pl1-x641.google.com with SMTP id g21so4248170plq.0; Fri, 24 May 2019 07:04:37 -0700 (PDT) Received: from localhost.localdomain ([120.57.120.132]) by smtp.gmail.com with ESMTPSA id u11sm2556766pfh.130.2019.05.24.07.04.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 May 2019 07:04:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=mXSPb6nljQ3a7CRCQcFUnmtz50HC0QCQI3eoM4YTe0A=; b=P0nP2DogfxS5wY12rUxQWWz3RGjT4JdvKAbWC1/SknUminwjmvB6o5KbqV/6SCZibu WgzOVrk2tgw+NX0KvOCUwqY416wLuJWTwRJ3tqP12UoEH+dOqk3AX+J1nGREP02C95CR x5uT6iIjlo0t3ge3vgtc2g8/SoPWzB77dx1ifTMUt0Yti+9WtRs4pDl1tALvfsSk23wc mZ4mQ7bFxJb4YzZZyFUo+amZEGJklxwx2NQpFkLAKwjqJC/mIVPrK1g/UC3CV/rNBhT+ tyWpFlKSoisRZcsePk8iZPVVJjRIjkaZH3WouCQDHfekDjsT99PyBdse3Gd4zl0sJb+2 xLmQ== 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:in-reply-to :references; bh=mXSPb6nljQ3a7CRCQcFUnmtz50HC0QCQI3eoM4YTe0A=; b=scWgOB1xFlXXFxeQRVKbKl8LzFt6uxW/UntBTsB/a7ZWuSFMxkSA5IaqXkMADO9FJH xT7odSUzSiL+Pxax7Z49SpHhSeZmkIY0d2vy5r7/iwHZ8XLxp+3slq0PtKXukIwY47if WkUTflDUtDC2Uf89qBGrOuUXJCw21aaBMU1hQ8oGIm6PHo/btUBnrxlLJIayy5QT7lKz oq6sPptNBOoHMJRy8prUE3Wrh1/8jGz3y9Ge0ccasfJ5pae2Gyu5nL+cLnbYxm+phjPH DCbrvdP6om7eJ8Byb4ocNS/HJF/O4xFV5PE73q/OazKb1pbu0ADKklhthtFDMlxp4qda lGSg== X-Gm-Message-State: APjAAAX9lpsJb46U1LHmB6Bv7M+cmO58ooW9Fs5ugv2wS2IF2zI0NvyR IAy2vPpqaqMX+am1GvkOJBngAE3MrEw+wA== X-Google-Smtp-Source: APXvYqz+uEgCOuj5OWmzqFp83Bm3XQTh9XCt8zY2DbjkXp8WE5g41uS68yMCdvVAlQihd83rGSnSWg== X-Received: by 2002:a17:902:ac90:: with SMTP id h16mr42558597plr.162.1558706675701; Fri, 24 May 2019 07:04:35 -0700 (PDT) From: Aarushi Mehta To: qemu-devel@nongnu.org Date: Fri, 24 May 2019 19:33:37 +0530 Message-Id: <20190524140337.13415-10-mehta.aaru20@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190524140337.13415-1-mehta.aaru20@gmail.com> References: <20190524140337.13415-1-mehta.aaru20@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::641 Subject: [Qemu-devel] [RFC PATCH v2 9/9] configure: permit use of io_uring X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, saket.sinha89@gmail.com, Stefan Hajnoczi , Julia Suvorova , Aarushi Mehta Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Aarushi Mehta Reviewed-by: Stefan Hajnoczi --- configure | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/configure b/configure index 528b9ff705..86383dc0b3 100755 --- a/configure +++ b/configure @@ -365,6 +365,7 @@ xen=3D"" xen_ctrl_version=3D"" xen_pci_passthrough=3D"" linux_aio=3D"" +linux_io_uring=3D"" cap_ng=3D"" attr=3D"" libattr=3D"" @@ -1255,6 +1256,10 @@ for opt do ;; --enable-linux-aio) linux_aio=3D"yes" ;; + --disable-linux-io-uring) linux_io_uring=3D"no" + ;; + --enable-linux-io-uring) linux_io_uring=3D"yes" + ;; --disable-attr) attr=3D"no" ;; --enable-attr) attr=3D"yes" @@ -1773,6 +1778,7 @@ disabled with --disable-FEATURE, default is enabled i= f available: vde support for vde network netmap support for netmap network linux-aio Linux AIO support + linux-io-uring Linux io_uring support cap-ng libcap-ng support attr attr and xattr support vhost-net vhost-net kernel acceleration support @@ -3962,6 +3968,23 @@ EOF linux_aio=3Dno fi fi +########################################## +# linux-io-uring probe + +if test "$linux_io_uring" !=3D "no" ; then + cat > $TMPC < +int main(void) { io_uring_queue_init(0, NULL, 0); io_uring_submit(NULL); r= eturn 0; } +EOF + if compile_prog "" "-luring" ; then + linux_io_uring=3Dyes + else + if test "$linux_io_uring" =3D "yes" ; then + feature_not_found "linux io_uring" "Install liburing" + fi + linux_io_uring=3Dno + fi +fi ########################################## # TPM emulation is only on POSIX @@ -6378,6 +6401,7 @@ echo "PIE $pie" echo "vde support $vde" echo "netmap support $netmap" echo "Linux AIO support $linux_aio" +echo "Linux io_uring support $linux_io_uring" echo "ATTR/XATTR support $attr" echo "Install blobs $blobs" echo "KVM support $kvm" @@ -6858,6 +6882,9 @@ fi if test "$linux_aio" =3D "yes" ; then echo "CONFIG_LINUX_AIO=3Dy" >> $config_host_mak fi +if test "$linux_io_uring" =3D "yes" ; then + echo "CONFIG_LINUX_IO_URING=3Dy" >> $config_host_mak +fi if test "$attr" =3D "yes" ; then echo "CONFIG_ATTR=3Dy" >> $config_host_mak fi -- 2.17.1