Skip to content

Commit 66c5219

Browse files
authored
show preparing message in stdout status update (#575)
Signed-off-by: Harper, Jason M <[email protected]>
1 parent 89ea0bf commit 66c5219

File tree

5 files changed

+17
-16
lines changed

5 files changed

+17
-16
lines changed

cmd/config/config.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,10 +296,7 @@ func printConfig(myTargets []target.Target, localTempDir string) (err error) {
296296
// collectOnTarget runs the scripts on the target and sends the results to the appropriate channels
297297
func collectOnTarget(myTarget target.Target, scriptsToRun []script.ScriptDefinition, localTempDir string, channelTargetScriptOutputs chan common.TargetScriptOutputs, channelError chan error, statusUpdate progress.MultiSpinnerUpdateFunc) {
298298
// run the scripts on the target
299-
if statusUpdate != nil {
300-
_ = statusUpdate(myTarget.GetName(), "collecting configuration")
301-
}
302-
scriptOutputs, err := script.RunScripts(myTarget, scriptsToRun, true, localTempDir)
299+
scriptOutputs, err := script.RunScripts(myTarget, scriptsToRun, true, localTempDir, statusUpdate, "collecting configuration")
303300
if err != nil {
304301
if statusUpdate != nil {
305302
_ = statusUpdate(myTarget.GetName(), fmt.Sprintf("error collecting configuration: %v", err))

cmd/config/set.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func setLlcSize(desiredLlcSize float64, myTarget target.Target, localTempDir str
126126
scripts = append(scripts, script.GetScriptByName(script.LspciBitsScriptName))
127127
scripts = append(scripts, script.GetScriptByName(script.LspciDevicesScriptName))
128128
scripts = append(scripts, script.GetScriptByName(script.L3CacheWayEnabledName))
129-
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir)
129+
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir, nil, "")
130130
if err != nil {
131131
completeChannel <- setOutput{goRoutineID: goRoutineId, err: fmt.Errorf("failed to run scripts on target: %w", err)}
132132
return
@@ -296,7 +296,7 @@ func setUncoreDieFrequency(maxFreq bool, computeDie bool, uncoreFrequency float6
296296
// build list of compute or IO dies
297297
scripts := []script.ScriptDefinition{}
298298
scripts = append(scripts, script.GetScriptByName(script.UncoreDieTypesFromTPMIScriptName))
299-
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir)
299+
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir, nil, "")
300300
if err != nil {
301301
completeChannel <- setOutput{goRoutineID: goRoutineId, err: fmt.Errorf("failed to run scripts on target: %w", err)}
302302
return
@@ -354,7 +354,7 @@ func setUncoreFrequency(maxFreq bool, uncoreFrequency float64, myTarget target.T
354354
// Depends: []string{"rdmsr"},
355355
// Lkms: []string{"msr"},
356356
})
357-
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir)
357+
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir, nil, "")
358358
if err != nil {
359359
completeChannel <- setOutput{goRoutineID: goRoutineId, err: fmt.Errorf("failed to run scripts on target: %w", err)}
360360
return
@@ -639,7 +639,7 @@ func setPrefetcher(enableDisable string, myTarget target.Target, localTempDir st
639639
scripts = append(scripts, script.GetScriptByName(script.LscpuScriptName))
640640
scripts = append(scripts, script.GetScriptByName(script.LspciBitsScriptName))
641641
scripts = append(scripts, script.GetScriptByName(script.LspciDevicesScriptName))
642-
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir)
642+
outputs, err := script.RunScripts(myTarget, scripts, true, localTempDir, nil, "")
643643
if err != nil {
644644
completeChannel <- setOutput{goRoutineID: goRoutineId, err: fmt.Errorf("failed to run scripts on target: %w", err)}
645645
return

cmd/metrics/metadata.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func (c *X86MetadataCollector) CollectMetadata(myTarget target.Target, noRoot bo
163163
return Metadata{}, fmt.Errorf("failed to get metadata scripts: %v", err)
164164
}
165165
// run the scripts
166-
scriptOutputs, err := script.RunScripts(myTarget, metadataScripts, true, localTempDir) // nosemgrep
166+
scriptOutputs, err := script.RunScripts(myTarget, metadataScripts, true, localTempDir, nil, "") // nosemgrep
167167
if err != nil {
168168
return Metadata{}, fmt.Errorf("failed to run metadata scripts: %v", err)
169169
}
@@ -347,7 +347,7 @@ func (c *ARMMetadataCollector) CollectMetadata(myTarget target.Target, noRoot bo
347347
return Metadata{}, fmt.Errorf("failed to get metadata scripts: %v", err)
348348
}
349349
// run the scripts
350-
scriptOutputs, err := script.RunScripts(myTarget, metadataScripts, true, localTempDir) // nosemgrep
350+
scriptOutputs, err := script.RunScripts(myTarget, metadataScripts, true, localTempDir, nil, "") // nosemgrep
351351
if err != nil {
352352
return Metadata{}, fmt.Errorf("failed to run metadata scripts: %v", err)
353353
}

internal/common/common.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -580,10 +580,7 @@ func collectOnTarget(myTarget target.Target, scriptsToRun []script.ScriptDefinit
580580
} else if duration != "0" && duration != "" {
581581
status += fmt.Sprintf(" for %s seconds", duration)
582582
}
583-
if statusUpdate != nil {
584-
_ = statusUpdate(myTarget.GetName(), status)
585-
}
586-
scriptOutputs, err := script.RunScripts(myTarget, scriptsToRun, true, localTempDir)
583+
scriptOutputs, err := script.RunScripts(myTarget, scriptsToRun, true, localTempDir, statusUpdate, status)
587584
if err != nil {
588585
if statusUpdate != nil {
589586
_ = statusUpdate(myTarget.GetName(), fmt.Sprintf("error collecting data: %v", err))

internal/script/script.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"text/template"
1818

1919
"perfspect/internal/cpus"
20+
"perfspect/internal/progress"
2021
"perfspect/internal/target"
2122
"perfspect/internal/util"
2223
)
@@ -37,7 +38,7 @@ func RunScript(myTarget target.Target, script ScriptDefinition, localTempDir str
3738
err := fmt.Errorf("the \"%s\" script is not intended for the target processor", script.Name)
3839
return ScriptOutput{}, err
3940
}
40-
scriptOutputs, err := RunScripts(myTarget, []ScriptDefinition{script}, false, localTempDir)
41+
scriptOutputs, err := RunScripts(myTarget, []ScriptDefinition{script}, false, localTempDir, nil, "")
4142
if scriptOutputs == nil {
4243
return ScriptOutput{}, err
4344
}
@@ -49,7 +50,7 @@ func RunScript(myTarget target.Target, script ScriptDefinition, localTempDir str
4950
}
5051

5152
// RunScripts runs a list of scripts on a target and returns the outputs of each script as a map with the script name as the key.
52-
func RunScripts(myTarget target.Target, scripts []ScriptDefinition, ignoreScriptErrors bool, localTempDir string) (map[string]ScriptOutput, error) {
53+
func RunScripts(myTarget target.Target, scripts []ScriptDefinition, ignoreScriptErrors bool, localTempDir string, statusUpdate progress.MultiSpinnerUpdateFunc, collectingStatus string) (map[string]ScriptOutput, error) {
5354
// drop scripts that should not be run and separate scripts that must run sequentially from those that can be run in parallel
5455
canElevate := myTarget.CanElevatePrivileges()
5556
var sequentialScripts []ScriptDefinition
@@ -70,6 +71,9 @@ func RunScripts(myTarget target.Target, scripts []ScriptDefinition, ignoreScript
7071
}
7172
}
7273
// prepare target to run scripts by copying scripts and dependencies to target and installing LKMs
74+
if statusUpdate != nil {
75+
_ = statusUpdate(myTarget.GetName(), "preparing to collect data")
76+
}
7377
installedLkms, err := prepareTargetToRunScripts(myTarget, append(sequentialScripts, parallelScripts...), localTempDir, false)
7478
if err != nil {
7579
err = fmt.Errorf("error while preparing target to run scripts: %v", err)
@@ -83,6 +87,9 @@ func RunScripts(myTarget target.Target, scripts []ScriptDefinition, ignoreScript
8387
}
8488
}()
8589
}
90+
if statusUpdate != nil {
91+
_ = statusUpdate(myTarget.GetName(), collectingStatus)
92+
}
8693
// if there's only 1 parallel script, run it sequentially
8794
if len(parallelScripts) == 1 {
8895
slog.Debug("running single parallel script sequentially", slog.String("script", parallelScripts[0].Name))

0 commit comments

Comments
 (0)