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:[email protected]] On Behalf Of 
Chuanbo Weng
Sent: Thursday, April 17, 2014 3:06 PM
To: [email protected]
Cc: Zhigang Gong
Subject: [Beignet] [PATCH 3/3] GBE: work around baytrail-t hang issue.

From: Zhigang Gong <[email protected]>

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 <[email protected]>
---
 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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to