lkml.org 
[lkml]   [2005]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC] RNG rewrite...
Deepak Saxena wrote:
> On Oct 15 2005, at 06:40, Jeff Garzik was caught saying:
>
>>Deepak Saxena wrote:
>>
>>>rewrite the damn thing to use the device model and have a rng
>>>device class with individual drivers for each RNG model, including
>>>IXP4xx. I'll keep the miscdev interface around but will add a
>>>new interface under /sys/class/rng that the userspace tools
>>>can transition to. Is this OK with folks?
>>
>>How does the hardware export RNG functionality? CPU insn? Magic memory
>>address? Can it be done 100% in userspace?
>
>
> It's a magic regsiter we just read/write and could be done in userspace.
> I also took a look at MPC85xx and it has the same sort of interface but
> also has an error interrupt capability. On second thought a class
> interface is overkill b/c there will only be one RNG per system, so
> I can just do something like watchdogs where we have a bunch of simple
> drivers exposing the same interface. We could do it in user space but
> then we have separate RNG implementations for x86 and !x86 and I'd
> rather not see that. Can we move the x86 code out to userspace and
> just let the daemon eat the numbers directly from HW? We can mmap()
> PCI devices, but I don't know enough about x86 to say whether msr
> instructions can execute out of userspace (or if we want them to...).

All of the hot path RNG stuff can and should be moved to userspace.

Right now the path is

kernel /dev/hwrandom -> rngd -> add /dev/random entropy

All three current vendors shown in hw_random.c are doable in userspace.
Intel uses MMIO, AMD uses PIO, and VIA uses a specialized CPU
instruction. As HPA mentioned, you can use the MSR driver for control.

Patches welcome! http://sf.net/projects/gkernel/

Jeff




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-10-18 01:34    [W:0.064 / U:0.548 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site