[LTP] [PATCH] syscalls/getrandom02: lower bufsize if low on entropy

Cyril Hrubis chrubis@suse.cz
Fri Feb 7 12:19:10 CET 2020


Hi!
> Some PPC KVM guests accumulate about 1 bit of entropy per second while idle
> and running getrandom02. Which isn't enough and test sporadically fails on
> timeout.
> 
> Adjust the buffer size by looking at entropy_avail. We want to run the test,
> even if all entropy is exhausted, but with smaller buffer we don't set
> as high expectations on how much entropy is generated within default test time.
> 
> Signed-off-by: Jan Stancek <jstancek@redhat.com>
> ---
>  testcases/kernel/syscalls/getrandom/getrandom02.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/testcases/kernel/syscalls/getrandom/getrandom02.c b/testcases/kernel/syscalls/getrandom/getrandom02.c
> index ee0193df9897..1384fc5f32c0 100644
> --- a/testcases/kernel/syscalls/getrandom/getrandom02.c
> +++ b/testcases/kernel/syscalls/getrandom/getrandom02.c
> @@ -10,6 +10,8 @@
>  #include "lapi/syscalls.h"
>  #include "tst_test.h"
>  
> +#define PROC_ENTROPY_AVAIL "/proc/sys/kernel/random/entropy_avail"
> +
>  static int modes[] = { 0, GRND_RANDOM, GRND_NONBLOCK,
>  		       GRND_RANDOM | GRND_NONBLOCK };
>  
> @@ -37,11 +39,17 @@ static int check_content(unsigned char *buf, int nb)
>  static void verify_getrandom(unsigned int n)
>  {
>  	unsigned char buf[256];
> +	int bufsize = 64, entropy_avail;
>  
> -	memset(buf, 0, sizeof(buf));
> +	if (access(PROC_ENTROPY_AVAIL, F_OK) == 0) {
> +		SAFE_FILE_SCANF(PROC_ENTROPY_AVAIL, "%d", &entropy_avail);
> +		if (entropy_avail > 256)
> +			bufsize = sizeof(buf);
> +	}

Looks good to me, acked.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list