diff options
author | Robin Hsu <robinhsu@google.com> | 2022-07-06 13:25:12 +0800 |
---|---|---|
committer | Robin Hsu <robinhsu@google.com> | 2022-08-26 02:59:01 +0000 |
commit | 715bbce7e00a5557a8ec014e04766890a4c7d4ee (patch) | |
tree | 93f2b2638a129965e5465a6ec9d6f6aabb51b437 | |
parent | 792af1da403ad78c4adf98c95b02759c33e576b2 (diff) |
pixelstat: MM metrics: new vmstat metrics
We previous employed some vmstat metrics (proc/vmstat). This time
we add even more:
* Added metrics list
"workingset_refault_file"
"workingset_refault_anon"
"compact_success"
"compact_fail"
"kswapd_low_wmark_hit_quickly"
"kswapd_high_wmark_hit_quickly"
"thp_file_alloc"
"thp_zero_page_alloc"
"thp_split_page"
"thp_migration_split"
"thp_deferred_split_page"
* Note: previous implementation mixed "workingset_refault" and
"workingset_refault_file". As old kernel only has
"workingset_refault", newer kernel has separated
'workingset_refault_file", and "workingset_refault_anon"
This CL define it more clearly, where old metrics are left there
for backward compatibility, and added two more metrics for '_file'
and '_anon'.
Test: local test
Bug: 234564667
Signed-off-by: Robin Hsu <robinhsu@google.com>
Change-Id: I812386bec4db3d982a82731f82bc61af9c53b9e5
-rw-r--r-- | pixelstats/MmMetricsReporter.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/pixelstats/MmMetricsReporter.cpp b/pixelstats/MmMetricsReporter.cpp index ae85ef7..b7dd5d9 100644 --- a/pixelstats/MmMetricsReporter.cpp +++ b/pixelstats/MmMetricsReporter.cpp @@ -54,13 +54,13 @@ const std::vector<MmMetricsReporter::MmMetricsInfo> MmMetricsReporter::kMmMetric {"nr_anon_pages", PixelMmMetricsPerHour::kAnonPagesFieldNumber, false}, {"nr_file_pages", PixelMmMetricsPerHour::kFilePagesFieldNumber, false}, {"nr_slab_reclaimable", PixelMmMetricsPerHour::kSlabReclaimableFieldNumber, false}, + {"nr_slab_unreclaimable", PixelMmMetricsPerHour::kSlabUnreclaimableFieldNumber, false}, {"nr_zspages", PixelMmMetricsPerHour::kZspagesFieldNumber, false}, {"nr_unevictable", PixelMmMetricsPerHour::kUnevictableFieldNumber, false}, }; const std::vector<MmMetricsReporter::MmMetricsInfo> MmMetricsReporter::kMmMetricsPerDayInfo = { {"workingset_refault", PixelMmMetricsPerDay::kWorkingsetRefaultFieldNumber, true}, - {"workingset_refault_file", PixelMmMetricsPerDay::kWorkingsetRefaultFieldNumber, true}, {"pswpin", PixelMmMetricsPerDay::kPswpinFieldNumber, true}, {"pswpout", PixelMmMetricsPerDay::kPswpoutFieldNumber, true}, {"allocstall_dma", PixelMmMetricsPerDay::kAllocstallDmaFieldNumber, true}, @@ -79,6 +79,18 @@ const std::vector<MmMetricsReporter::MmMetricsInfo> MmMetricsReporter::kMmMetric {"pgalloc_costly_order", PixelMmMetricsPerDay::kPgallocHighFieldNumber, true}, {"pgcache_hit", PixelMmMetricsPerDay::kPgcacheHitFieldNumber, true}, {"pgcache_miss", PixelMmMetricsPerDay::kPgcacheMissFieldNumber, true}, + {"workingset_refault_file", PixelMmMetricsPerDay::kWorkingsetRefaultFileFieldNumber, true}, + {"workingset_refault_anon", PixelMmMetricsPerDay::kWorkingsetRefaultAnonFieldNumber, true}, + {"compact_success", PixelMmMetricsPerDay::kCompactSuccessFieldNumber, true}, + {"compact_fail", PixelMmMetricsPerDay::kCompactFailFieldNumber, true}, + {"kswapd_low_wmark_hit_quickly", PixelMmMetricsPerDay::kKswapdLowWmarkHqFieldNumber, true}, + {"kswapd_high_wmark_hit_quickly", PixelMmMetricsPerDay::kKswapdHighWmarkHqFieldNumber, + true}, + {"thp_file_alloc", PixelMmMetricsPerDay::kThpFileAllocFieldNumber, true}, + {"thp_zero_page_alloc", PixelMmMetricsPerDay::kThpZeroPageAllocFieldNumber, true}, + {"thp_split_page", PixelMmMetricsPerDay::kThpSplitPageFieldNumber, true}, + {"thp_migration_split", PixelMmMetricsPerDay::kThpMigrationSplitFieldNumber, true}, + {"thp_deferred_split_page", PixelMmMetricsPerDay::kThpDeferredSplitPageFieldNumber, true}, }; const std::vector<MmMetricsReporter::MmMetricsInfo> MmMetricsReporter::kCmaStatusInfo = { |