{"push_id":548178140,"size":9,"distinct_size":9,"ref":"refs/heads/master","head":"e68cba36360a2ab5bf0576b66df4d0eb0d822f8d","before":"df58887b20fab8fe8a6dcca4db30cd4e4077d53a","commits":[{"sha":"27af7d6ea5015e5ef1f7985eab94a8a218267a2b","author":{"email":"d845aba847e4a45cd6aa4c63337119c8b392d9cf@huawei.com","name":"ChenLiang"},"message":"xbzrle: optimize XBZRLE to decrease the cache misses\n\nAvoid hot pages being replaced by others to remarkably decrease cache\nmisses\n\nSample results with the test program which quote from xbzrle.txt ran in\nvm:(migrate bandwidth:1GE and xbzrle cache size 8MB)\n\nthe test program:\n\ninclude <stdlib.h>\ninclude <stdio.h>\nint main()\n {\n        char *buf = (char *) calloc(4096, 4096);\n        while (1) {\n            int i;\n            for (i = 0; i < 4096 * 4; i++) {\n                buf[i * 4096 / 4]++;\n            }\n            printf(\".\");\n        }\n }\n\nbefore this patch:\nvirsh qemu-monitor-command test_vm '{\"execute\": \"query-migrate\"}'\n{\"return\":{\"expected-downtime\":1020,\"xbzrle-cache\":{\"bytes\":1108284,\n\"cache-size\":8388608,\"cache-miss-rate\":0.987013,\"pages\":18297,\"overflow\":8,\n\"cache-miss\":1228737},\"status\":\"active\",\"setup-time\":10,\"total-time\":52398,\n\"ram\":{\"total\":12466991104,\"remaining\":1695744,\"mbps\":935.559472,\n\"transferred\":5780760580,\"dirty-sync-counter\":271,\"duplicate\":2878530,\n\"dirty-pages-rate\":29130,\"skipped\":0,\"normal-bytes\":5748592640,\n\"normal\":1403465}},\"id\":\"libvirt-706\"}\n\n18k pages sent compressed in 52 seconds.\ncache-miss-rate is 98.7%, totally miss.\n\nafter optimizing:\nvirsh qemu-monitor-command test_vm '{\"execute\": \"query-migrate\"}'\n{\"return\":{\"expected-downtime\":2054,\"xbzrle-cache\":{\"bytes\":5066763,\n\"cache-size\":8388608,\"cache-miss-rate\":0.485924,\"pages\":194823,\"overflow\":0,\n\"cache-miss\":210653},\"status\":\"active\",\"setup-time\":11,\"total-time\":18729,\n\"ram\":{\"total\":12466991104,\"remaining\":3895296,\"mbps\":937.663549,\n\"transferred\":1615042219,\"dirty-sync-counter\":98,\"duplicate\":2869840,\n\"dirty-pages-rate\":58781,\"skipped\":0,\"normal-bytes\":1588404224,\n\"normal\":387794}},\"id\":\"libvirt-266\"}\n\n194k pages sent compressed in 18 seconds.\nThe value of cache-miss-rate decrease to 48.59%.\n\nSigned-off-by: ChenLiang <chenliang88@huawei.com>\nSigned-off-by: Gonglei <arei.gonglei@huawei.com>\nReviewed-by: Eric Blake <eblake@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/27af7d6ea5015e5ef1f7985eab94a8a218267a2b"},{"sha":"1b826f277814dd9496fe3cc71cbe6ab7b203cadf","author":{"email":"d845aba847e4a45cd6aa4c63337119c8b392d9cf@huawei.com","name":"ChenLiang"},"message":"xbzrle: rebuild the cache_is_cached function\n\nRebuild the cache_is_cached function by cache_get_by_addr. And\ndrops the asserts because the caller is also asserting the same\nthing.\n\nSigned-off-by: ChenLiang <chenliang88@huawei.com>\nSigned-off-by: Gonglei <arei.gonglei@huawei.com>\nReviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/1b826f277814dd9496fe3cc71cbe6ab7b203cadf"},{"sha":"f018d8cd2123f495300935d5019931abbee4e5d9","author":{"email":"5089988faad16a34ba6772ee0653fa1817eeab99@cn.fujitsu.com","name":"Yang Hongyang"},"message":"QEMUSizedBuffer: only free qsb that qemu_bufopen allocated\n\nOnly free qsb that qemu_bufopen allocated, and also allow\nqemu_bufopen accept qsb as input for write operation. It\nwill make the API more logical:\n1.If you create the QEMUSizedBuffer yourself, you need to\n  free it by using qsb_free() but not depends on other API\n  like qemu_fclose.\n2.allow qemu_bufopen() accept QEMUSizedBuffer as input for\n  write operation, otherwise, it will be a little strange\n  for this API won't accept the second parameter.\n\nThis brings API change, since there are only 3\nusers of this API currently, this change only impact the\nfirst one which will be fixed in patch 2 of this patchset,\nso I think it is safe to do this change.\n\n1     70  tests/test-vmstate.c <<open_mem_file_read>>\n            return qemu_bufopen(\"r\", qsb);\n2    404  tests/test-vmstate.c <<test_save_noskip>>\n            QEMUFile *fsave = qemu_bufopen(\"w\", NULL);\n3    424  tests/test-vmstate.c <<test_save_skip>>\n            QEMUFile *fsave = qemu_bufopen(\"w\", NULL);\n\nSigned-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>\nCc: Dr. David Alan Gilbert <dgilbert@redhat.com>\nCc: Juan Quintela <quintela@redhat.com>\nCc: Amit Shah <amit.shah@redhat.com>\nReviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/f018d8cd2123f495300935d5019931abbee4e5d9"},{"sha":"8580b06498a5dffe554e7ac627726b1d7775c591","author":{"email":"5089988faad16a34ba6772ee0653fa1817eeab99@cn.fujitsu.com","name":"Yang Hongyang"},"message":"Tests: QEMUSizedBuffer/QEMUBuffer\n\nModify some of tests/test-vmstate.c due to qemu_bufopen() change.\nIf you create a QEMUSizedBuffer yourself, you have to explicitly\nfree it.\n\nSigned-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>\nCc: Dr. David Alan Gilbert <dgilbert@redhat.com>\nCc: Juan Quintela <quintela@redhat.com>\nCc: Amit Shah <amit.shah@redhat.com>\nReviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/8580b06498a5dffe554e7ac627726b1d7775c591"},{"sha":"e1a8c9b67fc97d293211773edcae9e8e2f3367ab","author":{"email":"54dff2264884c355ed5584a3b7f1530b4b26921e@redhat.com","name":"Dr. David Alan Gilbert"},"message":"socket shutdown\n\nAdd QEMUFile interface to allow a socket to be 'shut down' - i.e. any\nreads/writes will fail (and any blocking read/write will be woken).\n\nSigned-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>\nReviewed-by: Paolo Bonzini <pbonzini@redhat.com>\nReviewed-by: Amit Shah <amit.shah@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/e1a8c9b67fc97d293211773edcae9e8e2f3367ab"},{"sha":"131fe9b843f9a1e55fcbf2457c9cb25c3711b9d8","author":{"email":"2db73cf97c208fc10804ee0833317bd30f958d62@cs.umu.se","name":"Cristian Klein"},"message":"Handle bi-directional communication for fd migration\n\nlibvirt prefers opening the TCP connection itself, for two reasons.\nFirst, connection failed errors can be detected easier, without having\nto parse qemu's error output.\nSecond, libvirt might be asked to secure the transfer by tunnelling the\ncommunication through an TLS layer.\nTherefore, libvirt opens the TCP connection itself and passes an FD to qemu\nusing QMP and a POSIX-specific mechanism.\n\nHence, in order to make the reverse-path work in such cases, qemu needs to\ndistinguish if the transmitted FD is a socket (reverse-path available)\nor not (reverse-path might not be available) and use the corresponding\nabstraction.\n\nSigned-off-by: Cristian Klein <cristian.klein@cs.umu.se>\nReviewed-by: Paolo Bonzini <pbonzini@redhat.com>\nReviewed-by: Amit Shah <amit.shah@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/131fe9b843f9a1e55fcbf2457c9cb25c3711b9d8"},{"sha":"a26ba26e214911dc879a23e797d2c269cdb38577","author":{"email":"54dff2264884c355ed5584a3b7f1530b4b26921e@redhat.com","name":"Dr. David Alan Gilbert"},"message":"migration_cancel: shutdown migration socket\n\nForce shutdown on migration socket on cancel to cause the cancel\nto complete even if the socket is blocked on a dead network.\n\nSigned-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>\nReviewed-by: Paolo Bonzini <pbonzini@redhat.com>\nReviewed-by: Amit Shah <amit.shah@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/a26ba26e214911dc879a23e797d2c269cdb38577"},{"sha":"ea987c2c21d4326bb58ee28f6888fdcf8fbda067","author":{"email":"69d3ebcf5ee4e7f05a50dc23cd96655b730804b4@redhat.com","name":"Paolo Bonzini"},"message":"vmstate: type-check sub-arrays\n\nWhile we cannot check against the type of the full array, we can check\nagainst the type of the fields.\n\nSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>\nSigned-off-by: Amit Shah <amit.shah@redhat.com>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/ea987c2c21d4326bb58ee28f6888fdcf8fbda067"},{"sha":"e68cba36360a2ab5bf0576b66df4d0eb0d822f8d","author":{"email":"313afa09ce093b19ae1dd74f57c1ebd94508584c@linaro.org","name":"Peter Maydell"},"message":"Merge remote-tracking branch 'remotes/amit-migration/tags/mig-2.3-1' into staging\n\nA set of patches collected over the holidays.  Mix of optimizations and\nfixes.\n\n# gpg: Signature made Fri 16 Jan 2015 07:42:00 GMT using RSA key ID 854083B6\n# gpg: Good signature from \"Amit Shah <amit@amitshah.net>\"\n# gpg:                 aka \"Amit Shah <amit@kernel.org>\"\n# gpg:                 aka \"Amit Shah <amitshah@gmx.net>\"\n\n* remotes/amit-migration/tags/mig-2.3-1:\n  vmstate: type-check sub-arrays\n  migration_cancel: shutdown migration socket\n  Handle bi-directional communication for fd migration\n  socket shutdown\n  Tests: QEMUSizedBuffer/QEMUBuffer\n  QEMUSizedBuffer: only free qsb that qemu_bufopen allocated\n  xbzrle: rebuild the cache_is_cached function\n  xbzrle: optimize XBZRLE to decrease the cache misses\n\nSigned-off-by: Peter Maydell <peter.maydell@linaro.org>","distinct":true,"url":"https://api.github.com/repos/qemu/qemu/commits/e68cba36360a2ab5bf0576b66df4d0eb0d822f8d"}]}