Show a cover letter.

GET /api/covers/815697/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 815697,
    "url": "http://patchwork.ozlabs.org/api/covers/815697/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/1505839684-10046-1-git-send-email-a.perevalov@samsung.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1505839684-10046-1-git-send-email-a.perevalov@samsung.com>",
    "list_archive_url": null,
    "date": "2017-09-19T16:47:54",
    "name": "[v10,00/10] calculate blocktime for postcopy live migration",
    "submitter": {
        "id": 18164,
        "url": "http://patchwork.ozlabs.org/api/people/18164/?format=api",
        "name": "Alexey Perevalov",
        "email": "a.perevalov@samsung.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/1505839684-10046-1-git-send-email-a.perevalov@samsung.com/mbox/",
    "series": [
        {
            "id": 3930,
            "url": "http://patchwork.ozlabs.org/api/series/3930/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=3930",
            "date": "2017-09-19T16:48:03",
            "name": "calculate blocktime for postcopy live migration",
            "version": 10,
            "mbox": "http://patchwork.ozlabs.org/series/3930/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/815697/comments/",
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxTvl4Mv7z9sMN\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Sep 2017 03:12:35 +1000 (AEST)",
            "from localhost ([::1]:44204 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duM4X-0005Gh-HN\n\tfor incoming@patchwork.ozlabs.org; Tue, 19 Sep 2017 13:12:33 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:42405)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <a.perevalov@samsung.com>) id 1duLhD-0001Bl-Sw\n\tfor qemu-devel@nongnu.org; Tue, 19 Sep 2017 12:48:29 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <a.perevalov@samsung.com>) id 1duLhB-0006N2-26\n\tfor qemu-devel@nongnu.org; Tue, 19 Sep 2017 12:48:27 -0400",
            "from mailout1.w1.samsung.com ([210.118.77.11]:33233)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <a.perevalov@samsung.com>)\n\tid 1duLhA-0006KP-P0\n\tfor qemu-devel@nongnu.org; Tue, 19 Sep 2017 12:48:24 -0400",
            "from eucas1p2.samsung.com (unknown [182.198.249.207])\n\tby mailout1.w1.samsung.com (KnoxPortal) with ESMTP id\n\t20170919164820euoutp01076a4c169376b718549247582fdb3eb3~l0Tq6YKlb2660026600euoutp01L;\n\tTue, 19 Sep 2017 16:48:20 +0000 (GMT)",
            "from eusmges1.samsung.com (unknown [203.254.199.239]) by\n\teucas1p2.samsung.com (KnoxPortal) with ESMTP id\n\t20170919164819eucas1p2ffd0f813a0f3429452bf02f820f265d3~l0TqIuO7f2073720737eucas1p2a;\n\tTue, 19 Sep 2017 16:48:19 +0000 (GMT)",
            "from eucas1p2.samsung.com ( [182.198.249.207]) by\n\teusmges1.samsung.com  (EUCPMTA) with SMTP id 52.C5.12576.35A41C95;\n\tTue, 19 Sep 2017 17:48:19 +0100 (BST)",
            "from eusmgms2.samsung.com (unknown [182.198.249.180]) by\n\teucas1p2.samsung.com (KnoxPortal) with ESMTP id\n\t20170919164818eucas1p292f634ca79c4b7ed8e83d1529dd23c04~l0TpP0e0D2073720737eucas1p2Z;\n\tTue, 19 Sep 2017 16:48:18 +0000 (GMT)",
            "from eusync1.samsung.com ( [203.254.199.211]) by\n\teusmgms2.samsung.com (EUCPMTA) with SMTP id 03.6C.20118.25A41C95;\n\tTue, 19 Sep 2017 17:48:18 +0100 (BST)",
            "from aperevalov-ubuntu.rnd.samsung.ru ([106.109.129.199]) by\n\teusync1.samsung.com (Oracle Communications Messaging Server\n\t7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id\n\t<0OWJ003OHDC8XU40@eusync1.samsung.com>; \n\tTue, 19 Sep 2017 17:48:18 +0100 (BST)"
        ],
        "X-AuditID": "cbfec7ef-f79ee6d000003120-e2-59c14a538d05",
        "From": "Alexey Perevalov <a.perevalov@samsung.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Tue, 19 Sep 2017 19:47:54 +0300",
        "Message-id": "<1505839684-10046-1-git-send-email-a.perevalov@samsung.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "X-Brightmail-Tracker": [
            "H4sIAAAAAAAAA+NgFlrLIsWRmVeSWpSXmKPExsWy7djP87rBXgcjDe4fkbWYe/c8i0Xvtnvs\n\tFhPfrme1mPb5NrvFlfaf7BZb9n9jtzjeu4PF4s6WPiYHDo8n1zYzebzfd5XNo2/LKsYA5igu\n\tm5TUnMyy1CJ9uwSujIvTzAtWalacafnO0sC4UKGLkZNDQsBEYtqT6ewQtpjEhXvr2boYuTiE\n\tBJYxSuw6M4kRwvnMKLG08TMrTMeknZeY4KpWT74G5XQzSfS9B8lwcLAJGEjsu2cL0iAiICnx\n\tu+s0M0gNs8AWRok7916DTRIW8JL4uXAvG4jNIqAq0flpBjOIzSvgLjFh+zKobXISJ49NhrI/\n\tskr8vFEKYbtIHPowlQXCFpZ4dXwL1A8yEpcnd7OALJMQaGeU6N7ZyQrhTGCUODP9L1SVvcSp\n\tm1eZQGxmAT6JSdumM4NcLSHAK9HRJgRR4iExe+VKNgjbUeL+sntg5UICsRKdN6ewTWCUWsDI\n\tsIpRJLW0ODc9tdhQrzgxt7g0L10vOT93EyMwEk//O/5+B+PT5pBDjAIcjEo8vCtsDkYKsSaW\n\tFVfmHmKU4GBWEuF97QQU4k1JrKxKLcqPLyrNSS0+xCjNwaIkzmsb1RYpJJCeWJKanZpakFoE\n\tk2Xi4JRqYFwqc05dQGhew+Y/TtNbKz627fqaskv4bir/e7GJCo6R22cqOrVHRyosPDczR9jy\n\tk8THDnN3z5+n1j1fyfnqXmz5w8Q9QWqfXvp6HYky/38rUVxe/pnJ6WDziWwOfkqp9f0Kwce/\n\tcZ43rn945Utry/m/8cUL7yrsUsy/8ubsvBm7JJjcD/GvrFNiKc5INNRiLipOBACPfe6cwAIA\n\tAA==",
            "H4sIAAAAAAAAA+NgFvrGJMWRmVeSWpSXmKPExsVy+t/xy7pBXgcjDTZ/0LOYe/c8i0Xvtnvs\n\tFhPfrme1mPb5NrvFlfaf7BZb9n9jtzjeu4PF4s6WPiYHDo8n1zYzebzfd5XNo2/LKsYA5igu\n\tm5TUnMyy1CJ9uwSujIvTzAtWalacafnO0sC4UKGLkZNDQsBEYtLOS0wQtpjEhXvr2boYuTiE\n\tBJYwSkxYPIEdwullkvjT8xQow8HBJmAgse+eLUiDiICkxO+u08wgNcwCWxglNh5fyQiSEBbw\n\tkvi5cC8biM0ioCrR+WkGM4jNK+AuMWH7MlaIbXISJ49NZp3AyL2AkWEVo0hqaXFuem6xkV5x\n\tYm5xaV66XnJ+7iZGYGhsO/Zzyw7GrnfBhxgFOBiVeHhX2ByMFGJNLCuuzD3EKMHBrCTC+9oJ\n\tKMSbklhZlVqUH19UmpNafIhRmoNFSZy3d8/qSCGB9MSS1OzU1ILUIpgsEwenVANjy70JrCxR\n\tlaod684+sxb60f1pR9wc5dIJqStnrJ6flGK+Yu8FvYIzG5WnPFNWn1KhVrRgyfPle5fIXfn4\n\tpFPzz7JA5emeF2fK/gyYd1/PMuHUsdWKT72mePlvsn7aeMdN+/Nr9RPtbvbdu9xT+Vw3nWbQ\n\trMpyWPgpUk+t4aeA1fbKTQ5ptblrlViKMxINtZiLihMB2oUvbwkCAAA="
        ],
        "X-CMS-MailID": "20170919164818eucas1p292f634ca79c4b7ed8e83d1529dd23c04",
        "X-Msg-Generator": "CA",
        "X-Sender-IP": "182.198.249.180",
        "X-Local-Sender": "=?utf-8?q?Alexey_Perevalov=1BSRR-Virtualization_Lab=1B?=\n\t=?utf-8?b?7IK87ISx7KCE7J6QG1NlbmlvciBFbmdpbmVlcg==?=",
        "X-Global-Sender": "=?utf-8?q?Alexey_Perevalov=1BSRR-Virtualization_Lab=1BSa?=\n\t=?utf-8?q?msung_Electronics=1BSenior_Engineer?=",
        "X-Sender-Code": "=?utf-8?q?C10=1BCISHQ=1BC10GD01GD010154?=",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20170919164818eucas1p292f634ca79c4b7ed8e83d1529dd23c04",
        "X-RootMTR": "20170919164818eucas1p292f634ca79c4b7ed8e83d1529dd23c04",
        "References": "<CGME20170919164818eucas1p292f634ca79c4b7ed8e83d1529dd23c04@eucas1p2.samsung.com>",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 3.x [fuzzy]",
        "X-Received-From": "210.118.77.11",
        "Subject": "[Qemu-devel] [PATCH v10 00/10] calculate blocktime for postcopy\n\tlive migration",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "heetae82.ahn@samsung.com, quintela@redhat.com,\n\tAlexey Perevalov <a.perevalov@samsung.com>, peterx@redhat.com,\n\tdgilbert@redhat.com, i.maximets@samsung.com",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "This is 10th version.\n\nThe rationale for that idea is following:\nvCPU could suspend during postcopy live migration until faulted\npage is not copied into kernel. Downtime on source side it's a value -\ntime interval since source turn vCPU off, till destination start runnig\nvCPU. But that value was proper value for precopy migration it really shows\namount of time when vCPU is down. But not for postcopy migration, because\nseveral vCPU threads could susppend after vCPU was started. That is important\nto estimate packet drop for SDN software.\n\n(V9 -> V10)\n    - rebase\n    - patch \"update kernel header for UFFD_FEATURE_*\" has changed,\nand was generated by  scripts/update-linux-headers.sh as David suggested. \n\n\n(V8 -> V9)\n    - rebase\n    - traces\n\n(V7 -> V8)\n    - just one comma in\n\"migration: fix hardcoded function name in error report\"\nIt was really missed, but fixed in futher patch.\n\n(V6 -> V7)\n    - copied bitmap was placed into RAMBlock as another migration\nrelated bitmaps.\n    - Ordering of mark_postcopy_blocktime_end call and ordering\nof checking copied bitmap were changed.\n    - linewrap style defects\n    - new patch \"postcopy_place_page factoring out\"\n    - postcopy_ram_supported_by_host accepts\nMigrationIncomingState in qmp_migrate_set_capabilities\n    - minor fixes of documentation. \n    and huge description of get_postcopy_total_blocktime was\nmoved. Davids comment.\n\n(V5 -> V6)\n    - blocktime was added into hmp command. Comment from David.\n    - bitmap for copied pages was added as well as check in *_begin/_end\nfunctions. Patch uses just introduced RAMBLOCK_FOREACH. Comment from David.\n    - description of receive_ufd_features/request_ufd_features. Comment from David.\n    - commit message headers/@since references were modified. Comment from Eric.\n    - also typos in documentation. Comment from Eric.\n    - style and description of field in MigrationInfo. Comment from Eric.\n    - ufd_check_and_apply (former ufd_version_check) is calling twice,\nso my previous patch contained double allocation of blocktime context and\nas a result memory leak. In this patch series it was fixed.\n\n(V4 -> V5)\n    - fill_destination_postcopy_migration_info empty stub was missed for none linux\nbuild\n\n(V3 -> V4)\n    - get rid of Downtime as a name for vCPU waiting time during postcopy migration\n    - PostcopyBlocktimeContext renamed (it was just BlocktimeContext)\n    - atomic operations are used for dealing with fields of PostcopyBlocktimeContext\naffected in both threads.\n    - hardcoded function names in error_report were replaced to %s and __line__\n    - this patch set includes postcopy-downtime capability, but it used on\ndestination, coupled with not possibility to return calculated downtime back\nto source to show it in query-migrate, it looks like a big trade off\n    - UFFD_API have to be sent notwithstanding need or not to ask kernel\nfor a feature, due to kernel expects it in any case (see patch comment)\n    - postcopy_downtime included into query-migrate output\n    - also this patch set includes trivial fix\nmigration: fix hardcoded function name in error report\nmaybe that is a candidate for qemu-trivial mailing list, but I already\nsent \"migration: Fixed code style\" and it was unclaimed.\n\n(V2 -> V3)\n    - Downtime calculation approach was changed, thanks to Peter Xu\n    - Due to previous point no more need to keep GTree as well as bitmap of cpus.\nSo glib changes aren't included in this patch set, it could be resent in\nanother patch set, if it will be a good reason for it.\n    - No procfs traces in this patchset, if somebody wants it, you could get it\nfrom patchwork site to track down page fault initiators.\n    - UFFD_FEATURE_THREAD_ID is requesting only when kernel supports it\n    - It doesn't send back the downtime, just trace it\n\nThis patch set is based on commit\n[PATCH v9 0/3] Add bitmap for received pages in postcopy migration\n\nBoth patch sets were rebased on commit a9158a5cba955b79d580a252cc58ff44d154e370\n\n\nAlexeyaPerevalov (10):\n  userfault: update kernel header for UFFD_FEATURE_*\n  migration: pass MigrationIncomingState* into migration check functions\n  migration: fix hardcoded function name in error report\n  migration: split ufd_version_check onto receive/request features part\n  migration: introduce postcopy-blocktime capability\n  migration: add postcopy blocktime ctx into MigrationIncomingState\n  migration: calculate vCPU blocktime on dst side\n  migration: postcopy_blocktime documentation\n  migration: add blocktime calculation into postcopy-test\n  migration: add postcopy total blocktime into query-migrate\n\n docs/devel/migration.txt          |  10 ++\n hmp.c                             |  15 ++\n linux-headers/linux/userfaultfd.h |  16 +-\n migration/migration.c             |  54 +++++-\n migration/migration.h             |  13 ++\n migration/postcopy-ram.c          | 358 ++++++++++++++++++++++++++++++++++++--\n migration/postcopy-ram.h          |   2 +-\n migration/savevm.c                |   2 +-\n migration/trace-events            |   6 +-\n qapi/migration.json               |  16 +-\n tests/postcopy-test.c             |  12 +-\n 11 files changed, 482 insertions(+), 22 deletions(-)"
}