Skip to content

Commit

Permalink
Fixes cross-platform building (func update shadowing), removes goto…
Browse files Browse the repository at this point in the history
…p-builder trigger.
  • Loading branch information
xxxserxxx committed Mar 5, 2021
1 parent efcb0e9 commit ff2e7e2
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 13 deletions.
8 changes: 0 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,6 @@ jobs:
run: echo "##[set-output name=tag;]$(echo ${GITHUB_REF##*/})"
id: tag_name

- name: Trigger extensions build
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
repository: xxxserxxx/gotop-builder
event-type: my-release
client-payload: '{"tag": "${{ steps.tag_name.outputs.tag }}"}'

- name: Update Homebrew recipe
uses: peter-evans/repository-dispatch@v1
with:
Expand Down
10 changes: 5 additions & 5 deletions devices/nvidia.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@ func startNVidia(vars map[string]string) error {
}
}
// update once to populate the device names, for the widgets.
update()
updateNvidia()
// Fork off a long-running job to call the nvidia tool periodically,
// parse out the values, and put them in the cache.
go func() {
timer := time.Tick(refresh)
for range timer {
update()
updateNvidia()
}
}()
return nil
Expand All @@ -121,7 +121,7 @@ var (

var nvidiaLock sync.Mutex

// update calls the nvidia tool, parses the output, and caches the results
// updateNvidia calls the nvidia tool, parses the output, and caches the results
// in the various _* maps. The metric data parsed is: name, index,
// temperature.gpu, utilization.gpu, utilization.memory, memory.total,
// memory.free, memory.used
Expand All @@ -130,8 +130,8 @@ var nvidiaLock sync.Mutex
// error and returns immediately. We expect exec errors only when the tool
// isn't available, or when it fails for some reason; no exec error cases
// are recoverable. This does **not** stop the cache job; that will continue
// to run and continue to call update().
func update() {
// to run and continue to call updateNvidia().
func updateNvidia() {
bs, err := exec.Command(
"nvidia-smi",
"--query-gpu=name,index,temperature.gpu,utilization.gpu,memory.total,memory.used",
Expand Down
17 changes: 17 additions & 0 deletions docs/nvidia-extension.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# gotop NVidia extension

Provides NVidia GPU data to gotop

To enable it, either run gotop with the `--nvidia` flag, or add the line `nvidia=true` to `gotop.config`.

## Dependencies

- [nvidia-smi](https://wiki.archlinux.org/index.php/NVIDIA/Tips_and_tricks#nvidia-smi)

## Configuration

The refresh rate of NVidia data is controlled by the `nvidia-refresh` parameter in the configuration file. This is a Go `time.Duration` format, for example `2s`, `500ms`, `1m`, etc.

## Alternatives to test

https://github.com/mindprince/gonvml

0 comments on commit ff2e7e2

Please sign in to comment.