linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: "Elliott, Robert (Server Storage)" <Elliott@hp.com>,
	Mike Snitzer <snitzer@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "tytso@mit.edu" <tytso@mit.edu>,
	"gmazyland@gmail.com" <gmazyland@gmail.com>,
	"agk@redhat.com" <agk@redhat.com>,
	"mpatocka@redhat.com" <mpatocka@redhat.com>
Subject: Re: [PATCH] block: disable entropy contributions from nonrot devices
Date: Fri, 03 Oct 2014 15:24:42 -0600	[thread overview]
Message-ID: <542F141A.8020601@kernel.dk> (raw)
In-Reply-To: <94D0CD8314A33A4D9D801C0FE68B402958CCBFB5@G4W3202.americas.hpqcorp.net>

On 2014-10-02 21:26, Elliott, Robert (Server Storage) wrote:
>
>
>> -----Original Message-----
>> From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-
>> owner@vger.kernel.org] On Behalf Of Mike Snitzer
>> Sent: Thursday, 02 October, 2014 7:11 PM
>> To: axboe@kernel.dk; linux-kernel@vger.kernel.org
>> Cc: tytso@mit.edu; gmazyland@gmail.com; agk@redhat.com; mpatocka@redhat.com
>> Subject: [PATCH] block: disable entropy contributions from nonrot devices
>>
>> Introduce queue_flags_set_nonrot_clear_add_random() and convert all
>> block drivers that set QUEUE_FLAG_NONROT over to using it instead.
>>
>> Historically, all block devices have automatically made entropy
>> contributions.  But as previously stated in commit e2e1a148 ("block: add
>> sysfs knob for turning off disk entropy contributions"):
>>      - On SSD disks, the completion times aren't as random as they
>>        are for rotational drives. So it's questionable whether they
>>        should contribute to the random pool in the first place.
>>      - Calling add_disk_randomness() has a lot of overhead.
>>
>> There are more reliable sources for randomness than non-rotational block
>> devices.  From a security perspective it is better to err on the side of
>> caution than to allow entropy contributions from unreliable "random"
>> sources.
>
> blk-mq defaults to off (QUEUE_FLAG_MQ_DEFAULT does not
> include QUEUE_FLAG_ADD_RANDOM).
>
> Even when it's off in block layer completion processing, all interrupts,
> storage or not, are forced to contribute during hardirq processing.
> I've seen this add 3-12 us latency blips every 64 interrupts (when
> the "fast_mix" code runs out of bits).

Yeah, it's a well known problem, and just as large (or larger) as the 
request completion randomness. It has significant performance 
implications, as your trace also shows. I'm pretty sure I complained 
about this 2-3 years ago (or longer), yet it's still poor.

I'd be fine with having an irq registration flag that says "don't 
contribute to randomness", on the grounds of more predictable irq 
latencies one these devices not adding any real entropy to the pool. But 
the suboptimal mixing should really be fixed.

-- 
Jens Axboe


  reply	other threads:[~2014-10-03 21:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-03  0:11 [PATCH] block: disable entropy contributions from nonrot devices Mike Snitzer
2014-10-03  3:26 ` Elliott, Robert (Server Storage)
2014-10-03 21:24   ` Jens Axboe [this message]
2014-10-03 21:17 ` Jens Axboe
2014-10-03 22:58   ` [PATCH v2] block: disable entropy contributions for " Mike Snitzer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=542F141A.8020601@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=Elliott@hp.com \
    --cc=agk@redhat.com \
    --cc=gmazyland@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpatocka@redhat.com \
    --cc=snitzer@redhat.com \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).