This application queries remote services running on each of the remote RTOS cores and reports instantaneous memory utilization of the various memory regions for each remote core. This utility is helpful to see the remote core memory utilization required for running one or more applications on the HLOS.
It can also be used to quickly identify if running an application on the HLOS incurrs any memory leaks on a remote core. To do this, one simply needs run this utility before and after running an application, and then compare the printout between the two runs to see if memory utilization has changed.
Upon booting of different remote cores, some of the local memory sections are initialized and allocated according to the compiled programs running on each core (regardless of what is running on the HLOS). This is why if you run this utility after the HLOS finishes booting before running any other program, there is some of the remote core local memory regions already reserved.
Likewise, when an OpenVX graph is created and "validated", some of the node which run on the remote cores may require to reserve some persistent or scratch memory. This is taken from the pool of remote local carveout. If this memory runs out, then the OpenVX vxVerifyGraph() function will fail, which should prompt the developer to carve out larger memory carveouts for that specific remote core and recompile so that the application can run with sufficient memory. Upon deleting the graph, any memory reserved by associated nodes shall be freed, thus returning the memory allocation state to what it was before running creating the graph and running the application.
Platform | Linux x86_64 | Linux+RTOS mode | QNX+RTOS mode | SoC |
---|---|---|---|---|
Support | NO | YES | YES | J721e / J721S2 / J784S4 |
Shown below is a example output from running this utility: