Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp431523ybl; Fri, 31 Jan 2020 01:27:42 -0800 (PST) X-Google-Smtp-Source: APXvYqxVLAI4t8GKvW4Ypb66i/6IbJLmzpndBpWOlD5SP1yKa5KaBs+9/lf+izCLdz2e6i8Bid9a X-Received: by 2002:a9d:470:: with SMTP id 103mr6956243otc.217.1580462862683; Fri, 31 Jan 2020 01:27:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580462862; cv=none; d=google.com; s=arc-20160816; b=IGWpPX1EwlFj1L0/A0QRZ0xxl6GxapfWddGv5cwmk8yfplgZHJPXHsIHPHeNKK4CG4 H/N2Aws/hbx15COEgnRnGsYAyBj3nTHo1PbrmRa26wtB1GyY3dmwXPp0gIDY7Pml/bIp GkyNDKumiZnd2JOGiuTR9zKZHpf/JamsB9WqzRpvP9ltui5p75PxDZ15vnBrUjNU3IXN mY1FkQAjgPt+wyHcvXfjezxTC0FuUHpyCo0DyojZKfiE+RWYdyrVstjS+R/LDZ9NSCBr RgpUuAsb3p0GUPZEzjljADil6X+6avw5j+fQChVvQxGIU+zbW81kFvc9qJfpK5cBqDm4 u6yQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+Kno0Ufwl1kAKmD9m5umt2SU5mWhcoh+53Gn8TLVtdo=; b=lXqEW1+hWgPI98gQYFInySwWL+i1d11k2X9XuH3kSbhiAHUf0E5M0lP2WdyMrxQQca xBd7YGjk+EBOy1tBoxYTL8QmUvD+NwuhbOP1/VK1IudApVAM6eDIHchrVLyQL6NVvdc+ 6WDgdznOZv2gdJG9YQMcqs62YVRkRG76q0d945iAlgxqtW23dOEmFc5hCpJpsbIPvyi1 pPpC5sZ91/iy/HZgVNaHMWkWK66BwF/KPcQGoH0WGnroLty4yapSJ3OxFVc41lFynl5q fHm5CTzHP3FLWp51eKyRMHjD+Ko86h8EdGmpk4UwQqqOHA+200qOgtqjmYhjawu2FBXj myuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=evcl4rc0; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d22si4312324oti.316.2020.01.31.01.27.30; Fri, 31 Jan 2020 01:27:42 -0800 (PST) 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=@linaro.org header.s=google header.b=evcl4rc0; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728285AbgAaJZB (ORCPT + 99 others); Fri, 31 Jan 2020 04:25:01 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:42565 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728198AbgAaJY7 (ORCPT ); Fri, 31 Jan 2020 04:24:59 -0500 Received: by mail-wr1-f66.google.com with SMTP id k11so7721140wrd.9 for ; Fri, 31 Jan 2020 01:24:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+Kno0Ufwl1kAKmD9m5umt2SU5mWhcoh+53Gn8TLVtdo=; b=evcl4rc0NAC7KoG7W+hHO+yYLgoIWhsULe3VHo8ZfCPzYl32U5h2vCJyYiJErq0zZi QwpxFwr37Q4gwnpYI5GlKMw5gDoK5/OpuBsaSWew36bydz4zJ46ur/THHH6yFtl8ukK0 eelQXn/EOVQPRzSGpkUh3LtUhmue8RWsfMkYrJGivUmsVaRQR/6Axd3OvjTZg503Ff4a +m7rFqdSk6EWppY1EUmL+dsI9TBttxIRgOd2aKpp92TGwK/LYC0EKLjZQu4LWqmytuJm y7EsLlLfcMqUC4oFai2Ds+HZ53A+MOA7b34gEgg2Mhh7woMRKPhUSAao3wfBtSdCfUxp Qd3Q== 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:mime-version:content-transfer-encoding; bh=+Kno0Ufwl1kAKmD9m5umt2SU5mWhcoh+53Gn8TLVtdo=; b=tVdAfHj5EGKfXut2TwtTfSDTNgoTib2X4HgD/xdXEo86ApXg7yDFJNYVi5zxTObzTn M2goNss6bFSdbDPC3nc5osAMDLIUPA3I/quJqfd2cFlqX/5Vew0puGM7Y9Up4cAcma10 ba8Vn4x0ccfuekleoXV+a0ekHY5uBEwjs4m0CuQgMCBlvMCBsEUwqbw9/jAD4NnuCuNc BB/aZ7BIAWE4Ifkt6BSuWsPI5tkKMeMP2ZE6t8zyTK34u94LP5JUFFc7huxNJ6P7Ribc mNdxzOYmnqo0uu75vpqzuPq+1IbJ7NAuzPvS350fncY353sMYyPl2FiJTHzRKLKw9gv0 ra1g== X-Gm-Message-State: APjAAAVntDPrnags6iXHAahtfTuFyxfCSmhTsyXIVaotjlez9L+mAQa6 /2e9OTfjir+WqHDtpHFcAnWPew== X-Received: by 2002:adf:cd04:: with SMTP id w4mr11638814wrm.219.1580462698078; Fri, 31 Jan 2020 01:24:58 -0800 (PST) Received: from localhost.localdomain (88-147-73-186.dyn.eolo.it. [88.147.73.186]) by smtp.gmail.com with ESMTPSA id 16sm10144364wmi.0.2020.01.31.01.24.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 31 Jan 2020 01:24:57 -0800 (PST) From: Paolo Valente To: Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, bfq-iosched@googlegroups.com, oleksandr@natalenko.name, patdung100@gmail.com, cevich@redhat.com, Paolo Valente Subject: [PATCH BUGFIX 2/6] block, bfq: do not insert oom queue into position tree Date: Fri, 31 Jan 2020 10:24:05 +0100 Message-Id: <20200131092409.10867-3-paolo.valente@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200131092409.10867-1-paolo.valente@linaro.org> References: <20200131092409.10867-1-paolo.valente@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org BFQ maintains an ordered list, implemented with an RB tree, of head-request positions of non-empty bfq_queues. This position tree, inherited from CFQ, is used to find bfq_queues that contain I/O close to each other. BFQ merges these bfq_queues into a single shared queue, if this boosts throughput on the device at hand. There is however a special-purpose bfq_queue that does not participate in queue merging, the oom bfq_queue. Yet, also this bfq_queue could be wrongly added to the position tree. So bfqq_find_close() could return the oom bfq_queue, which is a source of further troubles in an out-of-memory situation. This commit prevents the oom bfq_queue from being inserted into the position tree. Tested-by: Patrick Dung Signed-off-by: Paolo Valente --- block/bfq-iosched.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index 55d4328e7c12..15dfb0844644 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -613,6 +613,10 @@ bfq_pos_tree_add_move(struct bfq_data *bfqd, struct bfq_queue *bfqq) bfqq->pos_root = NULL; } + /* oom_bfqq does not participate in queue merging */ + if (bfqq == &bfqd->oom_bfqq) + return; + /* * bfqq cannot be merged any longer (see comments in * bfq_setup_cooperator): no point in adding bfqq into the -- 2.20.1