All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: Ian Molton <ian.molton@collabora.co.uk>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: hw_random fixes
Date: Wed, 25 Nov 2009 13:27:32 -0600	[thread overview]
Message-ID: <1259177252.2858.17.camel@calx> (raw)
In-Reply-To: <4B0D03FC.40406@collabora.co.uk>

[cc:ing to linux-kernel, finally]

On Wed, 2009-11-25 at 10:16 +0000, Ian Molton wrote:
> Rusty Russell wrote:
> 
> > Make that:
> > 
> > 	ssize_t (*get_rng_data)(void *buf, size_t max, bool wait);
> > 
> > Then, if driver supplies that hook, use it exclusively.  Otherwise, use old
> > ones.  We can convert them gradually that way.
> 
> This doesn't quite solve things neatly, because it means one of:
> 
> 1) The core has to wait until there is nothing left before requesting
> more data, because it doesnt know the alignment requirements of the driver.

Hmm, this seems to imply you'd be calling get_rng_data multiple times
with different offsets into buf to accumulate data. I think that's more
complex than is needed. Just use buf as a nicely aligned scratch buffer
and empty it completely into the final output buffer before the next
driver request. If you end up with 1 byte of data hanging around until
the next read, that's not a problem - the next read might be 5 bytes.

You'll probably want to use cacheline alignment on buf to make Via
Padlock happy, if anything needs larger alignment (ie page) it should
handle it internally.

-- 
http://selenic.com : development and support for Mercurial and Linux



       reply	other threads:[~2009-11-25 19:27 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4B080621.5000109@collabora.co.uk>
     [not found] ` <4B0C18B0.2000206@collabora.co.uk>
     [not found]   ` <1259084901.17871.624.camel@calx>
     [not found]     ` <200911251135.41871.rusty@rustcorp.com.au>
     [not found]       ` <4B0D03FC.40406@collabora.co.uk>
2009-11-25 19:27         ` Matt Mackall [this message]
2009-11-25 20:43           ` hw_random fixes Ian Molton
2009-11-26  0:25           ` Ian Molton
2009-11-26  0:25             ` [PATCH 1/2] hw_random: core updates to allow more efficient drivers Ian Molton
2009-11-26  0:25               ` [PATCH 2/2] virtio: Convert virtio-rng to the new API Ian Molton
2009-11-28 10:00                 ` Rusty Russell
2009-11-30  9:55                   ` Ian Molton
2009-11-26  1:03               ` [PATCH 1/2] hw_random: core updates to allow more efficient drivers Matt Mackall
2009-11-26 10:49                 ` Ian Molton
2009-11-26 10:49                   ` [PATCH 1/2] hw_random: core updates to allow more efficient drivers Ian Molton
2009-11-26 11:38                   ` Matt Mackall
2009-11-26 11:48                     ` Re: Ian Molton
2009-11-27 22:54                       ` Re: Matt Mackall
2009-11-28  0:51                         ` rng updates Ian Molton
2009-11-28 10:05                 ` [PATCH 1/2] hw_random: core updates to allow more efficient drivers Rusty Russell
2009-11-30 10:28                   ` Ian Molton
2009-11-30 18:44                     ` Matt Mackall
2009-12-01  3:08                       ` Rusty Russell
2009-12-01  9:23                         ` Ian Molton
2009-12-01  9:18                       ` Ian Molton
2009-11-26  3:12               ` Jeff Garzik
2009-11-26  0:44           ` Ian Molton
2009-11-26  0:44             ` [PATCH 1/2] hw_random: core updates to allow more efficient drivers Ian Molton
2009-11-26  0:44               ` [PATCH 2/2] virtio: Convert virtio-rng to the new API Ian Molton
2009-11-30 10:38                 ` hw_random update Ian Molton
2009-11-30 10:38                   ` [PATCH 1/2] hw_random: core updates to allow more efficient drivers Ian Molton
2009-11-30 10:38                     ` [PATCH 2/2] virtio: Convert virtio-rng to the new API Ian Molton
2009-12-01  7:27                       ` Herbert Xu
2009-12-01  9:29                         ` Ian Molton

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=1259177252.2858.17.camel@calx \
    --to=mpm@selenic.com \
    --cc=ian.molton@collabora.co.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.