Commit Graph

947 Commits

Author SHA1 Message Date
Jakob P. Liljenberg
52a415a93d
Merge pull request #550 from Superty/main
Make process niceness signed ("nice" can take negative values)
2023-07-16 16:05:18 +02:00
Jakob P. Liljenberg
c29fc009bc
Merge pull request #565 from nobounce/nb/makefile-fix-version
Bump the makefile version in the printed banner
2023-07-16 16:04:04 +02:00
Jakob P. Liljenberg
53684a0a7a
Merge pull request #564 from simplepad/fix-makefile
fix makefile
2023-07-16 16:02:15 +02:00
Jakob P. Liljenberg
4631508ac4
Merge pull request #547 from nobounce/collect-loadavg-function
Improve load average retrieval on linux and prefer `emplace_back`
2023-07-16 15:59:57 +02:00
romner
85fb28cee6 Fix RSMI_STATIC=true and add GPU section to README.md 2023-07-14 02:39:44 +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
zackiloco
77bd1569ff Fix the makefile version in the printed banner 2023-06-28 01:49:43 +02:00
simplepad
8ad8463bc5
add g++12 (without a dash) detection, fix Makefile not accounting for a possibly missing gcc 2023-06-27 00:48:44 +03:00
romner-set
3fad8a6fde Add GPU options 2023-06-26 13:10:31 +02:00
rr
8466bf3a18 FreeBSD swap info 2023-06-21 21:12:36 +03: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
Jakob P. Liljenberg
7e50b03e39
Merge pull request #510 from nobounce/LLVM
Support compiling with LLVM
2023-06-15 17:45:05 +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
85a10f0305 Fix ROCm SMI makefile flags 2023-06-02 16:14:24 +02:00
romner
cd6979277d Fix error when ROCm SMI static compilation fails 2023-06-02 15:44:44 +02:00
romner
daaa45324f Load ROCm SMI dynamically by default, optionally statically compile and link 2023-06-02 15:34:12 +02:00
aristocratos
093edfe948 Minor changes in wording... 2023-06-01 19:49:00 +02:00
aristocratos
b9a4d31fa4 Fix Makefile dependency order and layout 2023-06-01 19:37:53 +02:00
romner
a0163ce220 Statically link ROCm SMI 2023-06-01 16:42:02 +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
Arjun P
4eddc24d74 Make process niceness signed ("nice" can take negative values) 2023-05-30 15:56:00 +01:00
Jakob P. Liljenberg
e269046d3b
Merge pull request #546 from dorrellmw/main
Fix integer overflows in btop_collect.cpp
2023-05-26 08:50:36 +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
dec9fa1663 Enable Clang as a compiler.
Clang 16.0.0 or later can now be used to compile btop. Simply call
`CXX=clang++` make.

If the CXX variable contains an incompatible Clang version try to
fallback to GCC.
2023-05-25 23:00:07 +02: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
Jakob P. Liljenberg
808b8c1824
Merge pull request #544 from nobounce/include-by-isystem
Include 3rd party headers with isystem to silence warnings.
2023-05-25 19:19:38 +02:00
Jakob P. Liljenberg
4e30a976fc
Merge pull request #540 from cpalv/load_average
update cpu load average display
2023-05-25 16:42:43 +02:00
zackiloco
c996f50751 Include 3rd party headers with isystem to silence warnings. 2023-05-25 13:53:18 +02:00
Jakob P. Liljenberg
a1a0e4ce35
Merge pull request #525 from gwena/main
Fix link to the themes folder
2023-05-25 12:43:19 +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
Jakob P. Liljenberg
468993817a
Merge pull request #537 from Syndelis/chore/fmt-submodule
Use `fmt` as a git submodule
2023-05-23 17:32:58 +02:00
Brenno Lemos
1567a791a8 chore: remove spaces before language in code blocks 2023-05-23 10:28:49 -03:00
Brenno Lemos
dabb7dbd52 chore: update readme to include --recursive 2023-05-23 10:25:26 -03:00
Brenno Lemos
f0ef3c4ca4 chore: adjust worflows to recursively clone the repository 2023-05-23 10:14:32 -03:00
Brenno Lemos
816c4e43fd feat: prefer fmt submodule over copy-and-paste headers 2023-05-23 10:10:36 -03: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
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