summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Hsu <robinhsu@google.com>2022-07-06 13:25:12 +0800
committerRobin Hsu <robinhsu@google.com>2022-08-26 02:59:01 +0000
commit715bbce7e00a5557a8ec014e04766890a4c7d4ee (patch)
tree93f2b2638a129965e5465a6ec9d6f6aabb51b437
parent792af1da403ad78c4adf98c95b02759c33e576b2 (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.cpp14
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 = {