@@ -1147,20 +1147,22 @@ func prepareTarget(targetContext *targetContext, localTempDir string, localPerfP
11471147 var err error
11481148 _ = statusUpdate (myTarget .GetName (), "configuring target" )
11491149 // are PMUs being used on target?
1150- if family , err := myTarget .GetFamily (); err == nil && cpus .IsIntelCPUFamilyStr (family ) {
1151- output , err := script .RunScript (myTarget , script .GetScriptByName (script .PMUBusyScriptName ), localTempDir )
1152- if err != nil {
1153- err = fmt .Errorf ("failed to check if PMUs are in use: %w" , err )
1154- _ = statusUpdate (myTarget .GetName (), fmt .Sprintf ("Error: %v" , err ))
1155- targetContext .err = err
1156- channelError <- targetError {target : myTarget , err : err }
1157- return
1158- }
1159- for line := range strings .SplitSeq (output .Stdout , "\n " ) {
1160- // if one of the PMU MSR registers is active, then the PMU is in use (ignore cpu_cycles)
1161- if strings .Contains (line , "Active" ) && ! strings .Contains (line , "0x30a" ) {
1162- slog .Warn ("PMU is in use on target" , slog .String ("target" , myTarget .GetName ()), slog .String ("line" , line ))
1163- _ = statusUpdate (myTarget .GetName (), "Warning: PMU in use, see log for details" )
1150+ if ! flagNoRoot {
1151+ if family , err := myTarget .GetFamily (); err == nil && cpus .IsIntelCPUFamilyStr (family ) {
1152+ output , err := script .RunScript (myTarget , script .GetScriptByName (script .PMUBusyScriptName ), localTempDir )
1153+ if err != nil {
1154+ err = fmt .Errorf ("failed to check if PMUs are in use: %w" , err )
1155+ _ = statusUpdate (myTarget .GetName (), fmt .Sprintf ("Error: %v" , err ))
1156+ targetContext .err = err
1157+ channelError <- targetError {target : myTarget , err : err }
1158+ return
1159+ }
1160+ for line := range strings .SplitSeq (output .Stdout , "\n " ) {
1161+ // if one of the PMU MSR registers is active, then the PMU is in use (ignore cpu_cycles)
1162+ if strings .Contains (line , "Active" ) && ! strings .Contains (line , "0x30a" ) {
1163+ slog .Warn ("PMU is in use on target" , slog .String ("target" , myTarget .GetName ()), slog .String ("line" , line ))
1164+ _ = statusUpdate (myTarget .GetName (), "Warning: PMU in use, see log for details" )
1165+ }
11641166 }
11651167 }
11661168 }
0 commit comments