Commit Graph

419 Commits

Author SHA1 Message Date
romner 346c9e479b Fix GPU text overflow in CPU panel, again 2023-07-19 16:53:58 +02:00
romner 3a5e5fd5d3 Improve 0-10 key input 2023-07-19 16:22:45 +02:00
romner 972b2b6a01 Fix available boxes in menu & config description 2023-07-19 15:54:35 +02:00
romner 1f73453aec Fix crashes when trying to open nth GPU box with only n-1 GPUs in the system 2023-07-19 15:34:23 +02:00
romner 46c6be0a29 Fix GPU horizontal text overflow in CPU panel 2023-07-16 17:19:09 +02:00
romner 85fb28cee6 Fix RSMI_STATIC=true and add GPU section to README.md 2023-07-14 02:39:44 +02:00
romner-set 3fad8a6fde Add GPU options 2023-06-26 13:10:31 +02:00
romner-set 746f716a02 Remove lib/rocm_smi_lib and add instructions for obtaining it to README 2023-06-16 11:11:57 +02:00
romner d8ebbe1181 Join NVML PCIe threads only if PCIe TX/RX is supported by GPU 2023-06-08 20:24:01 +02:00
romner be10989151 Parallelize NVML PCIe TX/RX data collection 2023-06-06 19:47:07 +02:00
aristocratos 85892a9fe3 Fix type: ulong -> size_t and compare std::cmp_less 2023-06-05 21:59:26 +02:00
romner daaa45324f Load ROCm SMI dynamically by default, optionally statically compile and link 2023-06-02 15:34:12 +02:00
romner-set b2df0696fd Dynamically load NVML 2023-06-01 03:41:56 +02:00
romner-set 547f17dda3 Add more GPU graph types to the CPU panel 2023-05-30 18:24:50 +02:00
romner-set 842c761a73 Fix crash when all GPU panels are open but the CPU panel is closed 2023-05-22 09:46:20 +02:00
romner 8c96bd51e9 Handle GPUs which cannot report certain stats in GPU panel 2023-05-21 20:34:47 +02:00
romner 414d7eb94c Handle GPUs which cannot report certain stats in btop_collect.cpp and CPU panel 2023-05-21 18:02:50 +02:00
aristocratos 005de97e6d Add missing fmt prefixes 2023-05-21 13:58:11 +02:00
aristocratos 1fee2bc08b Add DebugTimer class and change some Logger::error calls to Logger::debug 2023-05-21 13:52:19 +02:00
aristocratos 2e68c0b916 Fixed key > gpu_names check 2023-05-20 17:27:20 +02:00
aristocratos 04ed16a9f6 Merged changes from main 2023-05-20 17:15:45 +02:00
aristocratos 8c710a2b68 Makefile auto detection and initial logic for excluding gpu code when libs are missing 2023-05-20 01:41:04 +02:00
aristocratos 8bae1ec092 Fixed debug timer for gpu 2023-05-20 00:13:00 +02:00
romner-set 01acfd603e Bind GPU panel to 5,6,7,8,9,0 and fully implement multi-GPU support 2023-05-19 16:42:32 +02:00
romner 22a463976d Add GPU info to CPU panel 2023-05-18 16:07:05 +02:00
romner-set c352bf2613 Add ROCm SMI backend for AMD GPU support 2023-05-15 19:42:55 +02:00
romner-set 917d568a77 Add multi-GPU support for NVML data collection 2023-05-15 13:58:54 +02:00
romner 2d27f2ff61 Fix crash when no nvidia GPU is detected 2023-05-14 17:40:50 +02:00
romner 0e0025a2c3 Update makefile text, fix typo and adhere to contibuting guidelines 2023-05-14 17:31:39 +02:00
romner bcffcdf19f Make GPU window's size dynamic and integrate it with the rest of btop 2023-05-14 16:53:06 +02:00
romner 95b3228308 Improve GPU side panel 2023-05-13 19:41:51 +02:00
romner adcdc583b0 Add GPU side panel 2023-05-13 00:27:23 +02:00
romner d522a91ef4 Add rudimentary, fullscreen single-GPU NVML utilization graph 2023-05-12 19:34:47 +02:00
Jakob P. Liljenberg ac17f34580
Merge pull request #560 from rrveex/main
FreeBSD swap info
2023-07-16 16:42:16 +02:00
zackiloco 6eb37601d7 Retrieve load average from libc and use emplace_back where appropriate
Get the load average from libc and adjust the internal API. This has
less overhead than opening /proc/loadavg.

