Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2739792ybb; Sun, 5 Apr 2020 15:30:47 -0700 (PDT) X-Google-Smtp-Source: APiQypINn1HQnjJe4cYISoFbo2ZDuM84CxbmwSM9BgwBihXINobksVxTJGoGGHd0Z6LldR+7AiOX X-Received: by 2002:aca:c390:: with SMTP id t138mr10515750oif.117.1586125846918; Sun, 05 Apr 2020 15:30:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586125846; cv=none; d=google.com; s=arc-20160816; b=0LSfg0AgeIDxs2MbN4v7vRwvZzhnJXshM1UJ+g+2FU6XDdYl7BJifLII/TjA+uJM1g 0hVHPYm1ljof+ToWxwKl0RzIbxwHwoqA505fpqKlxhvRhA4ubUuKwFGYv9S3oKdMS0bm xNjs4soKN4pETdSAcFzX8lDBgTSAuLQHwcMGxH1Rx+Ta+Zkv6wdf1a1ue+L2hXDkOlaP Icsbb0mLUQv6Knq4cE+VgITMuWq599Oowd2VDsw/6G10VSOk2TOzW9FsoGngWS1ha4rB Zy3yK5ojUJ/pqSHnNPwa1iP4OQjgUtwtGEJhQ7QrIS/0tOzE69+5gj4dlm7xezzpQM60 UBsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:dkim-signature; bh=cFxnzicbTNriCHPsByY/bK8OrcBXIbAjDImLG9uKDHI=; b=sU0M/CSgOO4yQK2b/C96bwv0bKTk4xWx5u5atnVvZf7tXtb2+qeHsU5VEks46TUvXC frj3plwCXC/bpL4Gw8B6Tx/gmNNzxNUB3q2ode/6yRk9I0rYEGBkod0+olYBs6alL7ZO zsTh0xuAilz5+Oq5zFaNXvtzW486F5IoWuffnKo8nR/EowWTo/O5bU4H/Qf2O4awMcyw AU36ZRUyRqBwSTMi5fd1D1wk8cp+Jrk1AJwziHHNeK7rjCg2BswtUwERAJZFgZFWvdmD rFIbH19IpR3iJMl0pPH1JoxFlqU8PXpsOPij5q4HCohVmBxBaa/EcaM53J4O/dQaR+SF OBKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=0pe+lryb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u12si4535759otg.7.2020.04.05.15.30.01; Sun, 05 Apr 2020 15:30:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=0pe+lryb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727846AbgDEWZ2 (ORCPT + 99 others); Sun, 5 Apr 2020 18:25:28 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:46660 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727254AbgDEWZ2 (ORCPT ); Sun, 5 Apr 2020 18:25:28 -0400 Received: by mail-pf1-f193.google.com with SMTP id q3so6580068pff.13 for ; Sun, 05 Apr 2020 15:25:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=cFxnzicbTNriCHPsByY/bK8OrcBXIbAjDImLG9uKDHI=; b=0pe+lrybOo2YgT9yCQps0gWWq3ki7vxmyt08By4lugK5SHWVsNdFFpSeiHvBjxbSt3 HSL+dRjJa91sswyq/tiH9GdEtbmss6uF+kvAcKXfDqBxWD3alZ9h304v5mACEJX76OWM FioQ0Q7ZsUSQyqlwXeHh7N8zNNwik3Dfb+c5jvtbPeYhrtEMDQe1voy4a089bP7rR6tc 1LVWBhRsN/xWuz3RBv50y12nzdzzvsoKZ4cVgbZkgbZNMCUsXBabQINt+fmnBWLZ8XGy WwySddGN41jMoooef/49pREiEI9jtz1Ehw2KOgcRRt7A2IoGPFaxRokASj0Yd36FzPEN YVsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=cFxnzicbTNriCHPsByY/bK8OrcBXIbAjDImLG9uKDHI=; b=RsDOLE7sFwYf7hK+rBTKk3k61V8TXjdXrG8NaT+SeHotUZIdtm2sgHecWcAw+jSDyq ereU4opPiR6AdvLApjkEP2tCV62o+pens5LBHQYa5G1H7J0qKy3bMlwvvtp3TsEwZx/u 6t1vYhO8nZ7aXdy3zu9tQ1sqrgihTr29b1B0fMUAhpMcg2RTGN9JSdL4AU2QuuQ9+Txc HQu15KDhpCAf6mGAAVrlKUi7FDtgDe79ftwNJJVhKUJnmo9Z7E9fwP2tGge8fnBCo93L GXDZ8rhmr8VaPj1lMTiXXr/gLVeFK/lQheV+t7Bx70aOWPKD4upPQJYPACDxzxm2Zg6j N5wA== X-Gm-Message-State: AGi0PuaOCVVF/xk46lS6K6ukRGKoblDwDdiqVLpilwsaBR0va2BR2O2Q UDlez2Il0eG+gMoM/h10bR1lWei1+2rUzA== X-Received: by 2002:aa7:9d0a:: with SMTP id k10mr19320976pfp.266.1586125525864; Sun, 05 Apr 2020 15:25:25 -0700 (PDT) Received: from ?IPv6:2605:e000:100e:8c61:5d19:ea24:5c10:884d? ([2605:e000:100e:8c61:5d19:ea24:5c10:884d]) by smtp.gmail.com with ESMTPSA id s3sm8253831pjd.21.2020.04.05.15.25.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Apr 2020 15:25:25 -0700 (PDT) Subject: Re: [PATCH] io_uring: fix ctx refcounting in io_submit_sqes() To: Pavel Begunkov , io-uring@vger.kernel.org, linux-kernel@vger.kernel.org References: <8b53ce4539784423b493fdbfae9bd4c720b24d2a.1586120916.git.asml.silence@gmail.com> <331eb009-a8c3-98c7-4cec-d91a821f22be@gmail.com> From: Jens Axboe Message-ID: <3d0b7db2-59ae-b33c-694e-87d3d659c25e@kernel.dk> Date: Sun, 5 Apr 2020 15:25:24 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <331eb009-a8c3-98c7-4cec-d91a821f22be@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/5/20 3:13 PM, Pavel Begunkov wrote: > On 06/04/2020 00:08, Pavel Begunkov wrote: >> If io_get_req() fails, it drops a ref. Then, awhile keeping @submitted >> unmodified, io_submit_sqes() breaks the loop and puts @nr - @submitted >> refs. For each submitted req a ref is dropped in io_put_req() and >> friends. So, for @nr taken refs there will be >> (@nr - @submitted + @submitted + 1) dropped. >> >> Remove ctx refcounting from io_get_req(), that at the same time makes >> it clearer. > > It seems, nobody hit OOM, so it stayed unnoticed. And neither did I. > It could be a good idea to do fault-injection for testing. Actually think we just hit this, was testing with memcached (as per fixes posted recently), and a bug on the user side ended up with 196G of slab and running into OOM off request allocation. But yes, would be nice to have specific fault injection testing to avoid finding these in prod testing. -- Jens Axboe