[Beignet] [PATCH 3/3] GBE: work around baytrail-t hang issue.

Zou, Nanhai nanhai.zou at intel.com
Fri Apr 18 05:17:21 PDT 2014


Can we setup a generic device related header file for those platform specific work around?
Let's avoid spread those if pciid == XXX code around cpp files.

Thanks
Zou Nanhai

-----Original Message-----
From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of Chuanbo Weng
Sent: Thursday, April 17, 2014 3:06 PM
To: beignet at lists.freedesktop.org
Cc: Zhigang Gong
Subject: [Beignet] [PATCH 3/3] GBE: work around baytrail-t hang issue.

From: Zhigang Gong <zhigang.gong at linux.intel.com>

There is an unkown issue with baytrail-t platform. It will hang at utest's compiler_global_constant case. After some investigation, it turns out to be related to the DWORD GATHER READ send message on the constand cache data port. I change to use data cache data port could work around that hang issue.

Now we only fail one more case on baytrail-t compare to the IVB desktop platform which is the:

profiling_exec()    [FAILED]
   Error: Too large time from submit to start

That may be caused by kernel related issue. And that bug will not cause serious issue for normal kernel. So after this patch, the baytrail-t platform should be in a pretty good shape with beignet.

Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
---
 backend/src/backend/gen_encoder.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/backend/src/backend/gen_encoder.cpp b/backend/src/backend/gen_encoder.cpp
index c991661..1d1b5df 100644
--- a/backend/src/backend/gen_encoder.cpp
+++ b/backend/src/backend/gen_encoder.cpp
@@ -206,7 +206,11 @@ namespace gbe
                                      uint32_t msg_length,
                                      uint32_t response_length)
   {
-    const GenMessageTarget sfid = GEN6_SFID_DATAPORT_CONSTANT_CACHE;
+    // FIXME there is a unknown issue with baytrail-t platform, the DWORD scatter
+    // message causes a hang at unit test case compiler_global_constant.
+    // We workaround it to use DATA CACHE instead.
+    const GenMessageTarget sfid = (p->deviceID == PCI_CHIP_BAYTRAIL_T) ?
+                                 GEN_SFID_DATAPORT_DATA_CACHE : 
+ GEN6_SFID_DATAPORT_CONSTANT_CACHE;
     setMessageDescriptor(p, insn, sfid, msg_length, response_length);
     insn->bits3.gen7_dword_rw.msg_type = msg_type;
     insn->bits3.gen7_dword_rw.bti = bti;
--
1.8.3.2

_______________________________________________
Beignet mailing list
Beignet at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list