Messages in this thread | | | Date | Sat, 5 Oct 2013 10:21:21 -0400 | From | Theodore Ts'o <> | Subject | Re: lustre: why does cfs_get_random_bytes() exist? |
| |
On Sat, Oct 05, 2013 at 06:10:54AM +0000, Dilger, Andreas wrote: > >With modern kernels, the /dev/random driver has the > >add_device_randomness() interface which is used to mix in > >personalization information, which includes the network MAC address. > >So that particular concern should be covered without the hack of > >mixing in cfs_rand(). > > I think that depends on the network driver. The Cray systems have some > very strange networking hardware that is beyond our control - definitely > not ethernet or Infiniband.
add_device_randomness() is called from __dev_open() and dev_set_mac_address() in net/core/dev.c. This is above the ethernet and infiniband level. So as long as it looks like a Linux network device, and they are setting the hardware media access address in the standard place (dev->dev_addr), it should work fine.
If they don't then they should fix their drivers to call add_device_randomness(); the answer shouldn't be to make every single users of the Linux random number generation infrastructure work around the problem at the subsystem or file system level!
- Ted
| |