diff options
Diffstat (limited to 'tools/debugserver/source/MacOSX/MachTask.mm')
| -rw-r--r-- | tools/debugserver/source/MacOSX/MachTask.mm | 67 |
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; |
