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

He Junyan junyan.he at inbox.com
Thu Apr 17 00:42:50 PDT 2014


The whole patch set is OK.
I use the same manner to recode the gen version for HSW enabling.
PCI device ID seems more precise when useful to handle the conner
case even in same gen version.
I will rebase to your patch.



On Thu, 2014-04-17 at 15:06 +0800, Chuanbo Weng wrote:
> 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;





More information about the Beignet mailing list