summaryrefslogtreecommitdiff
path: root/src/mongo/util/processinfo_linux.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
commit959575a5ca598bf5f37fb5cebe7ed1d80d3d71f7 (patch)
treeacc8d60aedb12b70048e676e8a7349deb0010db8 /src/mongo/util/processinfo_linux.cpp
parent76588293975fc059cf076779e4283e6ffaf8afff (diff)
New upstream version 6.0.20upstream
Diffstat (limited to 'src/mongo/util/processinfo_linux.cpp')
-rw-r--r--src/mongo/util/processinfo_linux.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp
index 3357687e6dd..7793011e901 100644
--- a/src/mongo/util/processinfo_linux.cpp
+++ b/src/mongo/util/processinfo_linux.cpp
@@ -427,7 +427,10 @@ public:
/**
* Get some details about the CPU
*/
- static void getCpuInfo(int& procCount, std::string& freq, std::string& features) {
+ static void getCpuInfo(int& procCount,
+ std::string& modelString,
+ std::string& freq,
+ std::string& features) {
procCount = 0;
@@ -439,6 +442,7 @@ public:
{"features", [&](const std::string& value) { features = value; }},
#else
{"processor", [&](const std::string& value) { procCount++; }},
+ {"model name", [&](const std::string& value) { modelString = value; }},
{"cpu MHz", [&](const std::string& value) { freq = value; }},
{"flags", [&](const std::string& value) { features = value; }},
#endif
@@ -664,6 +668,11 @@ void ProcessInfo::getExtraInfo(BSONObjBuilder& info) {
appendNumber("voluntary_context_switches", ru.ru_nvcsw);
appendNumber("involuntary_context_switches", ru.ru_nivcsw);
+
+ LinuxProc p(_pid);
+
+ // Append the number of thread in use
+ appendNumber("threads", p._nlwp);
}
/**
@@ -710,13 +719,13 @@ unsigned long countNumaNodes() {
void ProcessInfo::SystemInfo::collectSystemInfo() {
utsname unameData;
std::string distroName, distroVersion;
- std::string cpuFreq, cpuFeatures;
+ std::string cpuString, cpuFreq, cpuFeatures;
int cpuCount;
int physicalCores;
int cpuSockets;
std::string verSig = LinuxSysHelper::readLineFromFile("/proc/version_signature");
- LinuxSysHelper::getCpuInfo(cpuCount, cpuFreq, cpuFeatures);
+ LinuxSysHelper::getCpuInfo(cpuCount, cpuString, cpuFreq, cpuFeatures);
LinuxSysHelper::getNumPhysicalCores(physicalCores);
cpuSockets = LinuxSysHelper::getNumCpuSockets();
LinuxSysHelper::getLinuxDistro(distroName, distroVersion);
@@ -760,6 +769,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
bExtra.append("versionSignature", verSig);
bExtra.append("kernelVersion", unameData.release);
+ bExtra.append("cpuString", cpuString);
bExtra.append("cpuFrequencyMHz", cpuFreq);
bExtra.append("cpuFeatures", cpuFeatures);
bExtra.append("pageSize", static_cast<long long>(pageSize));