aboutsummaryrefslogtreecommitdiff
path: root/tools/debugserver/source/MacOSX/MachTask.mm
diff options
context:
space:
mode:
Diffstat (limited to 'tools/debugserver/source/MacOSX/MachTask.mm')
-rw-r--r--tools/debugserver/source/MacOSX/MachTask.mm67
1 files changed, 14 insertions, 53 deletions
diff --git a/tools/debugserver/source/MacOSX/MachTask.mm b/tools/debugserver/source/MacOSX/MachTask.mm
index 1d177bd53cb7..d05f50029f16 100644
--- a/tools/debugserver/source/MacOSX/MachTask.mm
+++ b/tools/debugserver/source/MacOSX/MachTask.mm
@@ -348,23 +348,15 @@ std::string MachTask::GetProfileData(DNBProfileDataScanType scanType) {
threads_used_usec);
}
-#if defined(HOST_VM_INFO64_COUNT)
vm_statistics64_data_t vminfo;
-#else
- struct vm_statistics vminfo;
-#endif
- uint64_t physical_memory;
- mach_vm_size_t rprvt = 0;
- mach_vm_size_t rsize = 0;
- mach_vm_size_t vprvt = 0;
- mach_vm_size_t vsize = 0;
- mach_vm_size_t dirty_size = 0;
- mach_vm_size_t purgeable = 0;
- mach_vm_size_t anonymous = 0;
+ uint64_t physical_memory = 0;
+ uint64_t anonymous = 0;
+ uint64_t phys_footprint = 0;
+ uint64_t memory_cap = 0;
if (m_vm_memory.GetMemoryProfile(scanType, task, task_info,
m_process->GetCPUType(), pid, vminfo,
- physical_memory, rprvt, rsize, vprvt, vsize,
- dirty_size, purgeable, anonymous)) {
+ physical_memory, anonymous,
+ phys_footprint, memory_cap)) {
std::ostringstream profile_data_stream;
if (scanType & eProfileHostCPU) {
@@ -413,57 +405,28 @@ std::string MachTask::GetProfileData(DNBProfileDataScanType scanType) {
profile_data_stream << "total:" << physical_memory << ';';
if (scanType & eProfileMemory) {
-#if defined(HOST_VM_INFO64_COUNT) && defined(_VM_PAGE_SIZE_H_)
static vm_size_t pagesize = vm_kernel_page_size;
-#else
- static vm_size_t pagesize;
- static bool calculated = false;
- if (!calculated) {
- calculated = true;
- pagesize = PageSize();
- }
-#endif
-/* Unused values. Optimized out for transfer performance.
-profile_data_stream << "wired:" << vminfo.wire_count * pagesize << ';';
-profile_data_stream << "active:" << vminfo.active_count * pagesize << ';';
-profile_data_stream << "inactive:" << vminfo.inactive_count * pagesize << ';';
- */
-#if defined(HOST_VM_INFO64_COUNT)
// This mimicks Activity Monitor.
uint64_t total_used_count =
(physical_memory / pagesize) -
(vminfo.free_count - vminfo.speculative_count) -
vminfo.external_page_count - vminfo.purgeable_count;
-#else
- uint64_t total_used_count =
- vminfo.wire_count + vminfo.inactive_count + vminfo.active_count;
-#endif
profile_data_stream << "used:" << total_used_count * pagesize << ';';
- /* Unused values. Optimized out for transfer performance.
- profile_data_stream << "free:" << vminfo.free_count * pagesize << ';';
- */
-
- profile_data_stream << "rprvt:" << rprvt << ';';
- /* Unused values. Optimized out for transfer performance.
- profile_data_stream << "rsize:" << rsize << ';';
- profile_data_stream << "vprvt:" << vprvt << ';';
- profile_data_stream << "vsize:" << vsize << ';';
- */
-
- if (scanType & eProfileMemoryDirtyPage)
- profile_data_stream << "dirty:" << dirty_size << ';';
if (scanType & eProfileMemoryAnonymous) {
- profile_data_stream << "purgeable:" << purgeable << ';';
profile_data_stream << "anonymous:" << anonymous << ';';
}
+
+ profile_data_stream << "phys_footprint:" << phys_footprint << ';';
}
-
-// proc_pid_rusage pm_sample_task_and_pid pm_energy_impact needs to be tested
-// for weakness in Cab
+
+ if (scanType & eProfileMemoryCap) {
+ profile_data_stream << "mem_cap:" << memory_cap << ';';
+ }
+
#ifdef LLDB_ENERGY
- if ((scanType & eProfileEnergy) && (pm_sample_task_and_pid != NULL)) {
+ if (scanType & eProfileEnergy) {
struct rusage_info_v2 info;
int rc = proc_pid_rusage(pid, RUSAGE_INFO_V2, (rusage_info_t *)&info);
if (rc == 0) {
@@ -993,8 +956,6 @@ nub_bool_t MachTask::DeallocateMemory(nub_addr_t addr) {
return false;
}
-nub_size_t MachTask::PageSize() { return m_vm_memory.PageSize(m_task); }
-
void MachTask::TaskPortChanged(task_t task)
{
m_task = task;