Integrate AFM with WAM
Description
Environment
Attachments
- 28 Nov 2018, 09:21 PM
- 26 Nov 2018, 10:04 AM
- 16 Nov 2018, 06:16 AM
- 14 Nov 2018, 12:52 PM
- 14 Nov 2018, 11:33 AM
- 14 Nov 2018, 11:33 AM
- 13 Nov 2018, 01:47 PM
- 01 Nov 2018, 08:35 PM
- 01 Nov 2018, 08:35 PM
is blocked by
Activity
Walt Miner February 11, 2019 at 11:11 PM
Close for FF 6.0.4 and GG 7.0.0
AK November 30, 2018 at 5:48 AM(edited)
The main goal of this issue was to track the integration of AFM with WAM which is completed.
Moreover, this issue is not reproducible on minnowboard. It is not even reproducible on all Renesas m3 board.
ticket https://lf-automotivelinux.atlassian.net/browse/SPEC-1995#icft=SPEC-1995 specifically to handle issue related to the m3 board.
AK November 30, 2018 at 5:40 AM
From CHROME_IPC_LOGGIGN its confirmed that message from BROWSER to GPU for GpuMsg_EstablishChannel is not completed and respective message as the reply from GPU to BROWSER is not received.
Other than that, pvrtrace tracing shows that FRAMES are not getting recorded for the second application. There is not recording related log in journal and PVRTRACE viewer doesn't show any frame painted related to the second application.
AK November 28, 2018 at 7:26 PM(edited)
Analyzing GPU trace using pvrtrace utility.
Documentation :
http://cdn.imgtec.com/sdk-documentation/PVRTrace.User+Manual.pdf
https://www.imgtec.com/developers/powervr-sdk-tools/pvrtrace/
How to setup :
1. Download pvrtrace from https://www.imgtec.com/developers/powervr-sdk-tools/installers/
2. Copy /opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRHub to HOME folder of image on sdcard.
sudo cp -r /opt/Imagination/PowerVR_Graphics/PowerVR_Tools_xxxxx_Rxxxx/PVRHub $TARGET_FILESYSTEM/home/0
3. Perform steps below :
root@m3ulcb:~/PVRHub/Linux_armv8_64/PVRTrace/Recorder# ln -s libEGL.so libEGL.so.1
root@m3ulcb:~/PVRHub/Linux_armv8_64/PVRTrace/Recorder# ln -s libGLESv2.so libGLESv2.so.2
root@m3ulcb:~/PVRHub/Linux_armv8_64/PVRTrace/Recorder# rm libGLESv1_CM.so libGLES_CM.so
4.
root@m3ulcb:~/PVRHub/Linux_armv8_64/PVRTrace/Recorder# ls -l
total 7228
-rw-r--r-- 1 root root 759 Sep 10 2018 _SKELETON_CONFIG.json
-rwxr-xr-x 1 root root 21600 Sep 10 2018 libEGL.so
lrwxrwxrwx. 1 root root 9 May 23 10:01 libEGL.so.1 -> libEGL.so
-rwxr-xr-x 1 root root 118505 Sep 10 2018 libGLESv2.so
lrwxrwxrwx. 1 root root 12 May 23 10:02 libGLESv2.so.2 ->
libGLESv2.so
-rwxr-xr-x 1 root root 44355 Sep 10 2018 libOpenCL.so
-rwxr-xr-x 1 root root 7201235 Sep 10 2018 libPVRTrace.so
5.
root@m3ulcb:~/PVRHub/Linux_armv8_64/PVRTrace/Recorder# cd ../../
root@m3ulcb:~/PVRHub/Linux_armv8_64# source Scripts/envsetup.sh
6. Modify WebAppMgr.service:
ExecStart=/home/0/PVRHub/Linux_armv8_64/pvr_trace /usr/bin/WebAppMgr --no-sandbox --remote-debugging-port=9998 --user-data-dir=/home/0/wamdata --webos-wam
AK November 26, 2018 at 10:16 AM
Hi @Harunobu Kurokawa san,
I would like to trace out GPU calls and analyze further. Do we have any Renesas specific tools to debug/ analyze?
WAM follows the Chromium process model, which can be summarized as follows:
There is one render process per open site/web application.
There is one common browser process, which performs I/O and networking for all sites/webapps.
As a consequence of this process model, the browser process must have access to the APIs (via WebSockets) requested by all of the running webapps. This behavior doesn't match the AFM security model, where each application process is expected to access only the authorized APIs and this is enforced via SMACK labels.
The proposal to solve this problem is to create a proxy process for each render process, which would have the correct SMACK label for the corresponding webapp to access its authorized APIs. The browser process would redirect all the networking requested by render processes to the proxy process and wouldn't have special permissions.
Repositories :
WebAppMgr : https://github.com/webosose/wam Branch : @1.agl.flounder
meta-agl-lge : https://github.com/webosose/meta-agl-lge Branch : flounder
chromium53 : https://github.com/webosose/chromium53 Branch : @1.agl.flounder
Hardware :
Renesas m3 board : Reproducible
Minnowboard : Non reproducible
Raspberry pi : -