Mali errors on Xen


We are using Xen on Hikey960 with Debian as Dom0 and Android as DomU. We are able to get the Android console. We have created passthrough node for GPU. Mali drivers are loaded successfully and its able to create a node(/dev/mali0). But continuously getting below errors.

[ 1210.166838] mali 10000000.mali: error detected from slot 1, job status 0x00000004 (TERMINATED)
[ 1210.166894] mali 10000000.mali: t6xx: GPU fault 0x4002 from job slot 1
[ 1210.166954] mali 10000000.mali: t6xx: GPU fault 0x4002 from job slot 0
[ 1210.241449] mali 10000000.mali: Unhandled Page fault in AS2 at VA 0x0000007391ADB0C0
[ 1210.241449] Reason: Memory is not growable
[ 1210.241449] raw fault status: 0x7C1002C0
[ 1210.241449] decoded fault status: SLAVE FAULT
[ 1210.241449] exception type 0xC0: TRANSLATION_FAULT
[ 1210.241449] access type 0x2: READ
[ 1210.241449] source id 0x7C10
[ 1210.241449] pid: 4917

Our goal is get the display for DomU(Android) through passthrough, so we started have started from GPU passthrough. Please provide some pointers.


It is possible you are the first person ever to try this and we’re getting close to the point where there’s not really anyone on this forum who can help you.

At a superficial level a page fault suggests that the mali is being handed pointers by domU that it cannot access. This is probably because Xen has not setup the sMMU correctly for GPU passthrough (which is either a missing piece in the hikey960 xen port or, alternatively, maybe a feature not present in the hardware).

It’s not clear from your question where you have guessed the problem is, however beyond this superficial analysis I’m afraid I cannot offer any deeper insight.

Thanks Daniel.

Is there any document or link which explains how display pipeline is implemented on Hikey960.

Not that I am aware of.

However on most embedded systems the GPU and display pipeline are pretty much separated anyway. The cells are often developed by separate companies and only really talk to each other by sharing buffers in main memory (e.g. GPU writes a buffer to RAM and then drivers hand the buffer to the display pipeline).

The page fault you are seeing is coming from the GPU so, assuming Hikey960 follows the above pattern, then it is unlikely the display pipeline is involved anyway.

I met the same error now:
[ 890.264187] mali e82c0000.mali: t6xx: GPU fault 0x4002 from job slot 1
[ 890.264258] mali e82c0000.mali: t6xx: GPU fault 0x4002 from job slot 0
[ 890.268639] mali e82c0000.mali: Unhandled Page fault in AS0 at VA 0x0000FE9B6343D0C0
[ 890.268639] Reason: Memory is not growable
[ 890.268639] raw fault status: 0x7C1002C0
[ 890.268639] decoded fault status: SLAVE FAULT
[ 890.268639] exception type 0xC0: TRANSLATION_FAULT
[ 890.268639] access type 0x2: READ
[ 890.268639] source id 0x7C10
[ 890.268639] pid: 18059
Have you solve the problem?

xen doesn’t support hisi iommu, so the passthrough mali can’t work successfully

Do you know why Xen does not support hisi-iommu?