Favor emplace_back over push_back, in general it has the chance to not
create a temporary object.
2023-07-05 13:23:11 +02:00
rr 8466bf3a18 FreeBSD swap info 2023-06-21 21:12:36 +03:00
Jakob P. Liljenberg 7e50b03e39
Merge pull request #510 from nobounce/LLVM
Support compiling with LLVM
2023-06-15 17:45:05 +02:00
Mitchell Dorrell 3c6929b025 Fix integer overflows in btop_collect.cpp
Correct data types in calls to std::accumulate(). The "bandwidth" deques
have type "long long", so the initial value of the accumulator (0) must
also be "long long" (i.e., "0ll") to prevent integer overflows. Also,
since since the bandwidth deques are (signed) "long long", the avg_speed
should presumably be a signed "long long" instead of an unsigned
"uint64_t". The previous behavior was for large bandwidth values to
overflow the accumulator, resulting in a negative total, which then was
cast to be a huge "uint64_t" value. As a consequence, the network graph
autoscaling was broken for large bandwidths.
2023-05-26 01:26:21 -04:00
zackiloco a5e4969d7e Remove pthread_exit().
Returning from the thread this way prevents local variables to be
destructed correctly since pthread_exit is marked noreturn.

This fixes a segmentation fault with glibc and llvm-libunwind on exit.
2023-05-25 23:00:07 +02:00
zackiloco a2fa9da073 Replace `statvfs64` with `statvfs` and define `_FILE_OFFSET_BITS=64`.
On my musl system statvfs64 is not exposed by default. The musl FAQ
recommends against using type64_t types, see:
https://wiki.musl-libc.org/faq.html#Q:-Do-I-need-to-define-%3Ccode%3E_LARGEFILE64_SOURCE%3C/code%3E-to-get-64bit-%3Ccode%3Eoff_t%3C/code%3E?.

Defining `_FILE_OFFSET_BITS=64` and using type_t lets type_t use the 64
bit interface, see:
https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html#index-_005fFILE_005fOFFSET_005fBITS.
2023-05-25 23:00:07 +02:00
zackiloco 7dac8505c4 Include <codecvt> required by Clang. 2023-05-25 23:00:07 +02:00
zackiloco 34ae6d96d5 Move `#include` to top level and exclude Clang from compiler version
check.

Clang cannot handle <semaphore> being included in a namespace, which is
also unadvised see:
https://softwareengineering.stackexchange.com/a/335261.

Using the fallback <semaphore.h> is only meant for GCC 10, but Clang
defines `__GNUC__ = 4` so exclude Clang.
2023-05-25 23:00:07 +02:00
zackiloco 922b6475ae Insert `std::` for warning `unqualified call to std::move`. 2023-05-25 23:00:07 +02:00
cpalv 1039bd5b5d amend! update cpu load average display
update cpu load average display

applied suggested changes
2023-05-24 19:51:43 -05:00
cpalv 5d2f7420c3 update cpu load average display 2023-05-23 19:06:50 -05:00
aristocratos b0fc63537b println -> fmt::println 2023-05-21 12:26:48 +02:00
aristocratos fbc349da2a Readd using namespace fmt 2023-05-21 12:11:29 +02:00
aristocratos bd688e24bf Add fmt prefix for fmtlib 2023-05-21 11:58:52 +02:00
Steven Xu 7ca1cc533a fix: prefix with `fmt::` to fix ambiguous call to `format()`, that also refers to `/usr/include/c++/13.1.1/format` 2023-05-21 19:33:44 +10:00
aristocratos 09c075e06c Debug times thousand separator 2023-05-21 01:11:35 +02:00