From patchwork Tue Jan 28 20:56:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953177 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F86B1B413D for ; Tue, 28 Jan 2025 20:56:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097764; cv=none; b=fe33J7ARiSM6uXS9Bf+MEdAqVvYcsVkZRNPFjnaVKoGOS6vFvFgZVoWurFmixEWnR/hbkdEaP9+vwODPR/6voPym8ZvH6XmBrC07HRwVlyOlwyyC9RKIhp8s76W0cu+2Me/WBbOoEY9Hnad7a+MTnMoIghlLMTmzYJW7aVmCmMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097764; c=relaxed/simple; bh=T8Z1eAsO6oaR9W2nRVlYZ7AJd6NuTCg9Cd8nE904Bm0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s/3WwQo5M0Npjg52mdO4+8/9wikT7YovRZIsavpCc/nX9YVehmaFv9ExlxGArbKfew3sL5VcvWux9jkdVJh0lxGijXu3Iw1NFrv2Z64tuVebNwG/DBLVXS6QKKBWOBZk8dkJ+yaCoiYyV8sebpY4j2oITuJPvFWk5j7fJH4GCQs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EToUmMIE; arc=none smtp.client-ip=209.85.218.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EToUmMIE" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-aaef00ab172so952613666b.3 for ; Tue, 28 Jan 2025 12:56:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097760; x=1738702560; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=t+nOJtAX6+kYF1bb2sQ5F6RVPoNx6++/YurYOca8ufk=; b=EToUmMIEL4KMEetpPFBj702C7XB3UiRKjLZmGpLWlKAEcP1EIK4Ms79HUfZgftu5p3 Nv6pATWIy5usUQ9lmts6gk/HjGw+JdOkyDbfd3xuOPzD6/HgohhB2JmFEXNdH2sKDzcU oYXmanCFoU/5kNQ9ukDEM+C68ID9Wb5zWQOt0GHYpUmS0zUH1teFSRNWJ0plCqdDizmK t7gvWnRpzbC8ptgchQIFNiIE7jK3nonSEr0fpvVAM65rv36fDLc/BSB8UiCOqZhEXXlo VVaU0ZNdtzZpnrwb0uJL9V9JIEW1gGtFbJpUObfsMjzo6ZW4vNMcJ7MIVumTdeDQZZvE +8TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097760; x=1738702560; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t+nOJtAX6+kYF1bb2sQ5F6RVPoNx6++/YurYOca8ufk=; b=fNUaTlGhyCdjWEfMgydgQbBc2WnXGykoeB5XmdEjRdRnEYx4QqZWgGpZBVJ1Z3VNnP BL+KvUv/QLL7KlmKwwksUMxGb6riI4/Nmm9k2pmEBxrrwrcbniT+nvXE6XJsKp7R7acU iwLV5cnz2mYOjwgnVZvNKAeyB8ok0/PGoWgDbR8y3lphqAsX07wNJ6LzHQrnwBoUKhuE y3foxkd4/0vnlwIYt6sVhEsEs0kX5iQgF0zcpCgnfWapMcVMe9r+acis8OWUYmNXI3LV 0tJXbJEHruYWMlalg0UYSz2QQuiqb79GNaxKTfyNrLMvnVtp0NPsFmzaLkaqeoBnjhTR trDg== X-Gm-Message-State: AOJu0Ywdso30kLj0fXt2ay+unM4iF1dwAzNCB0SKUumTIOzhsXdQmQ6h 4BcMCzArMmySwQAy4qvpNTZceeerTiDNsZuIn3EctZKGycmtte5UFcDNaQ== X-Gm-Gg: ASbGncs0oFsFnMezbPzedESXjLOrhtdXpFcp5xnakWltFb3CgG8jFpYTINkvdRMJVRk Oc81lhsGh18++ZTQG7DTFIn4e6oEjenwu1ke7nL1jXx/ldfTzg9ayUYYSK3lOUSVDdJRDOC82PK rHT2fH7oCQ7TBZuk87s7uZq7JmPM5TZLtB0UOziZ4K5kL5vRGLtEbEXp4cx7YVcnJ6HmnOE3YlQ uRPay8nl8mo1AptFR7VQFgnlIJg3TpA9Aqy6e8bxc45Cb2OZ3A05Md7NoTA28Guo80Ena2sGPLI Riz+04cJ2Rq8YA6CN4heONRD/ui6 X-Google-Smtp-Source: AGHT+IGlHRji2yB2tlCKGhe58ZErsy4bpaSFYHUO+Sw4SeApm8sxSW5D/LWEpeN0t/Efb0mk6XZw7Q== X-Received: by 2002:a05:6402:2348:b0:5d0:8f1c:d9d7 with SMTP id 4fb4d7f45d1cf-5dc5efa8a6emr1141142a12.4.1738097759810; Tue, 28 Jan 2025 12:55:59 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.55.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:55:58 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 1/8] io_uring: include all deps for alloc_cache.h Date: Tue, 28 Jan 2025 20:56:09 +0000 Message-ID: <39569f3d5b250b4fe78bb609d57f67d3736ebcc4.1738087204.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 alloc_cache.h uses types it doesn't declare and thus depends on the order in which it's included. Make it self contained and pull all needed definitions. Signed-off-by: Pavel Begunkov --- io_uring/alloc_cache.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/io_uring/alloc_cache.h b/io_uring/alloc_cache.h index cca96aff3277e..28436f413bd2c 100644 --- a/io_uring/alloc_cache.h +++ b/io_uring/alloc_cache.h @@ -1,6 +1,8 @@ #ifndef IOU_ALLOC_CACHE_H #define IOU_ALLOC_CACHE_H +#include + /* * Don't allow the cache to grow beyond this size. */ From patchwork Tue Jan 28 20:56:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953178 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F2401A841A for ; Tue, 28 Jan 2025 20:56:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097764; cv=none; b=P5N/pKQ0GxaiL1BG1D2Ug1gBfMwSb5KS6w5zqalUt3uOEpSAbEQHptFEz9jVBSTtx30jy4loMZTgwNO8DAzPFYqsVrZxxGDyvALza5ceDqgkUt/C3+OFVVA5TmkMQ7LDSX/ZnE19z5bdjOS7ttxUCNNBebNVMNlC4E0Xv00dwCw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097764; c=relaxed/simple; bh=AAb5+UaRzsQRURRie90KVCp1WXj1aurr+6hUeUCdpsU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SJ1hwyVKB2rLV8CA4giC4/YdSxIeCbcef5j3iKxZoitWdOSNVYzb5WlmrwSqLLKFzSF6qMQj4T3b25848MnaBSuFvSGCF/Yl9+UYrb9lpjcF03QHnIH7+9f9a10xLT6ivQg0HFpKhGdfaOtA6Fi9E4q1RtPdN2GlUJmhXTnYkTw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Eo8SMujv; arc=none smtp.client-ip=209.85.208.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Eo8SMujv" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5d0ac27b412so8101331a12.1 for ; Tue, 28 Jan 2025 12:56:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097761; x=1738702561; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KCcdkzXW6RkVCvu6uTk3n/nlNEQ2Ngvhu2rXJjQst0I=; b=Eo8SMujv4kklauuqBp09yfIbNMotLuWS/UwvvqjC2Qs+Wcn+XlFUL8xF6eDknaShf4 /TzZvihTpuwe7NApnvLFQNXjCtcgBaavECgAEGlRucPFHuFhLeL+Fma6PUOFGqdUwoec +MiB6MQ462pEJbv+5GW1xJJDODMZR+kdncuT8A5iXmWGwOyrbzUgJm/I3sj4g9kPMKlr qVOEMSQGK0fRrGqKrQ+9hY+z1TDlNmId1pFDbcU/tc6NCEZ0X5FtN6/I9JfaorkNpItH ecMHLaa4m6mjqHOvBjDz1o7fbhARujHVZ2LhJp9l4QSZFS7a6j49AYaMcwEswTki1oMB IUTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097761; x=1738702561; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KCcdkzXW6RkVCvu6uTk3n/nlNEQ2Ngvhu2rXJjQst0I=; b=ME/7jjGGooTO4p2TdNCtMCTvfwRN0vr8bC76meBu6KUGauwG204/mu2gnujfWYdY+C wZxyhDnNXeZRg3db2vL75a0iO1ClACDI+IHEGZZvI87X5wEzq6ziOv1TK8lAQm2S9xo2 dx8nrDPD/aL5gyrDdUlw1BvCfQspJ7q+DL3BlM3mMrQ50v5hU9E0tF86Fck0cUhMhvZD RY4kiHIf5fUaRj0VQFWfxctzYahVv3EGWoysJ/j4ekDHV5v0eoFXA3uzogXZORT5aXzU 1Roqjl9iiXxiObsi8fBwe8HE9prUt1j9EANyestUSfZRe4F6Tz/RYxGBuBX2NXbc8kM+ GRUQ== X-Gm-Message-State: AOJu0YxVRUSuj6jtLQ62KW5iuFGUBZcP+ozjUdZ5mA2FLE4gYmX9X7IX fR77bExQV7ARJmgLA1gzwLMgHKEzs4+1jF/3rKcj7gobvpnRXWX6gpqhWg== X-Gm-Gg: ASbGncvOv/xn8S8HKV+hRSNzcdMS8lImXeM01uweznZCNAD5T3d1VsM9HlXD0fOhlHy IMgAjpMvaRlYONy87R4WSCfpU5fZH5nJKPUrmJx0lSjRAWJB/IQzL3b6VOlOTK39FaRiieY9jEW E6sryxBLN99J+dTNI1TjYOrUn4TEmvWoaic/WTlMezdrxCPzkGXsvztIRPlh2u0if/GzXgxE0Nn +O4WaClyya/BDR9KsLzW38WqnQT3tBdetiPyQTvPMg4WO02YfTxKsIetdQFOcvv6wf+iwox5pAD T91Wlp6Kw+HLbHahmWGRpAE3WXL/ X-Google-Smtp-Source: AGHT+IEa+JBYjX9cLg31T+dr+XMFlBp1NNzDhs1Gb2+bd2LtROHyyvNEGAXe0HFHGvkuo6PclM2l8A== X-Received: by 2002:a05:6402:1ec1:b0:5d9:b84:a01f with SMTP id 4fb4d7f45d1cf-5dc5efc5dd9mr458050a12.18.1738097761195; Tue, 28 Jan 2025 12:56:01 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.55.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:56:00 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 2/8] io_uring: dont ifdef io_alloc_cache_kasan() Date: Tue, 28 Jan 2025 20:56:10 +0000 Message-ID: <35e53e83f6e16478dca0028a64a6cc905dc764d3.1738087204.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Use IS_ENABLED in io_alloc_cache_kasan() so at least it gets compile tested without KASAN. Signed-off-by: Pavel Begunkov --- io_uring/alloc_cache.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/io_uring/alloc_cache.h b/io_uring/alloc_cache.h index 28436f413bd2c..9eb374ad7490c 100644 --- a/io_uring/alloc_cache.h +++ b/io_uring/alloc_cache.h @@ -8,18 +8,14 @@ */ #define IO_ALLOC_CACHE_MAX 128 -#if defined(CONFIG_KASAN) -static inline void io_alloc_cache_kasan(struct iovec **iov, int *nr) -{ - kfree(*iov); - *iov = NULL; - *nr = 0; -} -#else static inline void io_alloc_cache_kasan(struct iovec **iov, int *nr) { + if (IS_ENABLED(CONFIG_KASAN)) { + kfree(*iov); + *iov = NULL; + *nr = 0; + } } -#endif static inline bool io_alloc_cache_put(struct io_alloc_cache *cache, void *entry) From patchwork Tue Jan 28 20:56:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953179 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B5691E0489 for ; Tue, 28 Jan 2025 20:56:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097766; cv=none; b=AkEQCOIigSDOg8WX3sZvZdl46Ik5/i6XwjEIF8xdhjx2ufY65olefSMWvTnrgQ95Fs0Cn8Nc6q34iwryyzHAb1sudQAWX5v7PiinVHRZO1P/w+1s5UcmEyb9jM2aScFirfX+L1ZuR2FcLjMtgVkBsVWM/wIP0jZm73TNHoQT/QI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097766; c=relaxed/simple; bh=EkZFy2j3c7rYz8uJcjG/8n8nC2Yf9BMkLFWNpiMaoO8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HTcmk9urJXoMDfkPTZ9d0vgvE5XkGaPYE/F+qYkjh8tgChIabBnb3I38E6ZClVjtTePlm59wLh0FGca4qTCfIx3gGMkU6NzaJpvshSiOjyvBxSmU3u+Ou4NBIOE6iL8PqaQLdQk7fgGXA8nsKAMMCgGMT31NZX2v7twNeKwkABc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=f3TBgF4H; arc=none smtp.client-ip=209.85.208.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="f3TBgF4H" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5d4e2aa7ea9so11964142a12.2 for ; Tue, 28 Jan 2025 12:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097762; x=1738702562; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5DFEKr32NfFxugbtWp3irPHP5jvpDgP3PgoSBsGH254=; b=f3TBgF4H4M/FrAO5jWTjtUV7YdVnX2vhk3PGU2uRpp68t1iBPecj39MgV/OukEAOje jykcB5n3pqTglKITPSJttQ6cFnCrIz7+T+STQywTzzhY93Mwuc5pNmIu5fDndoOpgu+C n88Uf+AjaZVeF8fSiwdb/FnSKByZY0Klsib+fJgQb+oJns2FzMrmXHVX5AGYQ7cu0+4T bQTSssinWQkf9TOBwfq9b21O3bgyAuHVxSJdDyb5VuHDT7HbxNEjPdXmMsu06MGJoDwV 9Q8TFFDvlumr1LbXTspykRKFenLtRadX1JMVouHoToVwopPbRSz0imybPmVdrF25NPMQ apTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097762; x=1738702562; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5DFEKr32NfFxugbtWp3irPHP5jvpDgP3PgoSBsGH254=; b=jVSINcAI/X/MaUxEEXj/MW3Urv7jm8lhaOyF4C7BD9gE7RvIRqGmZ7j2N7H08ES5Bx 5o9Om95vsBOYRy3KEv3tlS6hswGP19Xmqm96pzBuGeq/2FPS+SuqmC2s9/B8PN592BYE DDxnhYIG8SDq4f9FW3HTszeR3snUvuduFtkOu5zceRIQUUee4ISmA6B1BPH4KFpBiRzi MyiaZ+Q3DQyZmSktosXYmQ0tnhUOKgvq5MDo4MgrnmrMxNfdX/pRW8e9lBgKN/N+lNsQ biWIrIpZ1tkXM/rKogcLRXVFmWX8CPxtDHmZk/PDVY4wc6riyrjJAoUg9AqVS6yTZs7N xi5A== X-Gm-Message-State: AOJu0Yy71D1p074g6eIoux2UAMVE6zHPepFS9bkbrCgnVhByW2EjFPzQ tO4F4a6CWiyjtPWFTNNl/9W0hj+EROTDdIzHZXLPwAv23w++p6bXrO8rIQ== X-Gm-Gg: ASbGncvlhIJo8yQF+BSYXOd0hEnn9EidUL1RQ3zY5lv/M9D0xf9wm7E4oevER/Ml0/A 8w1PwyrGMQSgJ/WzVz93dnDyX6l4RYqoq0EBL/M94E3zmfX5iZwMTTfEM5zcUfwRpP8LK/B+3y4 otcyWzvJTpRm87RpR2oAWUr82ubal+gQJikkKLUntl/I/4I9shKckIR3jOXqwWU1cr3MCqxry1z pe/nDi3GmJMKYbrqnho9u7pTEemyhV/IuAd0/57LKNEt9dpeRsjlno72WI0k18zQE9gE9WoncBq /+B6BDO/KAnLoDDxK35ammO9t0Su7whe9C1K/ao= X-Google-Smtp-Source: AGHT+IG/hftF153ghHjKiKYXlzPpVJwkG0vW8O1xb+kn7QJvjwR1mkXriUu7a0OWF1OCVwXg6nAIQw== X-Received: by 2002:a05:6402:2683:b0:5cf:420a:9 with SMTP id 4fb4d7f45d1cf-5dc5efa8e53mr472857a12.5.1738097762209; Tue, 28 Jan 2025 12:56:02 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.56.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:56:01 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 3/8] io_uring: add alloc_cache.c Date: Tue, 28 Jan 2025 20:56:11 +0000 Message-ID: <06984c6cd58e703f7cfae5ab3067912f9f635a06.1738087204.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Avoid inlining all and everything from alloc_cache.h and move cold bits into a new file. Signed-off-by: Pavel Begunkov --- io_uring/Makefile | 2 +- io_uring/alloc_cache.c | 44 ++++++++++++++++++++++++++++++++++++++++++ io_uring/alloc_cache.h | 44 +++++++++--------------------------------- 3 files changed, 54 insertions(+), 36 deletions(-) create mode 100644 io_uring/alloc_cache.c diff --git a/io_uring/Makefile b/io_uring/Makefile index 53167bef37d77..d695b60dba4f0 100644 --- a/io_uring/Makefile +++ b/io_uring/Makefile @@ -13,7 +13,7 @@ obj-$(CONFIG_IO_URING) += io_uring.o opdef.o kbuf.o rsrc.o notif.o \ sync.o msg_ring.o advise.o openclose.o \ epoll.o statx.o timeout.o fdinfo.o \ cancel.o waitid.o register.o \ - truncate.o memmap.o + truncate.o memmap.o alloc_cache.o obj-$(CONFIG_IO_WQ) += io-wq.o obj-$(CONFIG_FUTEX) += futex.o obj-$(CONFIG_NET_RX_BUSY_POLL) += napi.o diff --git a/io_uring/alloc_cache.c b/io_uring/alloc_cache.c new file mode 100644 index 0000000000000..58423888b736e --- /dev/null +++ b/io_uring/alloc_cache.c @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include "alloc_cache.h" + +void io_alloc_cache_free(struct io_alloc_cache *cache, + void (*free)(const void *)) +{ + void *entry; + + if (!cache->entries) + return; + + while ((entry = io_alloc_cache_get(cache)) != NULL) + free(entry); + + kvfree(cache->entries); + cache->entries = NULL; +} + +/* returns false if the cache was initialized properly */ +bool io_alloc_cache_init(struct io_alloc_cache *cache, + unsigned max_nr, unsigned int size, + unsigned int init_bytes) +{ + cache->entries = kvmalloc_array(max_nr, sizeof(void *), GFP_KERNEL); + if (!cache->entries) + return true; + + cache->nr_cached = 0; + cache->max_cached = max_nr; + cache->elem_size = size; + cache->init_clear = init_bytes; + return false; +} + +void *io_cache_alloc_new(struct io_alloc_cache *cache, gfp_t gfp) +{ + void *obj; + + obj = kmalloc(cache->elem_size, gfp); + if (obj && cache->init_clear) + memset(obj, 0, cache->init_clear); + return obj; +} diff --git a/io_uring/alloc_cache.h b/io_uring/alloc_cache.h index 9eb374ad7490c..0dd17d8ba93a8 100644 --- a/io_uring/alloc_cache.h +++ b/io_uring/alloc_cache.h @@ -8,6 +8,14 @@ */ #define IO_ALLOC_CACHE_MAX 128 +void io_alloc_cache_free(struct io_alloc_cache *cache, + void (*free)(const void *)); +bool io_alloc_cache_init(struct io_alloc_cache *cache, + unsigned max_nr, unsigned int size, + unsigned int init_bytes); + +void *io_cache_alloc_new(struct io_alloc_cache *cache, gfp_t gfp); + static inline void io_alloc_cache_kasan(struct iovec **iov, int *nr) { if (IS_ENABLED(CONFIG_KASAN)) { @@ -57,41 +65,7 @@ static inline void *io_cache_alloc(struct io_alloc_cache *cache, gfp_t gfp) obj = io_alloc_cache_get(cache); if (obj) return obj; - - obj = kmalloc(cache->elem_size, gfp); - if (obj && cache->init_clear) - memset(obj, 0, cache->init_clear); - return obj; -} - -/* returns false if the cache was initialized properly */ -static inline bool io_alloc_cache_init(struct io_alloc_cache *cache, - unsigned max_nr, unsigned int size, - unsigned int init_bytes) -{ - cache->entries = kvmalloc_array(max_nr, sizeof(void *), GFP_KERNEL); - if (cache->entries) { - cache->nr_cached = 0; - cache->max_cached = max_nr; - cache->elem_size = size; - cache->init_clear = init_bytes; - return false; - } - return true; + return io_cache_alloc_new(cache, gfp); } -static inline void io_alloc_cache_free(struct io_alloc_cache *cache, - void (*free)(const void *)) -{ - void *entry; - - if (!cache->entries) - return; - - while ((entry = io_alloc_cache_get(cache)) != NULL) - free(entry); - - kvfree(cache->entries); - cache->entries = NULL; -} #endif From patchwork Tue Jan 28 20:56:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953180 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2234A1E0B86 for ; Tue, 28 Jan 2025 20:56:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097766; cv=none; b=N1gE2HcztELtX/ywEjLC1ymPlqsWAvHbfDd/7AmyeYVnOvBn5k+9uGEEIu0jlfBvxMmYIHOKyTzBqhildeSseK9wnkynCGDKyZrYEa9bTpvfGnheYJqQ/3m4HxB+gUbub5053echAuygvZGscAPVVH/XnMetwLre0dWLfXesQjc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097766; c=relaxed/simple; bh=lJMsX7fwcXCs3pGvHw0xLW1w/NHfT5TXSttUAoPniRg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d70F9LZK8sf5FF+C2y2EtFoRJvO498NnYcnAsmWDVl+8dzhFzVTOGOmbmNs1TgDqMwzhkJi6b7pxlNHcJcULLC13B6WPZrQg8c1Hrbqxzg0mmwiLTHcpJ1K1n83tQCmI3ZJv5ZzKE5TYtm5W4nLOlr8oBJiGtN61/9HRtz2fqoQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EAISXVAJ; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EAISXVAJ" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-5d3ecae02beso8361848a12.0 for ; Tue, 28 Jan 2025 12:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097763; x=1738702563; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Dwu43/+agNeXzNqAHNIvMyn7pi826l4I7z/JOZ0Hto0=; b=EAISXVAJvsDnEHgeYkvQF6Vx1mu1FkXc86U1tgPd+y82WUNlZtS5yEWfj/VtP3Miqg asCn2eHclGzQrZO60atdO538uSr60Wq6N5UKlBXdYElpjqn/t6IwzHLwaNtXiPFGgIrE eeHUkduBInlFJGEyJ2vH8ENKViJyPhXeW56W2C9uAdykigiakLKK3ptRbrdQyGdMT8lf VnS3TMx87TYCe0Ddnw84awYAF9AMFdGK4dW7/LGrxEFQKeCOZ5xbqNOUGX6xC59U7KUj mOe6/3kQfV7/dVmQ79h/aQrFYY8SdWiA5TTSDbYCFcHZZ8c0wD7rM7S/NX1EiFxB45yX 8wUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097763; x=1738702563; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Dwu43/+agNeXzNqAHNIvMyn7pi826l4I7z/JOZ0Hto0=; b=a2OOiJcX52HDAZGQFuRv35IygK1iZAjeN+0jaWE0jDtJxpTIp5DoC4oJcY8wvDhQlb 6+wLdQAuVrrWEVANCOJ7SdlR2Xlpec89I9j0lIvQyYdCzzYxNTnN03IPfLokOSkJ0w25 etoNOREjol7gu12cSzHIxjbOmP/+rcTsErPv6XS/XXRlOp45ff/1NN2bnPGblV2hcwW4 PHWzyCK/xI/3rfRbTZenaBf8uCErlAGQBawI2DSAcBiq4V+87x2lytpP3yVXVvTDltfS BaU/IM9plEhg34wyOvsi50aI5USWQoBxfD3JK8ekn3XrfKZSmbZ7+c0wbB6Et/I7/gjs L8yQ== X-Gm-Message-State: AOJu0YxRRdfDZbHwzH/umWZZ99J9933oV7tqN301IliBbOGIRVMRGJoZ uJC7xBVYPimsGx1zCFDFJbuQRrDgXfsPFyVUhrzG+LoZE/csgwNqs1syNQ== X-Gm-Gg: ASbGnctVEfAeuDr8WZPcI4i9X41PRQUa8Hd5qUF9vGBrx8uRFIm9eMqp9YyVdxlJwjv jTorpbtoQNPB2To4MfzoKWlPD4ztROsH0189TqPCMvlCuImAw88isPUWjBl2EeYej8MVyY86i43 kmo+fdMNao+uE9O1lrBAZhCtyYKWjoAJNRJiARFbyjizyjzIoq5ZyZUTbLJF5OxxctlgW7giYo0 f0YdK2XtCH9TAPlzMrn6+JmyTBf0zx/O5ipBSQnMT5I2wi3nkGMsksken14UDFFTyQlJ4HMn9L/ z4cfrqnW4JHeeUNPRcx2WahFHxOg X-Google-Smtp-Source: AGHT+IG2vZVotXpxXRQ0ragVBPE3DOXbSRewQs+70/rUAXXbP42SEA7GCsh9w90K3vDygKzL0ALVZw== X-Received: by 2002:a05:6402:358f:b0:5d2:729f:995f with SMTP id 4fb4d7f45d1cf-5dc5f01a8b1mr378580a12.29.1738097762903; Tue, 28 Jan 2025 12:56:02 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.56.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:56:02 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 4/8] io_uring/net: make io_net_vec_assign() return void Date: Tue, 28 Jan 2025 20:56:12 +0000 Message-ID: <7c1a2390c99e17d3ae4e8562063e572d3cdeb164.1738087204.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 io_net_vec_assign() can only return 0 and it doesn't make sense for it to fail, so make it return void. Signed-off-by: Pavel Begunkov --- io_uring/net.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index 41eef286f8b9a..e72205802055f 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -168,7 +168,7 @@ static struct io_async_msghdr *io_msg_alloc_async(struct io_kiocb *req) } /* assign new iovec to kmsg, if we need to */ -static int io_net_vec_assign(struct io_kiocb *req, struct io_async_msghdr *kmsg, +static void io_net_vec_assign(struct io_kiocb *req, struct io_async_msghdr *kmsg, struct iovec *iov) { if (iov) { @@ -178,7 +178,6 @@ static int io_net_vec_assign(struct io_kiocb *req, struct io_async_msghdr *kmsg, kfree(kmsg->free_iov); kmsg->free_iov = iov; } - return 0; } static inline void io_mshot_prep_retry(struct io_kiocb *req, @@ -240,7 +239,8 @@ static int io_compat_msg_copy_hdr(struct io_kiocb *req, if (unlikely(ret < 0)) return ret; - return io_net_vec_assign(req, iomsg, iov); + io_net_vec_assign(req, iomsg, iov); + return 0; } #endif @@ -299,7 +299,8 @@ static int io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *iomsg, if (unlikely(ret < 0)) return ret; - return io_net_vec_assign(req, iomsg, iov); + io_net_vec_assign(req, iomsg, iov); + return 0; } static int io_sendmsg_copy_hdr(struct io_kiocb *req, From patchwork Tue Jan 28 20:56:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953181 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 87DE91E3DF8 for ; Tue, 28 Jan 2025 20:56:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097768; cv=none; b=eQFYHalz4+Aw/7Kb82MDCPQXsTSvapMLHOal3/4E3X8jHJAm2lK8dQ/aXvFPgIzSZO8iP6XDrlq7HVNZbxk4CMFlMd/IpSqJ6c9ze4VvEKIL4IVSKWLdAObtyU4g/48msvZuAfIPTLBM1qxN3NkcMbn1aGZyJyXiOu9pqkZu6DE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097768; c=relaxed/simple; bh=G89uTDmjVTBwd3oqLRdDQbthTcZr9iA74w9GyUFjhKU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i0nmRGn7Murv2SxaYmxLDcdJIMDYzm6yPVBK9PKilEh47j06oBYxHTKXDhnwrGdUlFBVXLeX2ZjkpVGK+D3qo3ciSMVcPpv34tOuQ6OY6uddehkh6n6KJxulh/8I7LW1oKgxz7/DUUK8CUwEdNq1CaTGP8BBHWSV/uaKaDtt24g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GyCqBod9; arc=none smtp.client-ip=209.85.208.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GyCqBod9" Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-5d7e3f1fdafso11651966a12.0 for ; Tue, 28 Jan 2025 12:56:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097764; x=1738702564; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kHLMgshqmUgVFXmp0Q6jE7DQ2VG4whANWGboCX6tX0w=; b=GyCqBod9r449Tjxk00Y7PSyRjunei3IBJzdOyfWTRJLF2cieNKj9QBGOUg77uiL8Dx D7v8ALScny7s8EGwlU1DCLR0wS/qYvAbnfUXNjfiNa4up75phaHVt+p1wST7AiymuUkN 8Xu0fw43lZrFLhGJz23/6C48D3Olrm5JfMR7zRE7+dssAXqFiP0oJSjxWqiiWAXwEP31 BgaUx1fS/Wo/KG1boErLmebZLq/Kzlk9aZUo1L9L+Tudq659ge1jrCMqBWAA8IvGAWam V+d8TVI4/FqDuWT0FIujzsm5VYE/8jJ26monzfH9cPlt6n9rqyLaPJ3ErV0asrF+sKqj K8Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097764; x=1738702564; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kHLMgshqmUgVFXmp0Q6jE7DQ2VG4whANWGboCX6tX0w=; b=hDFvDA8grZ+0GuXWguU47uWgZPzxouzTSCTpMc+qAL418bmfZseR5FxDLtEAGDZP+n LCrh3TzfaLeRAroUXSghpbYjlmBmcfJtz7G6qX3wzZ+YkhDIOTT4KUBo1LnuDNeMhGYY GDEByvXXfF+k94GgqT6Pg3EYffrR7ikkohZqNv8El2B7Xn/FWXS0jJh+HQborIDU/d8y 3hWJZAwc08SyBb9WDgmJk+hmS383uta+xfrGDMf0TcN1Mgo6nBm4Nt/9xJQGUOVWmo1D HPEH/VpTIn3J0N9qQHDjSyEubCLb1++JP7/GU4SydLebd3uF++qF4o0qx6DMNB4Ud69H S4dA== X-Gm-Message-State: AOJu0YwVB6I3acRGgnTByFm181KN+imFfzQ0P0rnLG3qYvxF0qECMnms ZX0r8LGnFEojJf5JJOz8P2U7Lh3V4yF1n3paluTKY5fNPC7AVVpIRT+W0w== X-Gm-Gg: ASbGncu6Z6rQY0oWwD469kdQ1a1/rHH24rHuMvqIsZqeLBkd29Gwcd6k0x712MoxWsr PYvTz5zGELPO+4yP1Iuz27HXEk1WQtEH4AxxbqoH91HqBEyl9H4/r3qR46u/zRTFUMWOF9AzUzJ ZNGn9wyvMOKUeC2ePNYYqik2pxNiRVpGuR6BhQTNwkGM0AcCKd8JeVxSUmWdHmm8dOk7qfSFL8N hpWfS+vaELoM2f5gxwgoWAAnc5nDQGN3wwUnQtfKoJ9lchekFu191/GRGWQW2bddRcR/gitCBcl pJnN5+oTdx0zC1qEDcdUzrnxGkdV X-Google-Smtp-Source: AGHT+IHFxYwJh3WYQxn9406xWIFZV2ORPMusAuABXv77NzpiK95WrLIBbQnbV8YSDD1HRvr4KHHTnQ== X-Received: by 2002:a05:6402:1eca:b0:5d2:723c:a577 with SMTP id 4fb4d7f45d1cf-5dc5efc4eb5mr426071a12.14.1738097763851; Tue, 28 Jan 2025 12:56:03 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.56.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:56:03 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 5/8] io_uring/net: clean io_msg_copy_hdr() Date: Tue, 28 Jan 2025 20:56:13 +0000 Message-ID: <6a5d4f7a96b10e571d6128be010166b3aaf7afd5.1738087204.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Put msg->msg_iov into a local variable in io_msg_copy_hdr(), it reads better and clearly shows the used types. Signed-off-by: Pavel Begunkov --- io_uring/net.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index e72205802055f..dedf274fc049a 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -280,11 +280,12 @@ static int io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *iomsg, ret = -EINVAL; goto ua_end; } else { + struct iovec __user *uiov = msg->msg_iov; + /* we only need the length for provided buffers */ - if (!access_ok(&msg->msg_iov[0].iov_len, sizeof(__kernel_size_t))) + if (!access_ok(&uiov->iov_len, sizeof(uiov->iov_len))) goto ua_end; - unsafe_get_user(iov->iov_len, &msg->msg_iov[0].iov_len, - ua_end); + unsafe_get_user(iov->iov_len, &uiov->iov_len, ua_end); sr->len = iov->iov_len; } ret = 0; From patchwork Tue Jan 28 20:56:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953182 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C06641DE8A5 for ; Tue, 28 Jan 2025 20:56:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097769; cv=none; b=VZs4KHCILSLc4K/1fJfcLlb9lwKvcrS+jPUStjAAN+QG8T0rf+uPHhaKy7WCBv3yYXB2xScU6S6xvj1whpQ4HapGUW1wZ7IgBTW00h2ScBlgZTL0UcYKhz/vWulX/Wu93FNf0VIEZqbEEaz11j6q2WlabcoacPczto+dOhOAtB4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097769; c=relaxed/simple; bh=O0dnlT1QGcTU/CfLmAbFNQEFSpdY/ex5go7HT3c4cjE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DxaD2fIzFwxUMSBhsntjU846kZaOOVdj+zu+npL/kCot1baXsi4/sjoTcG3RvPXH34B+xWsHH+LPincFi3octBprXaWvsJZ6UHD+eojGXnghL2ZtFM+HUUNMY4NfziS7M87Q7KPjkQ+wdqyLwxPOus7H687ybLn6FRxTZ9qxPqs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jwDcvyQH; arc=none smtp.client-ip=209.85.208.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jwDcvyQH" Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-5d4e2aa7ea9so11964196a12.2 for ; Tue, 28 Jan 2025 12:56:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097765; x=1738702565; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=I3ttnJoPVlJrcZwExbZmxI1HDuVRLvx04RN+P1Nl5Mg=; b=jwDcvyQHXmjKpC+oUZ5ybHupnhYtm889UXwdj51tCcz5fxF0sphj0KjSm6YR1C5KsU VwNHQ1/iOI5unSUNPChC1urVohVN6+UPP6cD66CthQAPmVQn+egwus2mTtQ3YIO0TLuM 8504/H7MAIBfObbqXvEYg8Ry1vysSzTGlRzgSv6ZPqbaR6GlXoC45eWX5lMHA7cqjGKw zThDwh4G9akgx4KMO3H5RF4F+JMb9XEPTXXHslDrXVMcZD7eL+fuLp+4n19Yrk/SMe9C H2mSuliwP/4asKDmCl3cZCWTSFI+4fCYVPrv8X3mNchcwatTy5qPJNbnXHLnc/EoclW0 o23A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097765; x=1738702565; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=I3ttnJoPVlJrcZwExbZmxI1HDuVRLvx04RN+P1Nl5Mg=; b=OumQZVurMuOeBK9AWVsRENzJJZweIpvnAQ4Oz1IirjWvI5fgB6eX+EM5v0uldHjE/x WFCI+sMfpVnd3RQYh7UadYwg5X/pD99AE4xOvXz3QOYexTRzr4pl0W8klUVnXhjYJ4W8 X8eTxvuXbi76TLo73zd3IhV2/Ayhsrx0VNTxKU+KvtyluYHgxVwkaBDXdzTi6HnXh2Ew trNpnYzlXBc2dkidUfFqrGxn2uyhP1IRPxH+W0Bv2r2uRPUFEdPiwMpZ5QK974IbusED dtbb1SFgnrDbpNJPOOmhUJ9sg/Cw1hx1H0M5zQvEOebAK14oUYRcKzFgHagRLRAXIzzF U6VA== X-Gm-Message-State: AOJu0YzxLJbFVjvYNX58rfGb6kB5fIMH3Vqh2GxINPU8Bz1ZvCHmG9AB 0D7ZtVO6ZMA8AM/FoBwP+hQnBJjGEbCKoRBY536cvpLfAoFm4M/xJOL6ig== X-Gm-Gg: ASbGnctwkPrbolAzB1YNwWWPfX80R9vTgADyh326pCYy3Z/2ZEgXpbaJw1VfbhmBfVB 3bnIuLj3Nncdyy87J9Cel7kOrH1FWsIc3PewUP824rGK9xD9m3K29/GA7rZSjt9TSyatXzvPfEc R8aWu9kvNrBaW0JWccLjPFf4UFzzmYxLaWoM4tWDDYgI8jq0avSa8JVnz8HdLO+Od0Bt4xxXuua DxNEYrTJpauoy9b0PyAqKmbIuXp1ZH5mJ21tIwchzFI3KivYLSW42m39c/AgyFDPcwq3g2gJ0Yt JcR8SciIpzZuvviEnraU+g8o8awX X-Google-Smtp-Source: AGHT+IFs1zzJGOeJoSxouHEhzYPG8ZZlWByucFLgg/TwXToV5IjFPkEcjYgnAJ7VF5wgNxorriyJTg== X-Received: by 2002:a05:6402:50d3:b0:5dc:1239:1e40 with SMTP id 4fb4d7f45d1cf-5dc5f00851bmr317029a12.31.1738097765231; Tue, 28 Jan 2025 12:56:05 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.56.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:56:04 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 6/8] io_uring/net: extract io_send_select_buffer() Date: Tue, 28 Jan 2025 20:56:14 +0000 Message-ID: <26a769cdabd61af7f40c5d88a22469c5ad071796.1738087204.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Extract a helper out of io_send() for provided buffer selection to improve readability as it has grown to take too many lines. Signed-off-by: Pavel Begunkov --- io_uring/net.c | 87 +++++++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index dedf274fc049a..4d21f7bd2149e 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -566,6 +566,54 @@ int io_sendmsg(struct io_kiocb *req, unsigned int issue_flags) return IOU_OK; } +static int io_send_select_buffer(struct io_kiocb *req, unsigned int issue_flags, + struct io_async_msghdr *kmsg) +{ + struct io_sr_msg *sr = io_kiocb_to_cmd(req, struct io_sr_msg); + + int ret; + struct buf_sel_arg arg = { + .iovs = &kmsg->fast_iov, + .max_len = min_not_zero(sr->len, INT_MAX), + .nr_iovs = 1, + }; + + if (kmsg->free_iov) { + arg.nr_iovs = kmsg->free_iov_nr; + arg.iovs = kmsg->free_iov; + arg.mode = KBUF_MODE_FREE; + } + + if (!(sr->flags & IORING_RECVSEND_BUNDLE)) + arg.nr_iovs = 1; + else + arg.mode |= KBUF_MODE_EXPAND; + + ret = io_buffers_select(req, &arg, issue_flags); + if (unlikely(ret < 0)) + return ret; + + if (arg.iovs != &kmsg->fast_iov && arg.iovs != kmsg->free_iov) { + kmsg->free_iov_nr = ret; + kmsg->free_iov = arg.iovs; + req->flags |= REQ_F_NEED_CLEANUP; + } + sr->len = arg.out_len; + + if (ret == 1) { + sr->buf = arg.iovs[0].iov_base; + ret = import_ubuf(ITER_SOURCE, sr->buf, sr->len, + &kmsg->msg.msg_iter); + if (unlikely(ret)) + return ret; + } else { + iov_iter_init(&kmsg->msg.msg_iter, ITER_SOURCE, + arg.iovs, ret, arg.out_len); + } + + return 0; +} + int io_send(struct io_kiocb *req, unsigned int issue_flags) { struct io_sr_msg *sr = io_kiocb_to_cmd(req, struct io_sr_msg); @@ -589,44 +637,9 @@ int io_send(struct io_kiocb *req, unsigned int issue_flags) retry_bundle: if (io_do_buffer_select(req)) { - struct buf_sel_arg arg = { - .iovs = &kmsg->fast_iov, - .max_len = min_not_zero(sr->len, INT_MAX), - .nr_iovs = 1, - }; - - if (kmsg->free_iov) { - arg.nr_iovs = kmsg->free_iov_nr; - arg.iovs = kmsg->free_iov; - arg.mode = KBUF_MODE_FREE; - } - - if (!(sr->flags & IORING_RECVSEND_BUNDLE)) - arg.nr_iovs = 1; - else - arg.mode |= KBUF_MODE_EXPAND; - - ret = io_buffers_select(req, &arg, issue_flags); - if (unlikely(ret < 0)) + ret = io_send_select_buffer(req, issue_flags, kmsg); + if (ret) return ret; - - if (arg.iovs != &kmsg->fast_iov && arg.iovs != kmsg->free_iov) { - kmsg->free_iov_nr = ret; - kmsg->free_iov = arg.iovs; - req->flags |= REQ_F_NEED_CLEANUP; - } - sr->len = arg.out_len; - - if (ret == 1) { - sr->buf = arg.iovs[0].iov_base; - ret = import_ubuf(ITER_SOURCE, sr->buf, sr->len, - &kmsg->msg.msg_iter); - if (unlikely(ret)) - return ret; - } else { - iov_iter_init(&kmsg->msg.msg_iter, ITER_SOURCE, - arg.iovs, ret, arg.out_len); - } } /* From patchwork Tue Jan 28 20:56:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953183 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C550D1E3DF8 for ; Tue, 28 Jan 2025 20:56:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097770; cv=none; b=FJTTq0fYSFs2GDuERDY/O3nQbwTN5U6SNnHKClV7tR8X1ZLaldAmx1F3mikfl9Ejv4xViAO2EBvLUdFy6wPilnCFNmVFFds5PGtyzLbXIdPov0hOgjpYAt+33HLBxGUMFPlhTtRyWIWcgYebh3uZAW4k39fg4Ju+eTTCbNdb050= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097770; c=relaxed/simple; bh=0AwgUZFfoduAhGqQ+GRGD7wQFd69kXbD/I8JB7tN0sc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TAix+i7Sc1DcnFzEHsX2TpfNWIwibPuJpPUyA7o2VViob5NrElorccLGzIRq8y+N3Lcb8Z8RyeJdJxSU+ThS0eTmOxGRMc/jdPOBg6PgnCW2SBhTAbV+G6KlJiTtLFf+CBtPKfkAMfviCL5FrnFmEun9kAOS9VelhKszaZDp/YE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=c3Sdma8E; arc=none smtp.client-ip=209.85.208.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="c3Sdma8E" Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5d3ecae02beso8361902a12.0 for ; Tue, 28 Jan 2025 12:56:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097767; x=1738702567; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=61S3ynbxLsRmBQWo1PSXkO+mooFqEeYxcq4XV8RbRr0=; b=c3Sdma8EcoCHuCnQtyHgTDlXR6UZezmqia8LyoO6NAibf5Yk2gnYHjuf9weU5ymmJ7 61oZofAOYYOLo5pCT5DkD2tClXObuJTi3W8l25r9QhbfFAGSz5UmF1PCIaZbh2o2AaQK VtwVLsZjc2pFQ77cAf4cuJnkP3HMku4QLrbWQCJuaSwAUhLIxSoOqC4VKwgnxXyByDFT PM5q8+cBW1cSmHLv3gSXk2lK1yEualtGMqpBOqW+ecs+iBhjgtzmKMv6Ar107ehMD+2s aAys6uOPBf6rRJvaxjY0fTaVqE5hcU8OvW49uuMIGKQHHmjAqR5rE3AxZLb1qgN9ytzf BkiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097767; x=1738702567; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=61S3ynbxLsRmBQWo1PSXkO+mooFqEeYxcq4XV8RbRr0=; b=SXhzSWOZxeoZu55joKRzzdbFl+vMJwIFqengzBxPTWeKhYUzUkfSSeIcKnY6rZEeII x5bERLidXv1cPyKlk3BvVg0Pvetq+AAmwPRIdp4cFgj10gZYgH1SzBCL2YNd2Z5eTAzs /bLCs2iz+ZiixVW2+fbTNju24xAHRFzyS4yqGXRhiy2OFSvAd9LRyxAKmXyqNmRAsoeS Os2Q9RNP0pEQ7f/OfKxlY/ulnK0JyFWJtOuItFkZDRhv6YFfVpMMzJ/A94HDM8YAHrU8 NQGlf6E8Ui2S2/aeNq25rWTZz6neAsdYws9tyiI8iJu+EFik/KexiSMP2r4ZCQsrGXbt T/JA== X-Gm-Message-State: AOJu0YyjuaxC2iYvYFAmDVY8jiUhvcIw8NuT1SZGQZ9/7utVm4BAEY71 s7Z8+16/5aR//GASN/7pJ7Box5/v0afpqBNEy4whhiex5dVRrhTlvil4aA== X-Gm-Gg: ASbGncuKkHSTKnz7IqPdOvSHZUG2AXfCodEhzgo1XR4rE/N9qKqlH9Ij+bewl6gh2jY AnERAbVFPLxS+Z+MB4n98tttAHQJHS+MPYr2E+n8a7m9OWcj84HOOaxMRs9Ts8mecMU2/eTQMxX zbL17LpaxXXsjQQvUtY3OJM2eXo7Cvu/d/Yp3QhKTwt6Z+wBT+q8zPweBlRyhQysLZ3bAu7WYMb fOy05SuIls7fO5a8vnGjY5+O8Ak9Df8h3irJQbA3e9iTAgLMAY+rkrBs+6438Wqg2gD2CUnGMz+ cgCBhgaT0ecAbNKVRTy4yptoYVB4 X-Google-Smtp-Source: AGHT+IH+ZbK+e9QLJS/73So+tjE8aHRlJtdm8hA8PZzC2+o/RIHBLXhzajdsR4LVFkRXAQ6zOiqMSQ== X-Received: by 2002:a05:6402:2711:b0:5d3:bc1d:e56d with SMTP id 4fb4d7f45d1cf-5dc5f01e7famr322858a12.31.1738097766663; Tue, 28 Jan 2025 12:56:06 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.56.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:56:05 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 7/8] io_uring: remove !KASAN guards from cache free Date: Tue, 28 Jan 2025 20:56:15 +0000 Message-ID: X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Test setups (with KASAN) will avoid !KASAN sections, and so it's not testing paths that would be exercised otherwise. That's bad as to be sure that your code works you now have to specifically test both KASAN and !KASAN configs. Remove !CONFIG_KASAN guards from io_netmsg_cache_free() and io_rw_cache_free(). The free functions should always be getting valid entries, and even though for KASAN iovecs should already be cleared, that's better than skipping the chunks completely. Signed-off-by: Pavel Begunkov --- io_uring/net.c | 2 -- io_uring/rw.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index 4d21f7bd2149e..d89c39f853e39 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -1813,10 +1813,8 @@ void io_netmsg_cache_free(const void *entry) { struct io_async_msghdr *kmsg = (struct io_async_msghdr *) entry; -#if !defined(CONFIG_KASAN) if (kmsg->free_iov) io_netmsg_iovec_free(kmsg); -#endif kfree(kmsg); } #endif diff --git a/io_uring/rw.c b/io_uring/rw.c index 991ecfbea88e3..c496f195aae2b 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -1309,9 +1309,7 @@ void io_rw_cache_free(const void *entry) { struct io_async_rw *rw = (struct io_async_rw *) entry; -#if !defined(CONFIG_KASAN) if (rw->free_iovec) io_rw_iovec_free(rw); -#endif kfree(rw); } From patchwork Tue Jan 28 20:56:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Begunkov X-Patchwork-Id: 13953184 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B84A1A841A for ; Tue, 28 Jan 2025 20:56:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097772; cv=none; b=ks1qhZNVmNHuehGJEGl/eoOPsDMX/wy34peZIpR8r0yUXdKFAufqbOn1I13ttNXxEjMntziJ3Q+bA0Qdh21ST+ggutxQzSxepkiXqKHE7OEXefR5/o4lCye6Bh6GJ2ydcQYNjSAKMEcOp9gSt6tFsVGkVYjyqJAw2Ckn6wtdpXk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738097772; c=relaxed/simple; bh=FSQUUyxmIvTUpNUYonhod43TJ9bFkCPWt10RH2ijo2o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=du4hekiTUuS7JX8C9fG1eKEfLzGAA1OgYiN2Y2xBy5j8mE9b5PcD92dpjFyrpbuPuxnCM0QC9Ho8m9LKSeMw73ys57sMivmJLxIx8ueG+PF5NMUJgvzRBy/EuH6V8xenJB0odlgD4NUUWGBeT/IfQsnNyNluFmepbpA3WlImHcY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jGRrlObM; arc=none smtp.client-ip=209.85.208.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jGRrlObM" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-5dc0522475eso11937841a12.1 for ; Tue, 28 Jan 2025 12:56:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738097768; x=1738702568; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iGgwEnXvp7tSCOvb4Gb+rPCh98jlMRpMv9IgYw6dreg=; b=jGRrlObMkSLSLBqagx0ANnOaemXXA2aJez/S3bSj70SH6oXRjW7OqJesl9zQ+eil9i pLwcxUoK2HLSNrCN3CwWyDESAqwYJAxkFUQXWMO9vp31wc/Juy7hKGALMaHj3EXvbskv QbBGmP+SYMGdOSduV6X7yQjMAN8ASHpXD3r5VoGpU2ue5husfYTSkx5JdRIC6UmO+fOT syeT9tbK4q6p32yNZvKp2gB3W3xfhkJWILiO73nZZkBuxLVaQQbY4kb+bP1XqWTn00EH ligOYvo7k/I/qcQXJ4GOB8WUqUJkywNJ0X4or8IQt9K4THqb7wcrkKClKK3qMTWncTpg Y7xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738097768; x=1738702568; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iGgwEnXvp7tSCOvb4Gb+rPCh98jlMRpMv9IgYw6dreg=; b=k0L8s/mVDa3FqfE/ofNPSm0yydMO/IFdWcbhmQ4G2nI9q4GVTDiu1p4+4Usm3MlDWm 2DFkMoWutwI+pxjlXIx9iIT4DRnsD8wMlAhbpUR3lOEQefpztvz21cbesN8nR+XNBSBl VCuMxb7pOUQWdayj85xxYJaGgOZCmhJLRXHbsl3JJtBdksdNPE0EVlY+uI1kbdKPEYv7 gX7/sXQMMw/z4Zn1fG01EBoSSQI0eqL386IAglZkirOn3Msez3G88Ku6kc1WoorkgnzJ KT+asPcLni0WzRwKwlAbZsmy0GXJeKTw74PDTW9ycOiBsePH2Lh7kvSm7Y+do7GJDAeP En4g== X-Gm-Message-State: AOJu0YzzhCDz2CmTGmHsu/kWgBjunTsmiB2jZYUIikquPDOvHwdVBFFZ 5BUYaTo7WVPHd6iNCCzDusHlt0jiRiaLgd3dZFC+uVhBRc0h6rmNiAsAoA== X-Gm-Gg: ASbGncs9Q0tJOJMGca8wU0zlB31Ua+5vR2JjuFhrJxaqNrgwnYad97waOdMov9in1x3 U2axZRZNT6y+Ykc9EtM1WceEGHLpwNwulXOpaV92DzO1hQ4hhflOtRVAgdQXFPlddkL2vHhgqXV GjjHeH+aNY8RExqW8LKvzIx85pMPw3APxon8uB6f1I3+zc9YAZz60UgjozV7s5R91BFmVN0Vlj7 wm8sQmHbsZQVNv//+hXDDH2cg7vkIHUrUqhAoPA+Kjt1CyxNLxy+mTWnYsnIEv7lwT4Jb7QWND1 qp96I1Ks5F4Boq0OF1wmxTYR4Hzb X-Google-Smtp-Source: AGHT+IEaJgGHifGNITQK0+bBnVhDq4TcVjC7Ecrdz67a2fWnKhLjpIA0Pk5lWsrjVZiIh5QqnN4n6Q== X-Received: by 2002:a05:6402:4406:b0:5db:f317:98d7 with SMTP id 4fb4d7f45d1cf-5dc5efbdd51mr481720a12.6.1738097767589; Tue, 28 Jan 2025 12:56:07 -0800 (PST) Received: from 127.0.0.1localhost ([148.252.145.92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18619351sm7736949a12.5.2025.01.28.12.56.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 12:56:07 -0800 (PST) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com Subject: [PATCH 8/8] io_uring/rw: simplify io_rw_recycle() Date: Tue, 28 Jan 2025 20:56:16 +0000 Message-ID: <14f83b112eb40078bea18e15d77a4f99fc981a44.1738087204.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Instead of freeing iovecs in case of IO_URING_F_UNLOCKED in io_rw_recycle(), leave it be and rely on the core io_uring code to call io_readv_writev_cleanup() later. This way the iovec will get recycled and we can clean up io_rw_recycle() and kill io_rw_iovec_free(). Signed-off-by: Pavel Begunkov --- io_uring/rw.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/io_uring/rw.c b/io_uring/rw.c index c496f195aae2b..7aa1e4c9f64a3 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -146,23 +146,13 @@ static inline int io_import_iovec(int rw, struct io_kiocb *req, return 0; } -static void io_rw_iovec_free(struct io_async_rw *rw) -{ - if (rw->free_iovec) { - kfree(rw->free_iovec); - rw->free_iov_nr = 0; - rw->free_iovec = NULL; - } -} - static void io_rw_recycle(struct io_kiocb *req, unsigned int issue_flags) { struct io_async_rw *rw = req->async_data; - if (unlikely(issue_flags & IO_URING_F_UNLOCKED)) { - io_rw_iovec_free(rw); + if (unlikely(issue_flags & IO_URING_F_UNLOCKED)) return; - } + io_alloc_cache_kasan(&rw->free_iovec, &rw->free_iov_nr); if (io_alloc_cache_put(&req->ctx->rw_cache, rw)) { req->async_data = NULL; @@ -1310,6 +1300,6 @@ void io_rw_cache_free(const void *entry) struct io_async_rw *rw = (struct io_async_rw *) entry; if (rw->free_iovec) - io_rw_iovec_free(rw); + kfree(rw->free_iovec); kfree(rw); }