Cover Letter Detail
Show a cover letter.
GET /api/covers/2196150/?format=api
{ "id": 2196150, "url": "http://patchwork.ozlabs.org/api/covers/2196150/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260212234602.338131-1-pierrick.bouvier@linaro.org/", "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": "<20260212234602.338131-1-pierrick.bouvier@linaro.org>", "list_archive_url": null, "date": "2026-02-12T23:45:59", "name": "[0/3] hw/virtio/virtio-access.h: remove target specific code", "submitter": { "id": 85798, "url": "http://patchwork.ozlabs.org/api/people/85798/?format=api", "name": "Pierrick Bouvier", "email": "pierrick.bouvier@linaro.org" }, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260212234602.338131-1-pierrick.bouvier@linaro.org/mbox/", "series": [ { "id": 492041, "url": "http://patchwork.ozlabs.org/api/series/492041/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=492041", "date": "2026-02-12T23:45:59", "name": "hw/virtio/virtio-access.h: remove target specific code", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/492041/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2196150/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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=KjgNFSko;\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 4fBsQn3mD7z1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 10:46:57 +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 1vqgNx-0004g3-Os; Thu, 12 Feb 2026 18:46:13 -0500", "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 <pierrick.bouvier@linaro.org>)\n id 1vqgNw-0004dm-7U\n for qemu-devel@nongnu.org; Thu, 12 Feb 2026 18:46:12 -0500", "from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@linaro.org>)\n id 1vqgNu-0008Az-4B\n for qemu-devel@nongnu.org; Thu, 12 Feb 2026 18:46:11 -0500", "by mail-pf1-x42b.google.com with SMTP id\n d2e1a72fcca58-823075fed75so195444b3a.1\n for <qemu-devel@nongnu.org>; Thu, 12 Feb 2026 15:46:09 -0800 (PST)", "from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44]) by smtp.gmail.com with ESMTPSA id\n 41be03b00d2f7-c6e1ac0e004sm5609936a12.6.2026.02.12.15.46.07\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 12 Feb 2026 15:46:07 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1770939968; x=1771544768; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=luaT4ogN3kuDQSmznOCyfhY3qOLWnWLi3BZPktB1v6U=;\n b=KjgNFSkoL7TsyJDOOG0AZPHppBXYB/6kNmk4erx18AgWVrKGVk+7VgyNB1WPV7Hvqv\n 2pSeAr/Z/83vm8T350KHsOgZqNW5sgSeWj1sWDQmQKZ8md862Gr4lgIsnhal5FuEO7Ig\n thRJ5IMEKIAnTNo0DfafINPAppwf2CZyY6zSmZ9GEHdFqI74l4y7xgtw8wwYFwLSA6kg\n D+E5VpCG8FkmVbsJCmZ0tysrhGXotB9ydCPJmuUbTXBbMz6tv90BIWGkrb/cGSa8TBiW\n W6L5oj2MHw6ybPQQyWhZYvSre11Gzlq+WjK9XhIRAeEZvc+kBTwDfDtbnhcRS0N/4KAg\n cizg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770939968; x=1771544768;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=luaT4ogN3kuDQSmznOCyfhY3qOLWnWLi3BZPktB1v6U=;\n b=WclczCwkZcGoY4j9hV2rIa2Lc02jBK7EXTSWWceBULGo5cxjOxYVmKEFvabd73Z9iV\n MAp7F+7VXmYFPuNzoo8nTdrKqigRoCByXDq7segDcCD+8Y6NGgGLKKcmmYj+2yGCciGt\n KoW6UpORrhbaMM9XtRRPy5XP0pvgQbq2lJth4K0rm70B0UFKodLByoM6Bshlb1KPQzU/\n /kIWr5BtdVolI+AJiIrWTLWCExRudoBeqQ1hrEDtrpyGjK/AimQBHD3v9mAl5tMg8DSi\n dNtBfcQt3S6hEQWbpgismOs36JlCh7DU0EFa5tWSinoipdjKpdhrbZtp3kg7/yUD0zay\n cyZQ==", "X-Gm-Message-State": "AOJu0Yzs87UX+DOg5/xvH9cAIMa2ltYTdh9Yyn7Wax78ctqs5Wrxgoin\n y5rFzlGj7yV8h2IaX4o+0WbNEohjWUkgBjVuFAn1xIt1Fqk27IonVPV1B2DcxCRcbaCyaXleONq\n ctxVA", "X-Gm-Gg": "AZuq6aI3PsNwVEm21prVoHH1yTyCg0JXbh/aOEFoyjGSeWN3fxQvFgWra/sP/weLFXq\n mK1/uIvZ3JcfT2XRRZabgfxqgTk8B/ItIEzjJJ9rUD5Cq4abU4U7d4X9d3WCLVbaIap9TJHTbDm\n iS0bwI/+qRu4/BXv26CNz6cuO4Czjv+fdfKAkStNYSik/kBzseLLa/3WAcM6oZ3vRsB8t6a/LUf\n q9bLCfoULJSdzou3HHq3Dk54INBwK5UcSyDZ85KBz5P/XD7B/YTjBW3njUD7tr6nWN2TkYh9ehD\n ItSqUJw0ZeKueLEeU/MAQ8n0jexz+L/vo/ftqfKKWwVKNqwDxFselG9p54k0VpNWo4mq67Mv9ay\n MJznRYej4wo8wrqoKLplqlDpr4ByMp+9U2uHOqlycCTFAqEzoLBS+NujC98mp5oQfAcVhOr4YU4\n RqF6ugk/wJ3SuvIBLvtASNUms2KWnULN2O1G4RaDOEH+etqn9XAryFDHzCaET2jvRxYq3LBxehS\n cBx", "X-Received": "by 2002:a05:6a21:6f0d:b0:38b:dd94:936a with SMTP id\n adf61e73a8af0-3946a886795mr28051637.24.1770939968019;\n Thu, 12 Feb 2026 15:46:08 -0800 (PST)", "From": "Pierrick Bouvier <pierrick.bouvier@linaro.org>", "To": "qemu-devel@nongnu.org", "Cc": "qemu-ppc@nongnu.org, Pierrick Bouvier <pierrick.bouvier@linaro.org>,\n Harsh Prateek Bora <harshpb@linux.ibm.com>,\n Stefano Garzarella <sgarzare@redhat.com>, Jason Wang <jasowang@redhat.com>,\n Nicholas Piggin <npiggin@gmail.com>, stefanha@redhat.com,\n richard.henderson@linaro.org, \"Michael S. Tsirkin\" <mst@redhat.com>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>", "Subject": "[PATCH 0/3] hw/virtio/virtio-access.h: remove target specific code", "Date": "Thu, 12 Feb 2026 15:45:59 -0800", "Message-ID": "<20260212234602.338131-1-pierrick.bouvier@linaro.org>", "X-Mailer": "git-send-email 2.47.3", "Content-Type": "text/plain; charset=\"utf-8\"", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2607:f8b0:4864:20::42b;\n envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x42b.google.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 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 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable 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 eliminates some target specifics in hw/virtio and replace them with\nruntime functions where needed, to be able to link virtio code in single-binary.\nAfter a first try on a series [0] doing this change and making all virtio files\ncommon, Richard asked to refactor this part, thus this independent series.\n\nBy diving into virtio initialization, I noticed that device_endian is always\nstoring endianness of cpu associated on device reset. The root issue, is when\ndealing with target who dynamically change their endianness during execution.\nppc64 is the main use case, as cpu always boot in BE and most of OS use LE. arm\nuse case is more limited, as big endian systems are mostly dead nowadays.\n\nBecause of this, initialization is tricky, and goes through different hoops to\nhave the expected value. My first approach has been to try to change this, by\nsimply setting endianness on the first access. However, it fell flat, because\ncurrent_cpu is not always available at this time.\nA second approach was to set endianness to LE by default, and change it only\nwhen setting device features, and potentially discovering it's a legacy virtio\ndevice. It brought other issues, that showed that current initialization code,\neven though it's complex, does the right thing.\nThus, I focused on refactoring virtio_access_is_big_endian, and noticed that it\nwas not even needed at this point.\n\nPatches 1 and 2 are refactoring names to clear some confusion.\nPatch 3 eliminates virtio_access_is_big_endian, with a lenghty commit message\nexplaining the change. By doing this, we remove target specifics from\nhw/virtio/virtio-access.h.\n\nOf course, performance has been tested, and it is on par with upstream/master.\n\nResults are on 20 runs and expressed in kIOPS:\nreference: mean=239.2 std_dev=3.48\nwith_series: mean=238.1 std_dev=3.56\n\n---\n\nPerformance has been measured with this automated fio benchmark [1], with\noriginal instructions from Stefan [2].\n\nDownload artifacts and run benchmark with:\n$ wget https://github.com/pbo-linaro/qemu-linux-stack/releases/download/build/x86_64_io_benchmark-a55f2d6.tar.xz\n$ tar xvf x86_64_io_benchmark-a55f2d6.tar.xz\n$ ./run.sh /path/to/qemu-system-x86_64\n\n[0] https://lore.kernel.org/qemu-devel/20260206221908.1451528-1-pierrick.bouvier@linaro.org/\n[1] https://github.com/pbo-linaro/qemu-linux-stack/tree/x86_64_io_benchmark\n[2] https://lore.kernel.org/qemu-devel/20260202185233.GC405548@fedora/\n\nPierrick Bouvier (3):\n hw/virtio: add virtio_vdev_is_{modern, legacy}\n hw/virtio: rename virtio_is_big_endian to virtio_vdev_is_big_endian\n hw/virtio: remove virtio_access_is_big_endian\n\n include/hw/virtio/virtio-access.h | 43 +++++++++----------------------\n include/hw/virtio/virtio.h | 14 ++++++++--\n hw/net/virtio-net.c | 6 ++---\n hw/virtio/vhost.c | 6 ++---\n hw/virtio/virtio-pci.c | 10 +++----\n hw/virtio/virtio.c | 20 +++++++-------\n 6 files changed, 45 insertions(+), 54 deletions(-)" }