From ff2e7e22356625a423218a57f2da4ccebe613541 Mon Sep 17 00:00:00 2001 From: "Sean E. Russell" Date: Fri, 5 Mar 2021 16:28:53 -0600 Subject: [PATCH] Fixes cross-platform building (`func update` shadowing), removes gotop-builder trigger. --- .github/workflows/release.yml | 8 -------- devices/nvidia.go | 10 +++++----- docs/nvidia-extension.md | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 docs/nvidia-extension.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index caa2854..6c15c8d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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: diff --git a/devices/nvidia.go b/devices/nvidia.go index 8f4b21e..f9f421d 100644 --- a/devices/nvidia.go +++ b/devices/nvidia.go @@ -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 @@ -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 @@ -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", diff --git a/docs/nvidia-extension.md b/docs/nvidia-extension.md new file mode 100644 index 0000000..196d473 --- /dev/null +++ b/docs/nvidia-extension.md @@ -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