Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp2496186imm; Wed, 3 Oct 2018 04:58:26 -0700 (PDT) X-Google-Smtp-Source: ACcGV60b0b8Jxm/SoXxfaJKIpvWajQizbZ8SFh2MiGexvi5U3m+stXvhYegfFhmzbT7NYObabEfg X-Received: by 2002:a62:1a92:: with SMTP id a140-v6mr1229472pfa.219.1538567906156; Wed, 03 Oct 2018 04:58:26 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x186-v6si1472407pfx.19.2018.10.03.04.58.10; Wed, 03 Oct 2018 04:58:26 -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=fail header.i=@natalenko.name header.s=dkim-20170712 header.b="EuEHY/cY"; arc=fail (signature failed); 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=fail (p=NONE sp=NONE dis=NONE) header.from=natalenko.name Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727245AbeJCSok (ORCPT + 99 others); Wed, 3 Oct 2018 14:44:40 -0400 Received: from vulcan.natalenko.name ([104.207.131.136]:10932 "EHLO vulcan.natalenko.name" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726809AbeJCSok (ORCPT ); Wed, 3 Oct 2018 14:44:40 -0400 X-Greylist: delayed 427 seconds by postgrey-1.27 at vger.kernel.org; Wed, 03 Oct 2018 14:44:38 EDT Received: from mail.natalenko.name (vulcan.natalenko.name [IPv6:fe80::5400:ff:fe0c:dfa0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by vulcan.natalenko.name (Postfix) with ESMTPSA id C7F2E41EB8D; Wed, 3 Oct 2018 13:49:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=natalenko.name; s=dkim-20170712; t=1538567366; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CkKmYlWkHHemij050YscC/BErDSwO4FtNfcOIl5gQkc=; b=EuEHY/cYMuOi+aOfJokyZR29b/FGnGeePiyerF5ymgSifzTVc0yO85SwHpSGbQBqcbjiGB hiH/tOJhpMrSF/L1p3snxKUxnx4wh4a8kSxoKkiAdWpisQskToqcmtptncUNvLd4Egue3/ 36QiZQ6csy4sizWhfLcC9Gzj+coREMw= DMARC-Filter: OpenDMARC Filter v1.3.2 vulcan.natalenko.name C7F2E41EB8D Authentication-Results: vulcan.natalenko.name; dmarc=fail (p=none dis=none) header.from=natalenko.name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 03 Oct 2018 13:49:25 +0200 From: Oleksandr Natalenko To: Paolo Valente Cc: Jens Axboe , Linus Walleij , linux-block , linux-mmc , linux-mtd@lists.infradead.org, Pavel Machek , Ulf Hansson , Richard Weinberger , Artem Bityutskiy , Adrian Hunter , Jan Kara , Andreas Herrmann , Mel Gorman , Chunyan Zhang , linux-kernel , 'Paolo Valente' via bfq-iosched , Mark Brown Subject: Re: [PATCH] block: BFQ default for single queue devices In-Reply-To: References: <20181002124329.21248-1-linus.walleij@linaro.org> <05fdbe23-ec01-895f-e67e-abff85c1ece2@kernel.dk> Message-ID: <1eca41df95ff660eb247a3de666adeb4@natalenko.name> X-Sender: oleksandr@natalenko.name User-Agent: Roundcube Webmail/1.3.7 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=natalenko.name; s=arc-20170712; t=1538567366; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CkKmYlWkHHemij050YscC/BErDSwO4FtNfcOIl5gQkc=; b=iV+JrVPuRATxL3Lb65vWzCaET42VaHjatxRwHcOUCMUTVOF3aOxEL+XfToQ8TSAjpbfSEC WrCire5al3/9T/vqp40A13ctVvT5cVv4ad/3GNGUYK6OWC9MLUcmvTK3S03REHpO82qrZy Kly+WrHIOg+fQ8BWRfI8ZWzl39+X0dg= ARC-Seal: i=1; s=arc-20170712; d=natalenko.name; t=1538567366; a=rsa-sha256; cv=none; b=DdvfF3JSdcwxXnR5u7+paHEE6T688DmWBgcXogiWZbojDdUM4hND8Wqm3F/uOp76Hc0qsh++RcXknZj6Jdks2LZE2mGOBAgjsneMDi6y5/OROFyXWbOJCbwD5BFJOcu/Q0xFOvLk0IJ8giuFh9jXs52lujjIzF9Khe63v2Uekhk= ARC-Authentication-Results: i=1; vulcan.natalenko.name; auth=pass smtp.auth=oleksandr@natalenko.name smtp.mailfrom=oleksandr@natalenko.name Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi. On 03.10.2018 08:29, Paolo Valente wrote: > As also Linus Torvalds complained [1], people feel lost among > I/O-scheduler options. Actual differences across I/O schedulers are > basically obscure to non experts. In this respect, Linux-kernel > 'users' are way more than a few top-level distros that can afford a > strong performance team, and that, basing on the input of such a team, > might venture light-heartedly to change a critical component like an > I/O scheduler. Plus, as Linus Walleij pointed out, some users simply > are not distros that use udev. I feel a contradiction in this counter-argument. On one hand, there are lots of, let's call them, home users, that use major distributions with udev, so the distribution maintainers can reasonably decide which scheduler to use for which type of device based on the udev rule and common sense provided via Documentation/ by linux-block devs. Moreover, most likely, those rules should be similar or the same across all the major distros and available via some (systemd?) upstream. On another hand, the users of embedded devices, mentioned by Linus, should already know what scheduler to choose because dealing with embedded world assumes the person can decide this on their own, or with the help of abovementioned udev scripts and/or Documentation/ as a reference point. So I see no obstacles here, and the choice to rely on udev by default sounds reasonable. The question that remain is whether it is really important to mount a root partition while already using some specific scheduler? Why it cannot be done with "none", for instance? > So, probably 99% of Linux-kernel users will just stick to the default > I/O scheduler, mq-deadline, assuming that the algorithm by which that > scheduler was chosen was not "pick the scheduler with the longest > name", but "pick the best scheduler for most cases". The problem is > that, for single-queue devices with a speed below 400/500 KIOPS, the > default scheduler is apparently incomparably worse than bfq in terms > of responsiveness and latency for time-sensitive applications [2], and > in terms of throughput reached while controlling I/O [3]. And, in all > other tests ran so far, by any entity or group I'm aware of, bfq > results basically on par with or better than mq-deadline. And that's why major distributions are likely to default to BFQ via udev. No one argues with BFQ superiority here ☺. > So, I do understand your need for conservativeness, but, after so much > evidence on single-queue devices, and so many years! :), what's the > point in keeping Linux worse for virtually everybody, by default? From my point of view this is not a conservative approach at all. On contrary, offloading decisions to userspace aligns pretty well with recent trends like pressure metrics/userspace OOM killer, eBPF etc. The less unnecessary logic the kernel handles, the more flexibility it affords. -- Oleksandr Natalenko (post-factum)