Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2724038imj; Mon, 11 Feb 2019 07:32:28 -0800 (PST) X-Google-Smtp-Source: AHgI3IYSt6qchP+m/gj2g8mSBhDQj1tvl/ggXFS12DpnLEb5Oavbhr6U1SeP3e2W4ryofxJxRG7n X-Received: by 2002:a63:ea15:: with SMTP id c21mr19407813pgi.361.1549899148619; Mon, 11 Feb 2019 07:32:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549899148; cv=none; d=google.com; s=arc-20160816; b=q23iABLed8Iay8N+Xq0FWkuSrTwWlTjW88G4FCHzoofMQCXDWCXrGCuW/7DSFsHxtQ nlGj99PaVGBpmfMDc1Pp8A9jswAlkQ/yfU5eptLrMSiAmzV+rt10mLL9QT4NKp7BJXzN tb5awI7YvHsl+11CsRWOiKT8zm+8fYUNYzyvXIPZph0Eb9yL9aMQZ9+EfRpEthLlgG8E bS+SaG4FlRxZ+2JQylsEG1ysV7ubhO7VYvnIdYrA54g6erUp3Pg3+esXc8xAhQ6/+8Sx dTcbLLr0jne0Wm/deYVgre1TJxSDcPXlqznHLUDQz1CooDP+6KZvV6am0U1+ezqxV9XR JBlw== 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=KjMR8soKTss3sa7GeNZH82KYT/+U70YI2CqoGZ+zpFo=; b=CtNFZxmNU74bJGliO+Q851tqxddQtfcJb+G+20u9wGmq3hWGq9ClMGwJceRpKvSCzw N+/uLV8hz9e9yoXZAZeJFYMM5F7vTHxrBK4hBGDDUNXlj5hPkEBCOhJ8qmAN8hUn3KNZ VAPBHUGPQEv+ySxwkPO9KaQTd2S1n5d0iocpfJ2J6B2ko4sVXbEKO8nVeIYcgq6tRazM TA3HuX5rr5zD573GfOocntHCTkqTSuiTviJqG0NfLjx7Qz2YncPQ95yjjaD/rHJk69HX Vy7HMKOZ56BIdUXcDHkkJ1rArtEXXwKCQKcBheKZNdOE4FCHtPBR0hslAlLoXd/1o+9e nPxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=wkcz3TOw; 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 s80si9368573pgs.165.2019.02.11.07.31.50; Mon, 11 Feb 2019 07:32:28 -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=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=wkcz3TOw; 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 S2390071AbfBKPaw (ORCPT + 99 others); Mon, 11 Feb 2019 10:30:52 -0500 Received: from mail-it1-f195.google.com ([209.85.166.195]:50966 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390111AbfBKP2t (ORCPT ); Mon, 11 Feb 2019 10:28:49 -0500 Received: by mail-it1-f195.google.com with SMTP id z7so27290226iti.0 for ; Mon, 11 Feb 2019 07:28:49 -0800 (PST) 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=KjMR8soKTss3sa7GeNZH82KYT/+U70YI2CqoGZ+zpFo=; b=wkcz3TOwWFgXj1RwA8vh7YtdFZCXr/uROsJsOXMfhMIQbYjNgl1lzmNZOEqNzNrdqC 2zIlrthA8tQvkpcza1lbC0e+oN63YsSJ+0ZqnzeVaLWLfvcxyHpSBvRneH9txXnt5gn4 KK+FKdO+5gxUEjvnkrsQB7aglmSECbe/g2VM3oherXZFTUtZXpLn2YWv9KhXT4X8/J7A sB/sCXg4khjM8qSft7lIxJTtnaHh55A+OyqS6wbxxwz7IDv8qqQFbZKyeJBhmreRUSMC QK2B0WFDbDTjo2WPC4hBKpcxobkV9l3OHFw/EneTnWSWXLi50mVUgfu7VlrQeLUSNhmC 2Bgg== 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=KjMR8soKTss3sa7GeNZH82KYT/+U70YI2CqoGZ+zpFo=; b=HzeO/CUaRyGPFjEB5KwWO8p/Bq1ExGics00Z88gsw7NHmDBUJhOoJ0dSpfN5Q4ctl7 msiHscdbwhj9zNR16+nkT1ntCXqnr7hnauxv0B80p4hT0xDbsqgj763dUxw69oXd3J7Y VDUCZETINn+A/2KpXwJMZnZNFcMNoOIF5wimlcS2yOI4P36JXKo6ZePt1uDfRuTyw6/u hV0NkztFHucr/6icA+7VgmdkP+2M9xshJnl6175kR3nQ9Npfp6RD/M6mXrKGykjczIvt RRqs3QgFlKVv7R2nDt2An5IHfDN1QzCotOpScLnl42Z9BtxBoFQH7Pd95aY04IoSE+DU KB5A== X-Gm-Message-State: AHQUAuZj1AbGHEZdofuJeA70MAyo2xp9QJlnOmTBDSwJjAuX2RaXCZ/C yKCvrG7pCCgVrAC4cGdp2tgf0PCnEcG1WQ== X-Received: by 2002:a24:2f08:: with SMTP id j8mr48657itj.42.1549898928526; Mon, 11 Feb 2019 07:28:48 -0800 (PST) Received: from [192.168.1.158] ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id f204sm1244830itf.3.2019.02.11.07.28.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 11 Feb 2019 07:28:47 -0800 (PST) Subject: Re: [5.0-rc5 regression] "scsi: kill off the legacy IO path" causes 5 minute delay during boot on Sun Blade 2500 To: James Bottomley , Mikael Pettersson Cc: Linux SPARC Kernel Mailing List , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org References: <1549736341.2971.7.camel@HansenPartnership.com> <1549813472.4142.3.camel@HansenPartnership.com> <3380ed8e-ae02-96f2-142b-7cce09459df8@kernel.dk> <1549815924.4142.8.camel@HansenPartnership.com> <0e6e5d67-d305-dd00-2e42-e2299166c8b2@kernel.dk> <1549898730.2831.6.camel@HansenPartnership.com> From: Jens Axboe Message-ID: <44bb4374-0b7c-733b-a53e-92d2f03f2f49@kernel.dk> Date: Mon, 11 Feb 2019 08:28:46 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <1549898730.2831.6.camel@HansenPartnership.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 2/11/19 8:25 AM, James Bottomley wrote: > On Sun, 2019-02-10 at 09:35 -0700, Jens Axboe wrote: >> On 2/10/19 9:25 AM, James Bottomley wrote: >>> On Sun, 2019-02-10 at 09:05 -0700, Jens Axboe wrote: >>>> On 2/10/19 8:44 AM, James Bottomley wrote: >>>>> On Sun, 2019-02-10 at 10:17 +0100, Mikael Pettersson wrote: >>>>>> On Sat, Feb 9, 2019 at 7:19 PM James Bottomley >>>>>> wrote: >>>>> >>>>> [...] >>>>>>> I think the reason for this is that the block mq path >>>>>>> doesn't feed the kernel entropy pool correctly, hence the >>>>>>> need to install an entropy gatherer for systems that don't >>>>>>> have other good random number sources. >>>>>> >>>>>> That does sound plausible, I admit I didn't even consider the >>>>>> possibility that the old block I/O path also was an entropy >>>>>> source. >>>>> >>>>> In theory, the new one should be as well since the rotational >>>>> entropy collector is on the SCSI completion path. I'd seen >>>>> the same problem but had assumed it was something someone had >>>>> done to our internal entropy pool and thus hadn't bisected it. >>>> >>>> The difference is that the old stack included ADD_RANDOM by >>>> default, so this check: >>>> >>>> if (blk_queue_add_random(q)) >>>> add_disk_randomness(req->rq_disk); >>>> >>>> in scsi_end_request() would be true, and we'd add the randomness. >>>> For sd, it seems to set it just fine for non-rotational drives. >>>> Could this be because other devices don't? Maybe the below makes >>>> a difference. >>> >>> No, in both we set it per the rotational parameters of the disk in >>> >>> sd.c:sd_read_block_characteristics() >>> >>> rot = get_unaligned_be16(&buffer[4]); >>> >>> if (rot == 1) { >>> >>> blk_queue_flag_set(QUEUE_FLAG_NONROT, q); >>> >>> blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, q); >>> } else { >>> >>> blk_queue_flag_clear(QUEUE_FLAG_NONROT, q); >>> >>> blk_queue_flag_set(QUEUE_FLAG_ADD_RANDOM, q); >>> } >>> >>> >>> That check wasn't changed by the code removal. >> >> As I said above, for sd. This isn't true for non-disks. > > Yes, but the behaviour above doesn't change across a switch to MQ, so I > don't quite understand how it bisects back to that change. If we're > not gathering entropy for the device now, we wouldn't have been before > the switch, so the entropy characteristics shouldn't have changed. But it does, as I also wrote in that first email. The legacy queue flags had QUEUE_FLAG_ADD_RANDOM set by default, the MQ ones do not. Hence any non-sd device would previously ALWAYS have ADD_RANDOM set, now none of them do. Also see the patch I sent. >>> Although I suspect it should be unconditional: even SSDs have what >>> would appear as seek latencies at least during writes depending on >>> the time taken to find an erased block or even trigger garbage >>> collection. The entropy collector is good at taking something >>> completely regular and spotting the inconsistencies, so it won't >>> matter that loads of "seeks" are deterministic. >> >> The reason it isn't is that it's of limited use for SSDs where it's a >> lot more predictable. And they are also a lot faster, which means the >> adding randomness is more problematic from an efficiency pov. > > But that's my point: our entropy extractor is good at weeding out > predictable signals. Fine, it won't extract any entropy if the disk > seek time is entirely regular, but it won't contaminate the entropy > pool. The computational delay, I grant ... it takes a while to > determine if any entropy is present in the signal. But you are missing my point - if we're mostly weeding out predictable signals, then it's pointless to take the overhead of the randomness. This is why the MQ flag don't include it by default. > What about feeding it with something like discard timings, which should > be much less predictable. That's not true, lots of devices have VERY predictable discard timings. Most of them will have a fixed discards-per-second rate, even. -- Jens Axboe