Hi,
I want to profile cpu call stack analysis on my Jetson TX2
Is it possible using the DS5 streamline performance analyzer?
Is there any tutorial in order to do it?
Thanks
Hi ShirB,
Profiling most Arm CPUs should be supported. We don't explicitly support the Denver 2 core in the TX2, so microarchitecture-specific performance counters will be missing, but hot-spot profiling should still work and you will get the architectural hardware PMU events.
Note that "Arm DS-5" is now quite old - there is a much newer version of Streamline in the newer "Arm DS" tool suite.
In terms of next steps, what type of system stack are you profiling - Android, Linux, bare-metal?Cheers,
Pete
Linux
How can I access the streamline via "Arm DS" tool suite, is it through the DS-5 Eclipse platform?
HI Peter Harris
I want to perform cpu call stack analysis in order to find bottlenecks in my code, I have a process the consume 200% cpu only on the jetson.
Maybe you can give me some reference to a tutorial on how I can do it
Short answer:
Linux target setup guide:
General Streamline User Guide:
HTH,Pete
Thanks @Pete,But you said that I should use the "Arm DS" tool suite.Are the instructions you sent relevant to this or to the DS-5?
BTW,
When using the DS-5,
I'm getting this error:
Read timed out java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:170) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.net.SocketInputStream.read(SocketInputStream.java:223) at java.io.DataInputStream.readByte(DataInputStream.java:265) at com.arm.streamline.databrowser.GatorTarget.readResponse(GatorTarget.java:364) at com.arm.streamline.databrowser.GatorTarget.pingCheck(GatorTarget.java:199) at com.arm.streamline.databrowser.TargetLauncher.useGatorTarget(TargetLauncher.java:318) at com.arm.streamline.databrowser.TargetLauncher.<init>(TargetLauncher.java:174) at com.arm.streamline.databrowser.CaptureController.startCapture(CaptureController.java:96) at com.arm.streamline.databrowser.TargetView.startCapture(TargetView.java:238) at com.arm.streamline.databrowser.TargetToolbar.lambda$0(TargetToolbar.java:53) at com.arm.streamline.databrowser.TargetToolbar$$Lambda$45/1829287142.buttonClicked(Unknown Source) at com.arm.streamline.widget.ImageButton.mouseUp(ImageButton.java:255) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:221) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5227) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4561) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4151) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at com.arm.streamline.application.Streamline.start(Streamline.java:169) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) at org.eclipse.equinox.launcher.Main.run(Main.java:1519) at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
Instructions are the same for both - DS is just a newer version than DS-5. (7.4 vs 6.9).
That looks like the host tool cannot connect to the device. Can you "ping" it on that IP address, and do you have any firewall software which could be stopping network traffic between the two?
Yes there is ping to the device and I can also perform ssh to it.
ssh is working so I dont think there is any software stopping netwrok traffic between the two.
Also I have seen that on the Jetson side there is this error when I'm trying to capture:
No driver has claimed ARMv8_Cortex_A57_cnt0:8No driver has claimed ARMv8_Cortex_A57_freq:-1