[Beignet] [PATCH] Runtime: Use uanme to get kernel architecture.

Song, Ruiling ruiling.song at intel.com
Wed Jun 22 06:05:08 UTC 2016



> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Yang Rong
> Sent: Thursday, May 26, 2016 1:17 PM
> To: beignet at lists.freedesktop.org
> Cc: Yang, Rong R <rong.r.yang at intel.com>
> Subject: [Beignet] [PATCH] Runtime: Use uanme to get kernel architecture.
> 
> In some systems, the user space is 32 bit, but kernel is 64 bit, so
> can't use the compiler's flag to determine the kernel'a architecture,
> use uname to get it.
> 
> It fix bug:
> https://bugs.freedesktop.org/show_bug.cgi?id=95245
> 
> Signed-off-by: Yang Rong <rong.r.yang at intel.com>
> ---
>  src/intel/intel_gpgpu.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/src/intel/intel_gpgpu.c b/src/intel/intel_gpgpu.c
> index 39b7e4d..db967e8 100644
> --- a/src/intel/intel_gpgpu.c
> +++ b/src/intel/intel_gpgpu.c
> @@ -2243,11 +2243,15 @@ intel_gpgpu_read_ts_reg_gen7(drm_intel_bufmgr
> *bufmgr)
>       i386 system. It seems the kernel readq bug. So shift 32 bit in x86_64, and only
> remain
>       32 bits data in i386.
>    */
> -#ifdef __i386__
> -  return result & 0x0ffffffff;
> -#else
> -  return result >> 32;
> -#endif  /* __i386__  */
> +  struct utsname buf;
> +  uname(&buf);
> +  /* In some systems, the user space is 32 bit, but kernel is 64 bit, so can't use
> the
> +   * compiler's flag to determine the kernel'a architecture, use uname to get it.
> */
> +  /* x86_64 in linux, amd64 in bsd */
> +  if(strcmp(buf.machine, "x86_64") == 0 || strcmp(buf.machine, "amd64") == 0)

I do some search, looks like no other better solution to determine kernel 32/64bit.
I am OK with this.

Thanks!
Ruiling
> +    return result >> 32;
> +  else
> +    return result & 0x0ffffffff;
>  }
> 
>  /* baytrail's result should clear high 4 bits */
> --
> 2.1.4
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list