)]}'
{
  "commit": "c15f85485fa2db6cadcb9522df244cd26dc07085",
  "tree": "eace65e533e38bff17d5545a4e03cd5effeebcec",
  "parents": [
    "1280c5ee16421c21dd7ea9bf58853480a1f1f075"
  ],
  "author": {
    "name": "Shakeel Butt",
    "email": "shakeelb@google.com",
    "time": "Tue Dec 26 22:52:42 2023 +0000"
  },
  "committer": {
    "name": "COS Cherry Picker",
    "email": "cloud-image-release@prod.google.com",
    "time": "Thu Dec 28 14:07:01 2023 -0800"
  },
  "message": "memcg: rate limit rstat flush in reclaim\n\nmemcg maintains stats in rstat infra where the updates are very fast\nand per-cpu while the accurate stats read are slow due to the need of\nflushing the per-cpu (and hierarchical) stats. There is also a periodic\nasync stats flusher which every 2 seconds, flush the stats for the whole\nmemcg tree. This change basically converts the always synchronous flush\nin reclaim code path to flush only if the periodic flush is delayed.\n\nIn prepare_scan_count(), there are two heuristics which read memcg stats:\n(1) anon LRU deactivation and (2) File cache trimming. With the proposed\nchange, the kernel might read out of date stats (at most 2 seconds out of\ndate). We are not much concerned on these two heuristics getting a bit\noutdated stats as these are just heuristics and kernel does a lot of\nreclaim retries. For the long term, COS should move to MultigenLRU to\navoid such heuristics completely.\n\nBUG\u003db/246641795\nTEST\u003dpresubmit, b/246641795#comment69\nRELEASE_NOTE\u003dFixed a performance issue that was observed in Postgres databases.\n\ncos-patch: bug\nChange-Id: Icd50fe0ccce09553738b37cbacdbe94d66106357\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/62857\nMain-Branch-Verified: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nReviewed-by: Oleksandr Tymoshenko \u003covt@google.com\u003e\nReviewed-by: Robert Kolchmeyer \u003crkolchmeyer@google.com\u003e\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "93d6f27dd40b485e27f76fa2bf9640291657be8c",
      "old_mode": 33188,
      "old_path": "mm/vmscan.c",
      "new_id": "22802183d47b790a6083b010a7e9600cb42f0559",
      "new_mode": 33188,
      "new_path": "mm/vmscan.c"
    }
  ]
}
