qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH RESEND v2 1/2] migration/xbzrle: use ctz64 to avoid undefined


From: Dr. David Alan Gilbert
Subject: Re: [PATCH RESEND v2 1/2] migration/xbzrle: use ctz64 to avoid undefined result
Date: Wed, 15 Mar 2023 18:01:45 +0000
User-agent: Mutt/2.2.9 (2022-11-12)

* Matheus Tavares Bernardino (quic_mathbern@quicinc.com) wrote:
> __builtin_ctzll() produces undefined results when the argument is 0.
> This can be seen through test-xbzrle, which produces the following
> warning:
> 
> ../migration/xbzrle.c:265: runtime error: passing zero to ctz(), which is not 
> a valid argument
> 
> Replace __builtin_ctzll() with our ctz64() wrapper which properly
> handles 0.
> 
> Signed-off-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  migration/xbzrle.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/migration/xbzrle.c b/migration/xbzrle.c
> index 05366e86c0..21b92d4eae 100644
> --- a/migration/xbzrle.c
> +++ b/migration/xbzrle.c
> @@ -12,6 +12,7 @@
>   */
>  #include "qemu/osdep.h"
>  #include "qemu/cutils.h"
> +#include "qemu/host-utils.h"
>  #include "xbzrle.h"
>  
>  /*
> @@ -233,7 +234,7 @@ int xbzrle_encode_buffer_avx512(uint8_t *old_buf, uint8_t 
> *new_buf, int slen,
>                      break;
>                  }
>                  never_same = false;
> -                num = __builtin_ctzll(~comp);
> +                num = ctz64(~comp);
>                  num = (num < bytes_to_check) ? num : bytes_to_check;
>                  zrun_len += num;
>                  bytes_to_check -= num;
> @@ -262,7 +263,7 @@ int xbzrle_encode_buffer_avx512(uint8_t *old_buf, uint8_t 
> *new_buf, int slen,
>                  nzrun_len += 64;
>                  break;
>              }
> -            num = __builtin_ctzll(comp);
> +            num = ctz64(comp);
>              num = (num < bytes_to_check) ? num : bytes_to_check;
>              nzrun_len += num;
>              bytes_to_check -= num;
> -- 
> 2.39.1
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK




reply via email to

[Prev in Thread] Current Thread [Next in Thread]