On Thu, Sep 29, 2022 at 1:33 AM Jason A. Donenfeld <[email protected]> wrote:
>
> There are numerous places in the kernel that would be sped up by having
> smaller batches. ...
> void get_random_bytes(void *buf, size_t len);
> +u8 get_random_u8(void);
> +u16 get_random_u16(void);
> u32 get_random_u32(void);
> u64 get_random_u64(void);
> static inline unsigned int get_random_int(void)
To me, the 32-bit & 64-bit functions look like an
obviously good idea. However, I cannot see
that the 8-bit or 16-bit functions are needed.
Even library functions like getchar() return an
int & whatever you return, it is going to be
handled as an int-sized item if it goes in a
register, so what's the point?
From: Sandy Harris
> Sent: 25 November 2022 04:11
>
> On Thu, Sep 29, 2022 at 1:33 AM Jason A. Donenfeld <[email protected]> wrote:
> >
> > There are numerous places in the kernel that would be sped up by having
> > smaller batches. ...
>
> > void get_random_bytes(void *buf, size_t len);
> > +u8 get_random_u8(void);
> > +u16 get_random_u16(void);
> > u32 get_random_u32(void);
> > u64 get_random_u64(void);
> > static inline unsigned int get_random_int(void)
>
> To me, the 32-bit & 64-bit functions look like an
> obviously good idea. However, I cannot see
> that the 8-bit or 16-bit functions are needed.
>
> Even library functions like getchar() return an
> int & whatever you return, it is going to be
> handled as an int-sized item if it goes in a
> register, so what's the point?
They avoid 'using up' random values the callers wont use.
This can save expensive re-hashing (etc).
OTOH the return types should probably be u32 even though the
domain is smaller.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)