No PRE bus traffic on Android BSP N7.1.2_2.0.0

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

No PRE bus traffic on Android BSP N7.1.2_2.0.0

942 Views
takayuki_ishii
Contributor IV

Hello community,

I try to build mmdc.c/mmdc.h on the Anddoid BSP N7.1.2_2.0.0 by

copy mmdc directory in git/test/mmdc of LinuxBSP.

And edit android_v7_defconfig as CONFIG_DEVMEM=y and CONFIG_DEVKMEM=y to enable /dev/mem.

And try to profile MMDC with mmdc2 command as following.

sabresd_6dq:/ # mmdc2 PRE
i.MX6QP detected.
MMDC PRE

MMDC new Profiling results:
***********************
Measure time: 500ms
Total cycles count: 264046176
Busy cycles count: 14065631
Read accesses count: 0
Write accesses count: 0
Read bytes count: 0
Write bytes count: 0
Avg. Read burst size: 0
Avg. Write burst size: 0
Read: 0.00 MB/s / Write: 0.00 MB/s Total: 0.00 MB/s
Utilization: 0%
Overall Bus Load: 0%
Bytes Access: 0

It is not change with video playback both Cactus Player and Gallery.

In Linxu BSP it can show some small traffic almost 3% in PRE3

Is it mean that Android BSP is not use PRE/PRG feature?

Best regards.

Ishii.

Labels (3)
0 Kudos
6 Replies

736 Views
takayuki_ishii
Contributor IV

Hello, Jimmychan,

Thank you for your reply.

I will test and read a source code of android M6.0.1.

Best regards,

Ishii.

0 Kudos

736 Views
jimmychan
NXP TechSupport
NXP TechSupport

It may because there is no permission to access "/dev/mem" from application.

Please try to build the image in engineer mode, and set ro.secure=0 and ro.debuggable=1 in init.rc.

0 Kudos

736 Views
takayuki_ishii
Contributor IV

Hello Jimmychan,

Thank you for your reply.

I try to rebuild android with engineer mode and ro.secure=0, ro.debuggable=1 setting.

But it is a same result as following.

In running Cactus Player, VPU and GPU2D/GPU3D return some bus load value.

But "mmdc2 PRE" command not return any bus traffic value.

The other hand, I analysed a source code of "myandroid/kernel_imx/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c"

On Linux, kernel call mxcfb_pan_display() function.

On Android, kernel call mxcfb_update_screen(), and it seems that this implement is not used PRE function.

Is it need some setting to use PRE/PRG function in android BSP?

Or do you have some patches to enable PRE/PRG feature?

sabresd_6dq:/ # mmdc2
i.MX6QP detected.
MMDC SUM

MMDC new Profiling results:
***********************
Measure time: 500ms
Total cycles count: 264080488
Busy cycles count: 45603966
Read accesses count: 4336012
Write accesses count: 2064081
Read bytes count: 273010056
Write bytes count: 121779816
Avg. Read burst size: 62
Avg. Write burst size: 58
Read: 520.73 MB/s / Write: 232.28 MB/s Total: 753.00 MB/s
Utilization: 54%
Overall Bus Load: 17%
Bytes Access: 61

sabresd_6dq:/ # mmdc2 ARM
i.MX6QP detected.
MMDC ARM

MMDC new Profiling results:
***********************
Measure time: 500ms
Total cycles count: 264049072
Busy cycles count: 46963525
Read accesses count: 1139428
Write accesses count: 196228
Read bytes count: 70493408
Write bytes count: 6180920
Avg. Read burst size: 61
Avg. Write burst size: 31
Read: 134.46 MB/s / Write: 11.79 MB/s Total: 146.24 MB/s
Utilization: 10%
Overall Bus Load: 17%
Bytes Access: 57

sabresd_6dq:/ # mmdc2 VPU
i.MX6QP detected.
MMDC VPU

MMDC new Profiling results:
***********************
Measure time: 501ms
Total cycles count: 264049592
Busy cycles count: 45010808
Read accesses count: 44209
Write accesses count: 88320
Read bytes count: 1724936
Write bytes count: 1545600
Avg. Read burst size: 39
Avg. Write burst size: 17
Read: 3.28 MB/s / Write: 2.94 MB/s Total: 6.23 MB/s
Utilization: 0%
Overall Bus Load: 17%
Bytes Access: 24

sabresd_6dq:/ # mmdc2 GPU2D
i.MX6QP detected.
MMDC GPU2D

MMDC new Profiling results:
***********************
Measure time: 500ms
Total cycles count: 264047456
Busy cycles count: 44977857
Read accesses count: 1721107
Write accesses count: 1668012
Read bytes count: 110009856
Write bytes count: 106752768
Avg. Read burst size: 63
Avg. Write burst size: 64
Read: 209.83 MB/s / Write: 203.61 MB/s Total: 413.44 MB/s
Utilization: 30%
Overall Bus Load: 17%
Bytes Access: 63

sabresd_6dq:/ # mmdc2 GPU3D
i.MX6QP detected.
MMDC GPU3D

MMDC new Profiling results:
***********************
Measure time: 501ms
Total cycles count: 264046488
Busy cycles count: 45332173
Read accesses count: 47244
Write accesses count: 133441
Read bytes count: 2981360
Write bytes count: 8540176
Avg. Read burst size: 63
Avg. Write burst size: 63
Read: 5.68 MB/s / Write: 16.26 MB/s Total: 21.93 MB/s
Utilization: 1%
Overall Bus Load: 17%
Bytes Access: 63

sabresd_6dq:/ # mmdc2 PRE
i.MX6QP detected.
MMDC PRE

MMDC new Profiling results:
***********************
Measure time: 500ms
Total cycles count: 264046520
Busy cycles count: 44512902
Read accesses count: 0
Write accesses count: 0
Read bytes count: 0
Write bytes count: 0
Avg. Read burst size: 0
Avg. Write burst size: 0
Read: 0.00 MB/s / Write: 0.00 MB/s Total: 0.00 MB/s
Utilization: 0%
Overall Bus Load: 0%
Bytes Access: 0

Best regards, 
Ishii.

0 Kudos

736 Views
jimmychan
NXP TechSupport
NXP TechSupport

Please check if there is PRE interrupt.

 

root@sabresd_6dq:/ # cat /proc/interrupts | grep pre
301:          0          0          0          0       GPC  90 Edge      21c8000.pre
302:          0          0          0          0       GPC  97 Edge      21c9000.pre
303:          0          0          0          0       GPC  98 Edge      21ca000.pre
304:        824          0          0          0       GPC  99 Edge      21cb000.pre

0 Kudos

736 Views
takayuki_ishii
Contributor IV

Hello Jimmychan,

A result of PRE interrupt after boot Android N7.1.2 are following,

sabresd_6dq:/ # cat /proc/interrupts | grep pre
77: 0 0 0 0 GPC 90 Edge 21c8000.pre
78: 0 0 0 0 GPC 97 Edge 21c9000.pre
79: 0 0 0 0 GPC 98 Edge 21ca000.pre
80: 1956 0 0 0 GPC 99 Edge 21cb000.pre
sabresd_6dq:/ #

It is not changed after booting.

Best regards,

Ishii.

0 Kudos

736 Views
jimmychan
NXP TechSupport
NXP TechSupport

I got the reply from the expert team.

=========================

In android M6.1.0, PRE is used.

But in N7.1.2 and above, MXCFB_UPDATE_SCREEN is added in Linux Kernel, PRE is not used in the function.

=========================

0 Kudos