[Beignet] [PATCH] SKL: use the hw defautl value mocs index before linux 4.3.
Song, Ruiling
ruiling.song at intel.com
Mon Jan 4 22:06:49 PST 2016
Yes, looks acceptable. And seems no other better choice.
Thanks!
Ruiling
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Yang Rong
> Sent: Monday, December 28, 2015 10:40 AM
> To: beignet at lists.freedesktop.org
> Cc: Yang, Rong R <rong.r.yang at intel.com>
> Subject: [Beignet] [PATCH] SKL: use the hw defautl value mocs index before linux
> 4.3.
>
> From linux 4.3, kernel redefined the mocs table's value,
> But before 4.3, still used the hw defautl value.
>
> Signed-off-by: Yang Rong <rong.r.yang at intel.com>
> ---
> src/intel/intel_gpgpu.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/src/intel/intel_gpgpu.c b/src/intel/intel_gpgpu.c
> index 7e379a2..ac92ed3 100644
> --- a/src/intel/intel_gpgpu.c
> +++ b/src/intel/intel_gpgpu.c
> @@ -26,6 +26,7 @@
> #include <unistd.h>
> #include <sys/types.h>
> #include <sys/stat.h>
> +#include <sys/utsname.h>
> #include <fcntl.h>
> #include <stddef.h>
> #include <errno.h>
> @@ -287,7 +288,20 @@ intel_gpgpu_get_cache_ctrl_gen9()
> {
> //Kernel-defined cache control registers 2:
> //L3CC: WB; LeCC: WB; TC: LLC/eLLC;
> - return (0x2 << 1);
> + int major = 0, minor = 0;
> + int mocs_index = 0x2;
> +
> + struct utsname buf;
> + uname(&buf);
> + sscanf(buf.release, "%d.%d", &major, &minor);
> + //From linux 4.3, kernel redefined the mocs table's value,
> + //But before 4.3, still used the hw defautl value.
> + if(strcmp(buf.sysname, "Linux") == 0 &&
> + major == 4 && minor < 3) { /* linux kernel support skl from 4.x, so check
> from 4 */
> + mocs_index = 0x9;
> + }
> +
> + return (mocs_index << 1);
> }
>
> static void
> --
> 2.1.4
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list