Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp3819596ybi; Fri, 5 Jul 2019 14:50:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqyCq/313m9ODyhLzC3+TP11e9315YEoM6LEL7ukov/pOyEcTppv18m3UCl2P3sP8MJ+dDr5 X-Received: by 2002:a63:500e:: with SMTP id e14mr7805439pgb.11.1562363415751; Fri, 05 Jul 2019 14:50:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562363415; cv=none; d=google.com; s=arc-20160816; b=HRvwkFgu+dzySzk0oWNq/obbZIdZbGCu4m/edW8pTQYhxO2LaEz31J+6XYmMh+dJtp OcPqqqY4fIwyiZiELHvZFribxsIGBNIbN1M+3rSooUlR4uwv0pPmMvFE+754TlU3lsdE FNr052QMCDLNHLAJc+W6nq8eE+sSyr16B3X8QUGHOvZnfYKmpr4vvKHti3dF4kqGOh0S 7lsFm92lxk829vEu4lOytzn60xU0AAfm3Of/dSSRJGofcgVLGNIYpRqWljxsB0HhTbq+ vvLY6ZIWgZNV/auoqN/431H3gbYdpDwvIkiRDNe9PGCansagf4RjO23c891e52Xco50F uMcw== 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:cc:to:subject:dkim-signature; bh=/7sZUFxUANgrKwZaqSwAspZ8SITW9fKQroiR42hBGA4=; b=K++60ta0F0yKEV694027G3tC2pc3PVQJLaXwcbnv9pt9TGvBprr3sDm+W4OGV2s95V cORzAoqlWgzjDAr5TS/uLqP0iorpH/6aJzXSQjYmBMo/TOGk70rg9GmY2GwZchUrZ5GD R9DQCJJk6qDAh1/RLgL1TCyuZwbv3Ui+u7cDEXbJYR9jQnvRqG2VBgYczaS2FL5fX7Qj iWLSV6d2N1jTWlyS1XE9UN+02Rtw9VXSSSBKDi7OAywdVFiNipKUnroWfDoGgr3v8r6G 2c5Nvk0M6HI3OkIaDtF/3c3/QYaW6TGl7/41LReUqZr1wJ8QcWuRG67k95bmzsThq2T2 +mPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=AVLZNY7H; 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 az12si6477437plb.5.2019.07.05.14.50.00; Fri, 05 Jul 2019 14:50:15 -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=AVLZNY7H; 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 S1728188AbfGEVOu (ORCPT + 99 others); Fri, 5 Jul 2019 17:14:50 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:38402 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726061AbfGEVOu (ORCPT ); Fri, 5 Jul 2019 17:14:50 -0400 Received: by mail-pg1-f193.google.com with SMTP id z75so4786089pgz.5 for ; Fri, 05 Jul 2019 14:14:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=/7sZUFxUANgrKwZaqSwAspZ8SITW9fKQroiR42hBGA4=; b=AVLZNY7HvgtTqG8qSJ8rrlHa6oPWCJbGkOo2mbSBAGR2f037N3nHVrdjVzuX1S3EjU ZQ0sZZzZiuI0eTwfKkwAu/jq5b9Dkt8JOEY7zZO4mw56goXGRJuw326D4ul2HF9s5lV8 dMGcw+enhA0P7CfZo4PmKHtSDbz2gwMH3eiuKQMh55jEFwBAHg58IfM2LqDIx/w4F17T wrXqlFBgLUc41rP45OXQDJ/RvQe2NsZD4qI32c2Z8j9bdJxpp3noP2NhIdCPARd9XZiA 4sRaNU9lQ3TOZxB6YYQLXxGY73v25TbRHPk20KaJKGnn/4sVKjKUGctf1l1G94rdkjBv kBiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=/7sZUFxUANgrKwZaqSwAspZ8SITW9fKQroiR42hBGA4=; b=gNExdGjeBNWrlb5n1AUDhka9zJYtfgadXYeMmrYODzcqaE4FRlIhZ0xVPjJcrmv9rA lmOVy9dbaiqoFvekOw2BsDjElyF22dS1M8hUpblmiEAGGvL7v18OGif6e/SjlIOjmJhC n3FH3IdX1Mdr4+M2q5kQ/iQJOzRRfrxN383zI31IoJX+GbjaUxXCN6r/cUQdda1NtZq6 t+o1gQ2YzQQo0L6ylXvE37HNVkeVAtO2gw4rwopsh5h1lGRR/c6LR3lGsWedIX8vlcLy Qk5u1wmqwO1A2PDhGENMBUDL/2WjL43Fx8xB8sxoSpWRTp6yHJKgp29BkZtyBzIglB40 fQ/A== X-Gm-Message-State: APjAAAVQz9QWZL5ulz4sdaW5Nk+WPvMhckSRqm3PsRoLMJm6Hy3F4VX/ x3UT0GQc88471FNIfl7BnToXOetZrdBpmw== X-Received: by 2002:a17:90a:c481:: with SMTP id j1mr7869857pjt.96.1562361288894; Fri, 05 Jul 2019 14:14:48 -0700 (PDT) Received: from [192.168.1.121] (66.29.164.166.static.utbb.net. [66.29.164.166]) by smtp.gmail.com with ESMTPSA id 27sm8845789pgt.6.2019.07.05.14.14.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 05 Jul 2019 14:14:48 -0700 (PDT) Subject: Re: [PATCH v2] blk-iolatency: fix STS_AGAIN handling To: Dennis Zhou , Josef Bacik Cc: kernel-team@fb.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org References: <20190705210909.82263-1-dennis@kernel.org> From: Jens Axboe Message-ID: <084ad6be-7bef-4cf4-eefc-41359a880f01@kernel.dk> Date: Fri, 5 Jul 2019 15:14:44 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <20190705210909.82263-1-dennis@kernel.org> 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 7/5/19 3:09 PM, Dennis Zhou wrote: > The iolatency controller is based on rq_qos. It increments on > rq_qos_throttle() and decrements on either rq_qos_cleanup() or > rq_qos_done_bio(). a3fb01ba5af0 fixes the double accounting issue where > blk_mq_make_request() may call both rq_qos_cleanup() and > rq_qos_done_bio() on REQ_NO_WAIT. So checking STS_AGAIN prevents the > double decrement. > > The above works upstream as the only way we can get STS_AGAIN is from > blk_mq_get_request() failing. The STS_AGAIN handling isn't a real > problem as bio_endio() skipping only happens on reserved tag allocation > failures which can only be caused by driver bugs and already triggers > WARN. > > However, the fix creates a not so great dependency on how STS_AGAIN can > be propagated. Internally, we (Facebook) carry a patch that kills read > ahead if a cgroup is io congested or a fatal signal is pending. This > combined with chained bios progagate their bi_status to the parent is > not already set can can cause the parent bio to not clean up properly > even though it was successful. This consequently leaks the inflight > counter and can hang all IOs under that blkg. > > To nip the adverse interaction early, this removes the rq_qos_cleanup() > callback in iolatency in favor of cleaning up always on the > rq_qos_done_bio() path. Looks good, applied for 5.3. Thanks Dennis. -- Jens Axboe