From patchwork Wed Dec 20 11:38:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Valente X-Patchwork-Id: 122460 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp5452116qgn; Wed, 20 Dec 2017 03:39:34 -0800 (PST) X-Google-Smtp-Source: ACJfBos+35I9NZwuocqczkBr6Tpj9KIxlGANzxJ50MBuekkMUER/0hTfIAUmjCnfIGqCCU+71i/0 X-Received: by 10.101.64.130 with SMTP id t2mr5868333pgp.299.1513769973932; Wed, 20 Dec 2017 03:39:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513769973; cv=none; d=google.com; s=arc-20160816; b=lNB5Jrs6osywuX0Ktqd6jINQmrVHoT0VlpP8ydxFgCWhQn97lLoqXkhNAMPkTVo58d ZmmUhOjjhMQvkp8vOtkAsmDUALj8F5QU0g5wQa0zD+Qi8CzFX18Zw1QvE4MqVzZx78LB 8jfYSbHD89DfhosT93dyJsjW3HB48Z2ox4er1EfX2IJWTCNxkMvncUmUo76B7XMogUtI TKK/K929cbXUC8s706QUMHrKSQT7PYP8LNZRg0NAxiU4x9ym6JMTbv5vl39CDzWBUJ0K OJK/la9qx8VyT04UX4kUnpaDaq21bHSBV7c3hiAANAbMFvpErWousivcT7AFyXCNp1cg 856g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=ErN9MVCc7+5ZbfMB2t6kzsPh1Xw65tj7g1Knz3fHQ7s=; b=uGBmuOkN0Gn461igYUpzZbyM5Lev/4i1+fBhUu5hP1LJNgPiof9BNoLFFmR4YEfz+6 y5pt3ibhCbis6JaTExvREVfsRvCqP3aRTpPd6lu+FVN+5c/zd9OXijY4g2x9lzJvq55A V/RM8XGKwH9oGdyWzq6cuhHcw1b/e2wugufCXjUXfV614jsqBTKNkS8K2yPFYpft2EiK 2VrPLt+HyFqSOzF2tfHjEm7g0WG62bSYyGWYUhkYEo/IL5x2622aKY0gu8/RrrlhCRwT NWMxPx2knTo1ckKkJORlcrFNxFPrTRxeFcFGEub7Z84PDNc53TiSeL+OPO71XadqG4s5 IsHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=EgqmUUCq; 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 bd12si12744551plb.694.2017.12.20.03.39.33; Wed, 20 Dec 2017 03:39:33 -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=EgqmUUCq; 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 S1755278AbdLTLja (ORCPT + 28 others); Wed, 20 Dec 2017 06:39:30 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:39355 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755169AbdLTLjV (ORCPT ); Wed, 20 Dec 2017 06:39:21 -0500 Received: by mail-wm0-f67.google.com with SMTP id i11so9120844wmf.4 for ; Wed, 20 Dec 2017 03:39:21 -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; bh=ErN9MVCc7+5ZbfMB2t6kzsPh1Xw65tj7g1Knz3fHQ7s=; b=EgqmUUCqXYWHM4xaOd4rYDmYlQoxQKzjPIEeDQ03ARrLi2BycMa2vI9XD69bIxyBQh gURIyfc2bL/uhDx+DBeV8bScduFpPki0tVkjkppH6uEGARiepYPKg8zzEt7gzquY5efG +eWPgrEAoWcA5GQRJu81fn2IQo2BwZ9GWSLLA= 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=ErN9MVCc7+5ZbfMB2t6kzsPh1Xw65tj7g1Knz3fHQ7s=; b=rhKz/gj//Wsty1LDqkwLN+3jb+3Vk+ZnIOEXzsoII0ogrgcT1lgMNiIZ4fLXQzUAUq HujA+zQoGbV5mDvNuva6/u3Ae83kCzWsdP8PCm03oSYwFXdwP5dfnwjV7YRwGxvEI2l4 mLCBZb3fFF9PppLeZ/HT3cUBI+ZOUZwZM0Ryugr/Hoo0DM7TMK5u4/hnRtmusQTqnE3M KkPRMlsR465EmxrsL/pvuNg8X+LLJw6OMhrMVUGFxm5ZeMKM2FKDHeVviz04/J9wnWo3 qLN51NWhGYuetCIqhXZM8Ylea8DFonM/fykdgYxukNiVfTbFJLzsL3C3Z7qkW7p+RZ4C OepQ== X-Gm-Message-State: AKGB3mLTfysmDcwRBt+O1Me4abIW+34I4B5JBWfE8X3p+Ed10HaLoFij oGNlayah0TsRHD38sUObPz9KDw== X-Received: by 10.28.47.66 with SMTP id v63mr6170335wmv.144.1513769960224; Wed, 20 Dec 2017 03:39:20 -0800 (PST) Received: from wifi-122_dhcprange-89.wifi.unimo.it (wifi-122_dhcprange-89.wifi.unimo.it. [155.185.122.89]) by smtp.gmail.com with ESMTPSA id o27sm9704436wro.9.2017.12.20.03.39.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Dec 2017 03:39:18 -0800 (PST) From: Paolo Valente To: Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, ulf.hansson@linaro.org, broonie@kernel.org, linus.walleij@linaro.org, angeloruocco90@gmail.com, bfq-iosched@googlegroups.com, Paolo Valente Subject: [PATCH IMPROVEMENT/BUGFIX 1/4] block, bfq: add missing rq_pos_tree update on rq removal Date: Wed, 20 Dec 2017 12:38:31 +0100 Message-Id: <20171220113834.2578-2-paolo.valente@linaro.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171220113834.2578-1-paolo.valente@linaro.org> References: <20171220113834.2578-1-paolo.valente@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If two processes do I/O close to each other, then BFQ merges the bfq_queues associated with these processes, to get a more sequential I/O, and thus a higher throughput. In this respect, to detect whether two processes are doing I/O close to each other, BFQ keeps a list of the head-of-line I/O requests of all active bfq_queues. The list is ordered by initial sectors, and implemented through a red-black tree (rq_pos_tree). Unfortunately, the update of the rq_pos_tree was incomplete, because the tree was not updated on the removal of the head-of-line I/O request of a bfq_queue, in case the queue did not remain empty. This commit adds the missing update. Signed-off-by: Paolo Valente Signed-off-by: Angelo Ruocco --- block/bfq-iosched.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.15.1 diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index a9e06217e64d..c6f0b93a769c 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -1627,6 +1627,8 @@ static void bfq_remove_request(struct request_queue *q, rb_erase(&bfqq->pos_node, bfqq->pos_root); bfqq->pos_root = NULL; } + } else { + bfq_pos_tree_add_move(bfqd, bfqq); } if (rq->cmd_flags & REQ_META)