)]}'
{
  "commit": "dd67c149e2b1325138e45f619dd18d7ab3680ec0",
  "tree": "68589a99b36d6da2da866788229f25458c39bcc5",
  "parents": [
    "8bfb2f6d09d0af8bb851f3fac60d6a04e4656056"
  ],
  "author": {
    "name": "Lukas Straub",
    "email": "lukasstraub2@web.de",
    "time": "Mon Mar 02 12:43:38 2026 +0100"
  },
  "committer": {
    "name": "Fabiano Rosas",
    "email": "farosas@suse.de",
    "time": "Mon Mar 09 08:53:32 2026 -0300"
  },
  "message": "multifd: Add COLO support\n\nLike in the normal ram_load() path, put the received pages into the\ncolo cache and mark the pages in the bitmap so that they will be\nflushed to the guest later.\n\nMultifd with COLO is useful to reduce the VM pause time during checkpointing\nfor latency sensitive workloads. In such workloads the worst-case latency\nis especially important.\n\nAlso, this is already worth it for the precopy phase as it helps with\nconverging. Moreover, multifd migration is the preferred way to do migration\nnowadays and this allows to use multifd compression with COLO.\n\nBenchmark:\nCluster nodes\n - Intel Xenon E5-2630 v3\n - 48Gb RAM\n - 10G Ethernet\nGuest\n - Windows Server 2016\n - 6Gb RAM\n - 4 cores\nWorkload\n - Upload a file to the guest with SMB to simulate moderate\n   memory dirtying\n - Measure the memory transfer time portion of each checkpoint\n - 600ms COLO checkpoint interval\n\nResults\nPlain\n idle mean: 4.50ms 99per: 10.33ms\n load mean: 24.30ms 99per: 78.05ms\nMultifd-4\n idle mean: 6.48ms 99per: 10.41ms\n load mean: 14.12ms 99per: 31.27ms\n\nEvaluation\nWhile multifd has slightly higher latency when the guest idles, it is\n10ms faster under load and more importantly it\u0027s worst case latency is\nless than 1/2 of plain under load as can be seen in the 99. Percentile.\n\nCo-authored-by: Juan Quintela \u003cquintela@redhat.com\u003e\n[farosas: changed SoB to coauthored as Juan doesn\u0027t own that email address anymore]\nReviewed-by: Fabiano Rosas \u003cfarosas@suse.de\u003e\nReviewed-by: Peter Xu \u003cpeterx@redhat.com\u003e\nSigned-off-by: Lukas Straub \u003clukasstraub2@web.de\u003e\nLink: https://lore.kernel.org/qemu-devel/20260302-colo_unit_test_multifd-v11-8-d653fb3b1d80@web.de\n[removed license boilerplate]\nSigned-off-by: Fabiano Rosas \u003cfarosas@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "df788658096510aa64f8ddb70ad9ceba7f134083",
      "old_mode": 33188,
      "old_path": "MAINTAINERS",
      "new_id": "d8dc4c8d7b2cb38c371b55cd3ee0e7acc79e4258",
      "new_mode": 33188,
      "new_path": "MAINTAINERS"
    },
    {
      "type": "modify",
      "old_id": "c7f39bdb55239ecb0e775c77b90a1aa9e6a4a9ce",
      "old_mode": 33188,
      "old_path": "migration/meson.build",
      "new_id": "c9f0f5f9f2137536497e53e960ce70654ad1b394",
      "new_mode": 33188,
      "new_path": "migration/meson.build"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fb13e38b9bc922814e4b6222afa41a2050d07b8d",
      "new_mode": 33188,
      "new_path": "migration/multifd-colo.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1011c5a1da8a744ff0505ce0a9859e016772e3d0",
      "new_mode": 33188,
      "new_path": "migration/multifd-colo.h"
    },
    {
      "type": "modify",
      "old_id": "9be79b3b8e00371ebff9e112766c225bec260bf7",
      "old_mode": 33188,
      "old_path": "migration/multifd-nocomp.c",
      "new_id": "9f7a792fa761b3bc30b971b35f464103a61787f0",
      "new_mode": 33188,
      "new_path": "migration/multifd-nocomp.c"
    },
    {
      "type": "modify",
      "old_id": "4259ab2628c5f7b2a8502d3f6ab6a51b894b313e",
      "old_mode": 33188,
      "old_path": "migration/multifd.c",
      "new_id": "2193088996f9ec42ff0c8783fb386b387b5dbf8b",
      "new_mode": 33188,
      "new_path": "migration/multifd.c"
    },
    {
      "type": "modify",
      "old_id": "89a395aef2b09a6762c45b5361e0ab63256feff6",
      "old_mode": 33188,
      "old_path": "migration/multifd.h",
      "new_id": "fbc35702b062fdc3213ce92baed35994f5967c2b",
      "new_mode": 33188,
      "new_path": "migration/multifd.h"
    }
  ]
}
