This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Use Arm DS5 streamline performance analyzer on TX2

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

Parents
  • 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

     

Reply
  • 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

     

Children
  • How can I access the streamline via "Arm DS" tool suite, is it through the DS-5 Eclipse platform?

  • HI

    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

    Thanks

  • Short answer:

    • Connect your host and target to the network
    • Target: Run "gatord" on your target as root
    • Host: Enter the target IP address, port 8080
    • Click start capture

    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)

    Thanks

  • 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:8
    No driver has claimed ARMv8_Cortex_A57_freq:-1