Cover Letter Detail
Show a cover letter.
GET /api/covers/2217860/?format=api
{ "id": 2217860, "url": "http://patchwork.ozlabs.org/api/covers/2217860/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260330-fast-snapshot-refactor-v1-0-22143e70c467@gmail.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": "<20260330-fast-snapshot-refactor-v1-0-22143e70c467@gmail.com>", "list_archive_url": null, "date": "2026-03-30T19:04:40", "name": "[0/3] migration/postcopy: Preparatory refactoring for fast snapshot load", "submitter": { "id": 87325, "url": "http://patchwork.ozlabs.org/api/people/87325/?format=api", "name": "Takeru Hayasaka", "email": "hayatake396@gmail.com" }, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260330-fast-snapshot-refactor-v1-0-22143e70c467@gmail.com/mbox/", "series": [ { "id": 498082, "url": "http://patchwork.ozlabs.org/api/series/498082/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=498082", "date": "2026-03-30T19:04:41", "name": "migration/postcopy: Preparatory refactoring for fast snapshot load", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498082/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2217860/comments/", "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=VwXVQodR;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fl11Q3pn3z1yG7\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 06:06:02 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1w7HvV-0003oj-FI; Mon, 30 Mar 2026 15:05:29 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <hayatake396@gmail.com>)\n id 1w7HvT-0003oM-7l\n for qemu-devel@nongnu.org; Mon, 30 Mar 2026 15:05:27 -0400", "from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <hayatake396@gmail.com>)\n id 1w7HvQ-0005D7-PW\n for qemu-devel@nongnu.org; Mon, 30 Mar 2026 15:05:26 -0400", "by mail-pf1-x42c.google.com with SMTP id\n d2e1a72fcca58-82bae83318bso2229450b3a.2\n for <qemu-devel@nongnu.org>; Mon, 30 Mar 2026 12:05:24 -0700 (PDT)", "from [127.0.1.1] (191.68.231.218.rev.ocx2915.net. [218.231.68.191])\n by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82ca84644d9sm8496989b3a.13.2026.03.30.12.05.21\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 30 Mar 2026 12:05:22 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1774897523; x=1775502323; darn=nongnu.org;\n h=cc:to:content-transfer-encoding:mime-version:message-id:date\n :subject:from:from:to:cc:subject:date:message-id:reply-to;\n bh=NLMeB1T35Du6zyw6/fw6tijVm1QevyhJIHM/mSx3rws=;\n b=VwXVQodRa04vSfG+y5zzG+0+XTcXmFo3mnvFvUc8qHdR63Y1opHXZAS84MC8WZOT06\n 4urh6Y+Exz6ISPs1Jl+ZMs7PcA1oer5AQHXfDSfUx0rNZaxjF5jegcaLHTVyTDBEZp63\n vP0Cw8u6H6YnmOQTiatNSx+vIc+ly/0BS0iJZWLCYYKD4+QfHhx1hECnZcg6Yu48o99N\n IoepHFwDmxOhFV56pQAUn5rs4t/U8lp3rvU95VD/tjIHJIcJ11wCU6XFqX70CK56U2vz\n KXzkcBKUgyMu4pDr3aG9eSCRnSVOGbCsletmpni7AejGUyvlR23hJlWohMfyW56R+F4o\n h0zA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774897523; x=1775502323;\n h=cc:to:content-transfer-encoding:mime-version:message-id:date\n :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=NLMeB1T35Du6zyw6/fw6tijVm1QevyhJIHM/mSx3rws=;\n b=N3sw5T6bT00OAYjQaA5i0L8BgtaMjmnWY2Wcou88y9nao0gRigJH/pZr8QSzW89tkG\n koqQwdDfO/tCFEeQsLliUSpfzMAuJu2CeDCCOoPdDN+gpEPmYAIUdm/2AuYLvUacRjD/\n m/3SjC0G8oJsfQywhzZI7dEArctcyXUfhcrUIBVgbl2p/qYihfdefwJILZnbSXmDGemU\n G6NHmP6+BNftg0UL9uXgxbXBqYR0hhTomYu9bwrs+TvJ6yxmG5q4X733OqGb3cDqj0tY\n 4Qibv2lS5gKPc8fNFe0WRE2HwNUBdFHZQCMFqQvhaQkXMI7XrJub+pLkqy0LUSnEa9KF\n Kk8Q==", "X-Gm-Message-State": "AOJu0Yx/Q9su3MAr2K922eBbcTU3MWyWiZTZt/SEng/i2v4aMWVlADha\n y9AyqrNamJpz3TL7CCTLL/QYmdC+71W3CF7fSQCg9kevhssSTQ9nf8O6+ArmyQ==", "X-Gm-Gg": "ATEYQzzHgXEK0GGhgFBfxxSzmxg4Zlu66PFAynwxzDH2k0YDbmG/aJBUtZgItGW76Tx\n 77bm3+yTF9ELzaqeuVBJWThmc7m58W8RZ/uBliBL+qwLirubPlGdt6Gw3RYXpo3tKJ/HRA5wS2i\n bGvi2BvrHVnN6oBNkC8cixWQwFm928sEUIvQSZdFmf+7c+5SqWSJ1LGJPm7qHX7HyvPVYis8RLy\n CREfF2Rl/OEVcFEUesPsIlmbZTRMDbUKnNtLsyKC5QXu4bfChkjOSaXvOsePIrgN3WLhET6FfFa\n od8SwL+VKv3gA1IXfHuOjP+NYoxcqIoYcNesP7Jf9y8mLcUpa326Kwmtc6meeOt0tDaieig3nKy\n FXRjRHPFcDLv2lOSKkGFxnQGw0fcPqnrafHOL5Q8YMcRlK8ti/g3s6qR6w0RIJ51GeGSXp1UfmY\n guep/Y29rvSUfTMPnlXR99gjkPDJPXqFpg/moO7YhkYFIsKCGB1EbDDZ0i3hEn/U07n55WClR8H\n wsmEP/FRDf1GonBaA==", "X-Received": "by 2002:a05:6a00:9510:b0:81c:c98c:aeb7 with SMTP id\n d2e1a72fcca58-82c95d341c7mr13229839b3a.7.1774897522723;\n Mon, 30 Mar 2026 12:05:22 -0700 (PDT)", "From": "Takeru Hayasaka <hayatake396@gmail.com>", "Subject": "[PATCH 0/3] migration/postcopy: Preparatory refactoring for fast\n snapshot load", "Date": "Mon, 30 Mar 2026 19:04:40 +0000", "Message-Id": "<20260330-fast-snapshot-refactor-v1-0-22143e70c467@gmail.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "X-B4-Tracking": "v=1; b=H4sIAEjJymkC/yXMQQqDMBCF4avIrB3QWBzoVYqLJI46LhLJxFIQ7\n 26sy4/H+w9QTsIK7+qAxF9RiaGgrSvwiw0zo4zFYBrTN50hnKxm1GA3XWLGxJP1OSbsfO/ci4w\n jIijnrSzy+4c/w2Pd3co+3zU4zwsmJ3pyegAAAA==", "X-Change-ID": "20260327-fast-snapshot-refactor-3c6bb472b777", "To": "qemu-devel@nongnu.org", "Cc": "Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>,\n Takeru Hayasaka <hayatake396@gmail.com>", "X-Mailer": "b4 0.15.1", "Received-SPF": "pass client-ip=2607:f8b0:4864:20::42c;\n envelope-from=hayatake396@gmail.com; helo=mail-pf1-x42c.google.com", "X-Spam_score_int": "-17", "X-Spam_score": "-1.8", "X-Spam_bar": "-", "X-Spam_report": "(-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://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 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "This series refactors postcopy and mapped-ram code to make the\nuserfaultfd infrastructure reusable beyond postcopy live migration.\nThe goal is to prepare for fast snapshot load, which will use\nuserfaultfd to load guest RAM pages on demand from a snapshot file\ninstead of reading all pages before starting the VM.\n\nAll three patches are pure refactoring with no functional change.\n\nPatch 1 introduces a callback for the fault thread's page request\nhandler, so the page supply mechanism can be swapped (network for\npostcopy, local file for snapshot load).\n\nPatch 2 extracts generic uffd setup (open, register, fault thread,\ntemp pages) from postcopy_ram_incoming_setup() into a shared\nuffd_setup_incoming() function.\n\nPatch 3 splits parse_ramblock_mapped_ram() so that the header and\nbitmap can be read without immediately loading all page data. This\nallows a future caller to read only the metadata and defer page\nloading to a fault handler.\n\nTested with mapped-ram precopy file migration tests. Postcopy tests\nrequire userfaultfd, which was not available in my test environment,\nbut no postcopy logic was changed.\n\nThis work is part of my preparation for the GSoC 2026 \"Fast Snapshot\nLoad\" project.\n\nSigned-off-by: Takeru Hayasaka <hayatake396@gmail.com>\n---\nTakeru Hayasaka (3):\n migration/postcopy: Extract page fault handler callback\n migration/postcopy: Factor out uffd_setup_incoming() from postcopy setup\n migration/ram: Split mapped-ram header and page loading\n\n migration/migration.h | 5 +++\n migration/postcopy-ram.c | 86 +++++++++++++++++++++++++++++++++++-------------\n migration/postcopy-ram.h | 27 +++++++++++++++\n migration/ram.c | 52 +++++++++++++++++++++++++----\n 4 files changed, 142 insertions(+), 28 deletions(-)\n---\nbase-commit: 8e711856d7639cbffa51405f2cc2366e3d9e3a23\nchange-id: 20260327-fast-snapshot-refactor-3c6bb472b777\n\nBest regards,\n-- \nTakeru Hayasaka <hayatake396@gmail.com>" }