[{"id":3675268,"web_url":"http://patchwork.ozlabs.org/comment/3675268/","msgid":"<6c5a98ca-2ac4-4239-b3aa-30e5572f2c72@redhat.com>","list_archive_url":null,"date":"2026-04-09T11:50:58","subject":"Re: [PATCH 1/3] vfio-user: support VFIO_USER_DEVICE_FEATURE","submitter":{"id":85406,"url":"http://patchwork.ozlabs.org/api/people/85406/","name":"Cédric Le Goater","email":"clg@redhat.com"},"content":"On 4/9/26 12:47, John Levon wrote:\n> Plumb through vfio_device_get_feature to the vfio-user server. Note that\n> we translate EINVAL into ENOTTY, as the existing generic vfio code is\n> expecting the latter to mean \"unsupported\".\n> \n> As part of adding a trace point, clean up the trace file.\n> \n> Signed-off-by: John Levon <john.levon@nutanix.com>\n> ---\n>   hw/vfio-user/protocol.h   | 12 +++++++++++\n>   hw/vfio-user/device.c     | 42 +++++++++++++++++++++++++++++++++++++++\n>   hw/vfio-user/trace-events | 23 +++++++++++----------\n>   3 files changed, 67 insertions(+), 10 deletions(-)\n> \n> diff --git a/hw/vfio-user/protocol.h b/hw/vfio-user/protocol.h\n> index 3249a4a6b6..2a0c31e7c5 100644\n> --- a/hw/vfio-user/protocol.h\n> +++ b/hw/vfio-user/protocol.h\n> @@ -40,6 +40,7 @@ enum vfio_user_command {\n>       VFIO_USER_DEVICE_RESET              = 13,\n>       VFIO_USER_DIRTY_PAGES               = 14,\n>       VFIO_USER_REGION_WRITE_MULTI        = 15,\n> +    VFIO_USER_DEVICE_FEATURE            = 16,\n>       VFIO_USER_MAX,\n>   };\n>   \n> @@ -239,4 +240,15 @@ typedef struct {\n>       VFIOUserWROne wrs[VFIO_USER_MULTI_MAX];\n>   } VFIOUserWRMulti;\n>   \n> +/*\n> + * VFIO_USER_DEVICE_FEATURE\n> + * imported from struct vfio_device_feature\n> + */\n> +typedef struct {\n> +    VFIOUserHdr hdr;\n> +    uint32_t argsz;\n> +    uint32_t flags;\n> +    char data[];\n> +} VFIOUserDeviceFeature;\n> +\n>   #endif /* VFIO_USER_PROTOCOL_H */\n> diff --git a/hw/vfio-user/device.c b/hw/vfio-user/device.c\n> index 64ef35b320..b8d2b7c1a8 100644\n> --- a/hw/vfio-user/device.c\n> +++ b/hw/vfio-user/device.c\n> @@ -74,6 +74,47 @@ void vfio_user_device_reset(VFIOUserProxy *proxy)\n>       }\n>   }\n>   \n> +static int\n> +vfio_user_device_io_device_feature(VFIODevice *vbasedev,\n> +                                   struct vfio_device_feature *feature)\n> +{\n> +    g_autofree VFIOUserDeviceFeature *msgp = NULL;\n> +    int size = sizeof(VFIOUserHdr) + feature->argsz;\n> +    VFIOUserProxy *proxy = vbasedev->proxy;\n> +    Error *local_err = NULL;\n> +\n> +    msgp = g_malloc0(size);\n> +\n> +    vfio_user_request_msg(&msgp->hdr, VFIO_USER_DEVICE_FEATURE, size, 0);\n> +\n> +    memcpy(&msgp->argsz, &feature->argsz, feature->argsz);\n> +\n> +    if (!vfio_user_send_wait(proxy, &msgp->hdr, NULL, size, &local_err)) {\n> +        error_prepend(&local_err, \"%s: \", __func__);\n> +        error_report_err(local_err);\n> +        return -EFAULT;\n> +    }\n> +\n> +    if (msgp->hdr.flags & VFIO_USER_ERROR) {\n> +        /*\n> +         * Client expects ENOTTY for \"not supported\", but the protocol may\n> +         * return EINVAL (which should only occur in the case the feature isn't\n> +         * actually supported on the server).\n> +         */\n> +        if (msgp->hdr.error_reply == EINVAL) {\n> +            return -ENOTTY;\n> +        }\n\nMay be this is not necessary anymore with :\n\n   https://lore.kernel.org/qemu-devel/20260409114312.1704062-1-clg@redhat.com/\n\n> +\n> +        return -msgp->hdr.error_reply;\n> +    }\n> +\n> +    memcpy(feature, &msgp->argsz, feature->argsz);\n> +\n> +    trace_vfio_user_device_io_device_feature(msgp->argsz, msgp->flags);\n> +\n> +    return 0;\n> +}\n> +\n>   static int vfio_user_get_region_info(VFIOUserProxy *proxy,\n>                                        struct vfio_region_info *info,\n>                                        VFIOUserFDs *fds)\n> @@ -432,6 +473,7 @@ static int vfio_user_device_io_region_write(VFIODevice *vbasedev, uint8_t index,\n>    * Socket-based io_ops\n>    */\n>   VFIODeviceIOOps vfio_user_device_io_ops_sock = {\n> +    .device_feature = vfio_user_device_io_device_feature,\n>       .get_region_info = vfio_user_device_io_get_region_info,\n>       .get_irq_info = vfio_user_device_io_get_irq_info,\n>       .set_irqs = vfio_user_device_io_set_irqs,\n> diff --git a/hw/vfio-user/trace-events b/hw/vfio-user/trace-events\n> index abb67f4c11..84714781cf 100644\n> --- a/hw/vfio-user/trace-events\n> +++ b/hw/vfio-user/trace-events\n> @@ -2,19 +2,22 @@\n>   #\n>   # SPDX-License-Identifier: GPL-2.0-or-later\n>   \n> -# common.c\n> +# container.c\n> +vfio_user_dma_map(uint64_t iova, uint64_t size, uint64_t off, uint32_t flags, bool async_ops) \" iova 0x%\"PRIx64\" size 0x%\"PRIx64\" off 0x%\"PRIx64\" flags 0x%x async_ops %d\"\n> +vfio_user_dma_unmap(uint64_t iova, uint64_t size, uint32_t flags,  bool async_ops) \" iova 0x%\"PRIx64\" size 0x%\"PRIx64\" flags 0x%x async_ops %d\"\n> +\n> +# device.c\n> +vfio_user_device_io_device_feature(uint32_t argsz, uint32_t flags);\n\nmissing format here ^\n\n\nThanks,\n\nC.\n\n\n> +vfio_user_get_info(uint32_t nregions, uint32_t nirqs) \" #regions %d #irqs %d\"\n> +vfio_user_get_irq_info(uint32_t index, uint32_t flags, uint32_t count) \" index %d flags 0x%x count %d\"\n> +vfio_user_set_irqs(uint32_t index, uint32_t start, uint32_t count, uint32_t flags) \" index %d start %d count %d flags 0x%x\"\n> +vfio_user_get_region_info(uint32_t index, uint32_t flags, uint64_t size) \" index %d flags 0x%x size 0x%\"PRIx64\n> +vfio_user_region_rw(uint32_t region, uint64_t off, uint32_t count) \" region %d offset 0x%\"PRIx64\" count %d\"\n> +\n> +# proxy.c\n>   vfio_user_recv_hdr(const char *name, uint16_t id, uint16_t cmd, uint32_t size, uint32_t flags) \" (%s) id 0x%x cmd 0x%x size 0x%x flags 0x%x\"\n>   vfio_user_recv_read(uint16_t id, int read) \" id 0x%x read 0x%x\"\n>   vfio_user_recv_request(uint16_t cmd) \" command 0x%x\"\n>   vfio_user_send_write(uint16_t id, int wrote) \" id 0x%x wrote 0x%x\"\n>   vfio_user_version(uint16_t major, uint16_t minor, const char *caps) \" major %d minor %d caps: %s\"\n> -vfio_user_get_info(uint32_t nregions, uint32_t nirqs) \" #regions %d #irqs %d\"\n> -vfio_user_get_region_info(uint32_t index, uint32_t flags, uint64_t size) \" index %d flags 0x%x size 0x%\"PRIx64\n> -vfio_user_region_rw(uint32_t region, uint64_t off, uint32_t count) \" region %d offset 0x%\"PRIx64\" count %d\"\n> -vfio_user_get_irq_info(uint32_t index, uint32_t flags, uint32_t count) \" index %d flags 0x%x count %d\"\n> -vfio_user_set_irqs(uint32_t index, uint32_t start, uint32_t count, uint32_t flags) \" index %d start %d count %d flags 0x%x\"\n>   vfio_user_wrmulti(const char *s, uint64_t wr_cnt) \" %s count 0x%\"PRIx64\n> -\n> -# container.c\n> -vfio_user_dma_map(uint64_t iova, uint64_t size, uint64_t off, uint32_t flags, bool async_ops) \" iova 0x%\"PRIx64\" size 0x%\"PRIx64\" off 0x%\"PRIx64\" flags 0x%x async_ops %d\"\n> -vfio_user_dma_unmap(uint64_t iova, uint64_t size, uint32_t flags,  bool async_ops) \" iova 0x%\"PRIx64\" size 0x%\"PRIx64\" flags 0x%x async_ops %d\"","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 (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=F7vEivH9;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=jemyK8gJ;\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 (lists1p.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 4fryw33g9dz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 21:52:01 +1000 (AEST)","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 1wAnui-0005d2-DT; Thu, 09 Apr 2026 07:51:12 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@redhat.com>) id 1wAnug-0005ci-Ge\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 07:51:10 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@redhat.com>) id 1wAnue-0006gG-8u\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 07:51:10 -0400","from mail-wr1-f70.google.com (mail-wr1-f70.google.com\n [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-190-300SpazOOemHpAd0_EYLOA-1; Thu, 09 Apr 2026 07:51:01 -0400","by mail-wr1-f70.google.com with SMTP id\n ffacd0b85a97d-43d167a0c1fso556240f8f.3\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 04:51:01 -0700 (PDT)","from ?IPV6:2a01:e0a:165:d60:bbdd:3c5e:7d8b:3f72?\n ([2a01:e0a:165:d60:bbdd:3c5e:7d8b:3f72])\n by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43d1e4f52easm67473264f8f.36.2026.04.09.04.50.58\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Thu, 09 Apr 2026 04:50:59 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775735465;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;\n bh=MbXxmVu9Xmy1MKFwhFhmGRERwbWRz32beMl+jXO5NSo=;\n b=F7vEivH9Yy++QGqVHrmtcT5GJedYRUB626KVZcsdE7DImdVmJNkqCfqMKOLgkFcSL1N1bU\n wGiFY3vslxBRo3BKQcZmHsISsxU9kf9N8Wqn8mkHQ6xhtca2X+6uoA/Xvkzko4BVsmcTEm\n G+RZd7wTdrqJ/uentZ0L5lxW6U2eMiw=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1775735460; x=1776340260; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:autocrypt:from\n :content-language:references:cc:to:subject:user-agent:mime-version\n :date:message-id:from:to:cc:subject:date:message-id:reply-to;\n bh=MbXxmVu9Xmy1MKFwhFhmGRERwbWRz32beMl+jXO5NSo=;\n b=jemyK8gJrVig4EFEf7UjJPf1sY6TEGkFatL/lzg5clAKlsMYXQgOfXeJdz/QvroiQc\n H2SnV8EfxX5exe0zlb3J/ykX0p1ArZ+qNAzFAPhuzodT29tK9Xiqm+qPMmy6EIUJI0qN\n QIFUqBMPLzjviFGCXbusZa4SruSPrGplkU5opj4Xuo+nT47I0vngR0t/fGfQneN+2tJc\n uBFhzw5R32bvSr6/eZGX91O1VJUzfGc0Oe+YFTQWPkk/byJPKIboRFcgJCFxBQZhtuT0\n Kc9yCv4jgEZ/LIoCj6NunGDAIGYDxM+x3hgYs/DG4GPDG3mDqRoftvAaU+GJ3rmWQyzX\n gQ7g=="],"X-MC-Unique":"300SpazOOemHpAd0_EYLOA-1","X-Mimecast-MFC-AGG-ID":"300SpazOOemHpAd0_EYLOA_1775735460","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775735460; x=1776340260;\n h=content-transfer-encoding:in-reply-to:autocrypt:from\n :content-language:references:cc:to:subject:user-agent:mime-version\n :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=MbXxmVu9Xmy1MKFwhFhmGRERwbWRz32beMl+jXO5NSo=;\n b=E3uWlyF7YRX0rmkgehP+2TUtVmc239VCzil+NvSAKzSKRML0Q/PbrLLvufqt7GHVgk\n gcvwyf/KB2YQrsnwX/o8r35aYIbGidW6MIq8mnK3bvelQCXEnb/S8o1yemIrwTm7AdFI\n V++mqgdH1OPjq3QAgZNS2EHjzdzQbumgyCLLFHqBEyz6kgyg6LlC1EZqjK3eIPC6SGVk\n dWBAeJugK19iLg0JMWLk2ZhdDlCzHwgUhh8G8YGNXlpMSRbJr/fLtAgGunWXYPBkZuRw\n FJ6nEZF/LQfjBDQRzR1iT7d15lNIi73oRbYH/ewRxo97UdLGlLnHrOSkJWPkthJa1L55\n DCkQ==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXB3u5lYJmcrD2l+RjBTORqUlPuOjLqBc1GLZd1RHcVdhFn2L403xcLurrA+ssVrev8DwGxynZ31Js5@nongnu.org","X-Gm-Message-State":"AOJu0YxKltle7ttXje9zYatbDNqetW+NhshikDWzC2d0SJ5Zt1llJ4W/\n yNt8PdQ1ink7nqDijCDxw8qq8KL61POsO4Bv/UHSQqZJG/0OazeR/DugR5mYpsd3XTrdH4hcTRd\n ojvrpx430VVjSFDqlUe7DRQEnWdUvqr6lD6lzATVu8u2ssg89Zy5GYtrr","X-Gm-Gg":"AeBDieuF4sbHrONc5OsDtQGzTzp7Hvv86jojfeZeJEd2HeHsLdj145yDaQHOAZMAARg\n 4TDKMJWk0r5uCKknH2UjzyRQSEknFVJdj+DqBsvwNIvaXm/ptwUMDjrHn4qpEhoPJ54v4POVAOW\n IGtFvQIFjptbY9un84ayMX52vl1DxjfNvxIysq82ighVj6fdBOPfOUHmov+TAarqFQEa/M+rtEe\n 4dVMQMigWPOwNCk/PPU73P9E7m0KXXwCt1j7lxDUWuNnl7x7t5R9Q8lgNoowQ3GTGDRJYli6n/+\n nAfdloeQTAluh9VVq6raa92PJA7RWbYDVCXWbo/JWSmifyHyPf2stMNH6flqJoM5+qC12G7bmK/\n Dc0k2wRp9JJ7lsAcn7d6Yfe6exrZF8xSRsdPz/mj0AJqTmsRIEbUvVBenaQ==","X-Received":["by 2002:a05:6000:1789:b0:43d:1bf6:30f7 with SMTP id\n ffacd0b85a97d-43d2927716bmr35454842f8f.18.1775735460323;\n Thu, 09 Apr 2026 04:51:00 -0700 (PDT)","by 2002:a05:6000:1789:b0:43d:1bf6:30f7 with SMTP id\n ffacd0b85a97d-43d2927716bmr35454795f8f.18.1775735459763;\n Thu, 09 Apr 2026 04:50:59 -0700 (PDT)"],"Message-ID":"<6c5a98ca-2ac4-4239-b3aa-30e5572f2c72@redhat.com>","Date":"Thu, 9 Apr 2026 13:50:58 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/3] vfio-user: support VFIO_USER_DEVICE_FEATURE","To":"John Levon <john.levon@nutanix.com>, qemu-devel@nongnu.org","Cc":"Thanos Makatos <thanos.makatos@nutanix.com>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>","References":"<20260409104756.465294-1-john.levon@nutanix.com>\n <20260409104756.465294-2-john.levon@nutanix.com>","Content-Language":"en-US, fr","From":"=?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@redhat.com>","Autocrypt":"addr=clg@redhat.com; keydata=\n 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\n uVKe8BVz4atMOoktmt0GWTOC8P4=","In-Reply-To":"<20260409104756.465294-2-john.levon@nutanix.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=170.10.133.124; envelope-from=clg@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-25","X-Spam_score":"-2.6","X-Spam_bar":"--","X-Spam_report":"(-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-0.001, 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"}},{"id":3675288,"web_url":"http://patchwork.ozlabs.org/comment/3675288/","msgid":"<adecGoLC4Txe18Fm@lent>","list_archive_url":null,"date":"2026-04-09T12:31:22","subject":"Re: [PATCH 1/3] vfio-user: support VFIO_USER_DEVICE_FEATURE","submitter":{"id":80631,"url":"http://patchwork.ozlabs.org/api/people/80631/","name":"John Levon","email":"john.levon@nutanix.com"},"content":"On Thu, Apr 09, 2026 at 01:50:58PM +0200, Cédric Le Goater wrote:\n\n> > +        /*\n> > +         * Client expects ENOTTY for \"not supported\", but the protocol may\n> > +         * return EINVAL (which should only occur in the case the feature isn't\n> > +         * actually supported on the server).\n> > +         */\n> > +        if (msgp->hdr.error_reply == EINVAL) {\n> > +            return -ENOTTY;\n> > +        }\n> \n> May be this is not necessary anymore with :\n> \n>   https://urldefense.proofpoint.com/v2/url?u=https-3A__lore.kernel.org_qemu-2Ddevel_20260409114312.1704062-2D1-2Dclg-40redhat.com_&d=DwICaQ&c=s883GpUCOChKOHiocYtGcg&r=v7SNLJqx7b9Vfc7ZO82Wg4nnZ8O5XkACFQ30bVKxotI&m=lpMrwUH_bH0I_KS0ucNhIf9acrnTdwuaRPGfJXRAj2yImpt5jpWGpP82gP4MJmRZ&s=9mI6zaw_Kt3ZLTto-WtxWPFKpQrqx-H7KpgUyvxnWEQ&e=\n\nI think it's still necessary in general - ENOTTY is what kernel vfio returns so\nwe need to align for that for any other use cases.\n\n> > +\n> > +# device.c\n> > +vfio_user_device_io_device_feature(uint32_t argsz, uint32_t flags);\n> \n> missing format here ^\n\nOops, surprised I didn't get errors with this\n\nregards\njohn","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=nutanix.com header.i=@nutanix.com header.a=rsa-sha256\n header.s=proofpoint20171006 header.b=qZCbzLPs;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256\n header.s=selector1 header.b=ZQhrntbK;\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 (lists1p.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 4frzpG4ZSdz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 22:32:06 +1000 (AEST)","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 1wAoXz-0006Db-Qi; Thu, 09 Apr 2026 08:31:48 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <john.levon@nutanix.com>)\n id 1wAoXv-0006D2-14\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 08:31:43 -0400","from mx0b-002c1b01.pphosted.com ([148.163.155.12])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <john.levon@nutanix.com>)\n id 1wAoXs-0007Wt-H8\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 08:31:42 -0400","from pps.filterd (m0127842.ppops.net [127.0.0.1])\n by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 6397Dm6s3196937; Thu, 9 Apr 2026 05:31:37 -0700","from bl0pr03cu003.outbound.protection.outlook.com\n (mail-eastusazon11022093.outbound.protection.outlook.com [52.101.53.93])\n by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4dcms479fv-1\n (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);\n Thu, 09 Apr 2026 05:31:37 -0700 (PDT)","from CH2PR02MB6760.namprd02.prod.outlook.com (2603:10b6:610:7f::9)\n by CY8PR02MB10185.namprd02.prod.outlook.com (2603:10b6:930:58::20) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.20; Thu, 9 Apr\n 2026 12:31:32 +0000","from CH2PR02MB6760.namprd02.prod.outlook.com\n ([fe80::dbc1:9766:c58d:4887]) by CH2PR02MB6760.namprd02.prod.outlook.com\n ([fe80::dbc1:9766:c58d:4887%6]) with mapi id 15.20.9769.035; Thu, 9 Apr 2026\n 12:31:32 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=\n proofpoint20171006; bh=IJF+aXVPZvLdqSDQMe/zeKDjEfdNRolH+JpdPytaL\n kc=; b=qZCbzLPsbH7KUY2+zeSfgUfjJE+FuAyaufKsBrUDs5omUn99InyTdq3lT\n bWEx7AUYswy7NnOsZK3MkMRiByoTxzYjmg9c3SLdu4DQzSQcd4e/m487A0A15SWD\n TYfRj6WnbvOlO3qESuiLeUenUc3IVnFeIcW6SV1weEImPzjYwC4f+ngom1Kx+nlZ\n PY94COz2Kl7dbApzowdgAZ47C6hanfZrpixqFpqxWt59y6JAR/wnHta4ZWHhnKxJ\n nItP7JTGy1nerSqwOauAAAjfxNIm0D98sjDTXoibeQDjwp+igsZeQaErDBDqlNGl\n +FI/oh1gbhja4bWZXSVy4SBa4sGJg==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=ZNayOQpBwM4M2wJ/jOw0QXG7vZsw92xz3ljT9Om6wuc=;\n b=ZQhrntbKvHm86Hl38PuGY/kqVI9bZ6r2QeSob5JWcdCNrn9NF3CwyfGyj9yY26ey/Y7NZ32YGVnL644R4Uj0dY8yWcU/fbLo6ur+xM/o1h7SDDdkau4UJqd1rfygDEhcOzRMKhRXlcjN1mgkSEPwV+UK2/8qtMuBiO/BotW4PrdiGMZfJai+zCf+WSCuASi5KTxf3SyZoQ2KI9fOEPi7SZs6v/wdCCSpTEb3WuXSm+IZjxUZhVyo4/Uz1rpxUQ0cw3KZWeM0yi0y47F69pco5b1JAU7s5n6HS5jd6pXzf/5/mppM266Thx05O4mW9nXE670LdTWWL+k3o0ZMwXR6xQ=="],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=RHFsqD2CgoroddJoG+GYhN9PDx21gxKfdGVubi+Dj340dcUKpy3k/8MXfjzSk5PGu4pswVubXL64sfNLQxo5ionFzsPXinMB6aaxdD4e3CSUYE7yvi5g2diIDHSdVZTTYizB5G/UU1jgeRSpy0juw3le0YtzfA+NcALgPFKm+oLiFLzYzcQ2jaEZGsiCN3EAfXh02C864twM7cmJCasgrV7kHhZDkXHV4wxi3fM2XHGXPOizvvMcpkFf4iLlo78EiM9asYgNcEi4zEUIjvUuRMxAF85B+Tb+XGvzpONiSHgS95NjV9wtslsDgpc3T14yjzJtmEuaNFVduFY8hodYfg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=ZNayOQpBwM4M2wJ/jOw0QXG7vZsw92xz3ljT9Om6wuc=;\n b=NDeb2rknYXzj5oboC68bOGFhmJa2SFmIPoJXcT53nW9l4JGbwKcLKrW+OynWUIoZqLPgu+RWPBjDgyTHUnAG+VTvBRQYeNZvdhYwYasr3LYN1CyqrE+Hg37aIe5euLkG6XKZVTUzTZUDnET6lWD6VBwWF8R+f+bwK6Sn13t1T7cq1uvN+gRjFcyGxQPsyTuPVn0+T1cFIIIDMM5GE22Yd21POoCPfj5IWjLfh3l6qpO/do6qhjamyRPCBGCjHgDgfjAh/sLpKOeVjgWbXnqo8fER+tNs+wbgOpAdZxDcavFhm7OY0CgiHSS0LDAiIUqFMACGsVS5ldu83rGlyqv/4Q==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com;\n dkim=pass header.d=nutanix.com; arc=none","Date":"Thu, 9 Apr 2026 13:31:22 +0100","From":"John Levon <john.levon@nutanix.com>","To":"=?iso-8859-1?q?C=E9dric?= Le Goater <clg@redhat.com>","Cc":"qemu-devel@nongnu.org, Thanos Makatos <thanos.makatos@nutanix.com>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>","Subject":"Re: [PATCH 1/3] vfio-user: support VFIO_USER_DEVICE_FEATURE","Message-ID":"<adecGoLC4Txe18Fm@lent>","References":"<20260409104756.465294-1-john.levon@nutanix.com>\n <20260409104756.465294-2-john.levon@nutanix.com>\n <6c5a98ca-2ac4-4239-b3aa-30e5572f2c72@redhat.com>","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<6c5a98ca-2ac4-4239-b3aa-30e5572f2c72@redhat.com>","X-Url":"http://www.movementarian.org/","X-ClientProxiedBy":"LO4P265CA0080.GBRP265.PROD.OUTLOOK.COM\n (2603:10a6:600:2bd::10) To CH2PR02MB6760.namprd02.prod.outlook.com\n (2603:10b6:610:7f::9)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"CH2PR02MB6760:EE_|CY8PR02MB10185:EE_","X-MS-Office365-Filtering-Correlation-Id":"9fd6ac01-a690-4010-f95d-08de9633ee34","x-proofpoint-crosstenant":"true","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|1800799024|376014|366016|22082099003|18002099003|56012099003;","X-Microsoft-Antispam-Message-Info":"\n sHslVGPkiSbvUCpG9tkevac9G5o0o7s67bs65yNKc9L23ERK5a2UrDxlidlf0pPtHEfK/ixrjdmvEduhl/j+00FsMk4fOM/RAzOndCzzaf2A4J4WzMFdj8gBD0lND3PqSNEbbEShiwiDb0xZqjH1FGdTtu01Cy93Dt0yogKcm2ZyLUywAVY3nVct98RKSykD594Qw4Cp36aGzm50OrCmzymQR+BsBrA4tkX/i0dIw6ZGQXUWxQZr+e7STP1jDfT1on2SG3bI8cmNIkWljr2+s25DMH9pUdgTqIQxArzxmm4XyaxDbVArGw1ysNBgybd53NS6cWE77BXfMZqPxKk6ubl91iPTRiOYiddMKwWWxMEz2kWm2pcW0ZU47rYnGdCTB6Tf9+NaBMp/faziTE5800DyN/od5r2F7OVGlZhbUVyz8g6jiVGN5yMZREtmuRf2weXugBkMTSRcugk/8maaxiI9mKxDpz/EbYeO47iVIioAqfuZD5th4kDyXUw6Aj/Zl3CFsYTs2nZ6MmrKwiF0HAVtJPa22PL/1wrSAJpdZVlc19PKtS/0tC4SP/9YoeU5ekNsE+jTPrLOPlD6RbAkgwGni2BTbf8IKeovgCULBLAtDYWqRxAm6TQfTFe4Jze9jou4JJOe7HPgKqYaHqHPAdXTGKcj+kgKTasGCMy7rY+kw4eW4lo7p2uGtRNl+tWUClpplbLVtM6ieB5Wh9P992QXtwaa0KFN62AxK0RMViI=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:CH2PR02MB6760.namprd02.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(18002099003)(56012099003);\n DIR:OUT; SFP:1102;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?iso-8859-1?q?q/clUE78G/lL1JHS7XB9NoT?=\n\t=?iso-8859-1?q?bz1O9NZO7V26LYQKN8RSM+AeU9bDJFfZRtfkHlvAn6ock6zYPdgDSeFx1AuV?=\n\t=?iso-8859-1?q?GZ9eV7Z/dIP59VNB6aNiNuYl9N6IT0EB0iQSMt+1PKsz+GSTFSCwxPKnORZU?=\n\t=?iso-8859-1?q?wK/dsVXLTTjxHYT4PJOe70FcS1YAF2l3k+k2wysEo5Bz8wAi61kuRXX2G37X?=\n\t=?iso-8859-1?q?ZJdvoZOkHQHtfl8Er4fYhr+pPq6l9+Xb0IfrECglRqmXVKOn48s1TSiV96Og?=\n\t=?iso-8859-1?q?S1jlB7wO84CiRYfWNZ0M5F+FDnkWxxcYpO0IhoT8EMqzewS6mP6Gbtq4dg7a?=\n\t=?iso-8859-1?q?K3eQ9mJ+/nLYNoBRH0tKbgpEVtojFVI6/ZKCGKonp84NsVnHqM+KkyWtH0Y+?=\n\t=?iso-8859-1?q?krA1VyU0KCNwjLO33TP+C9WQ3mJiyETCUu5KtyzONQlcuNzV2t2eblxhDfQZ?=\n\t=?iso-8859-1?q?048lr2qoVvMhjjzaQVJduMYYxDjFKy1O/kTWTpcNgXLNXNLYSOg0bQJOiPkz?=\n\t=?iso-8859-1?q?a82NYtK8q+diHB4krR7MuyVqueo3U6WxOKgl+oxpVhjwtjr9w3XHQIDODzfA?=\n\t=?iso-8859-1?q?h6k/PYw7VnQVokilhQbqfDc0N5uZuVKdopOCTmx3SnO0cJd1aWVbvNDB0jVC?=\n\t=?iso-8859-1?q?nnjS1IqplrTsqDuR+zeVDLHCNmsYVHjYwWLSGv/0XjxF3T4H1BUJKbGSBvNZ?=\n\t=?iso-8859-1?q?HzKz4QmeJLGZarWhZG/Cyoi6CDkqmjfduxcHdGpzAswARk5qMUk9MSOM+2fr?=\n\t=?iso-8859-1?q?iCbGZHlrERtsJZ4tjDSTgDgegCy417YLjt4+Tj6Yb+/8UnZAEavSrLSd46+S?=\n\t=?iso-8859-1?q?XTlNBhWaoK8GplKZrvy4UV9BJETto2SpJY8RzQJSv3/1ocXqkaL9LQwfmOxb?=\n\t=?iso-8859-1?q?fN7sB607oWlX5BYdlbuaEPYq2pT3+c1ghAVq+Ipx/VU7OS+fuDEN8XJS8jbw?=\n\t=?iso-8859-1?q?rDzmXLdWg6T805Eo19Ou2i2QNeoBJI4jhppeyPNi0sd8qVm1Y8xCJYD72p7G?=\n\t=?iso-8859-1?q?t22k0mYMLyOZtmC4EWRSUT5u/RAziCpC+EXZJjSgEl+2Nxg9RbRl8rBT0qcb?=\n\t=?iso-8859-1?q?fHqtpS5l9hvItm3Nh2nMYYKERtbdwpBuFKww9MIuy5+24IXuP2MaWXzKW3+h?=\n\t=?iso-8859-1?q?WkmZADSwbzMRjh5Ucpw9hSzZ1iv39t00LFFqgjG3Nf0Omb+r9W+wJaxP8i/z?=\n\t=?iso-8859-1?q?gBWUISf+vnJeY2N74MIRZ2i3SgmiQv30+ZwUfOkw0jTdSZkr8DfP/XyRHk0O?=\n\t=?iso-8859-1?q?gpVagZ+pDkvxNCLXmkcZXlTx9N9L3EF19RO12bE+w2lap+cqlGoIo4drS4+O?=\n\t=?iso-8859-1?q?aznWEgpYAHR3r2z+jjip2SDNZaOOTfCDMiRqAE7BIrc4hKtWjqS1OTE/dKqf?=\n\t=?iso-8859-1?q?llZZFqYOmIgBw9jYRgyXeCl43ejOvJSZ25QmHJAWUWYloyn9eFeg7HlAKthz?=\n\t=?iso-8859-1?q?RHfZBKDYXBeRM1GWav+FLudYSZ1iJF4ZntBKs1CZAv/Bc+G+zq8OwwV5Wm+B?=\n\t=?iso-8859-1?q?dciVoJagW/xo1fXkYCo/3JUWXR6VpykSadcppLOq/fTo3sow1JI76c4XXHqD?=\n\t=?iso-8859-1?q?yPwFZ1SElhcT8GTOYc7cig345q/FtrnR13gcg6bibM22WU3Y3DWM1sc5I/Am?=\n\t=?iso-8859-1?q?XO4PDrsNXGHmQK7BEpuu7AH6AUyWgZ8vNQvMRYKs2lr0XCOa5lh9Ml+VAgkO?=\n\t=?iso-8859-1?q?LYLKOxjwPx8QIotXo/8l3SrM12kJPEgbr2DPkwVUeyalBoovEHuB8gTZUd7G?=\n\t=?iso-8859-1?q?nkcnHkOtcBwbwm/yCz7YRWeMbd7zJAoAGJLu6x2BvSt55kQ=3D=3D?=","X-Exchange-RoutingPolicyChecked":"\n VTyMWOgxNwde3kv+oNgnO4U1ehxSaiLFA0hSkFsQJN6KvruCCYhiYPV8K+UYy1hlogeoVgQ6OZfCLE9+J3itQTLsaHAFtjj/AXUhrBNd6ApnEbbMteQNUPlpBLjbkPlxf1ldwtGHCx7cKvI/pRcg7xu89gH0iLynCM1gtv6E/koqP9gHVo/1dxNDN+Y97dsu9pCSptemiW1AhNb0BR1KHWXQFblw6dsI9jP1+l3YMmK8NOPhX+30ZZ9ZZy87SGngxIoxbwyJJ2fYfGHQPV1aXRC9OtViqkgs9ECq1y404PyiGacyBMGEHEtQ0+FcJ7IhZ2Phr0mmwYOPKdYAreLf3Q==","X-OriginatorOrg":"nutanix.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 9fd6ac01-a690-4010-f95d-08de9633ee34","X-MS-Exchange-CrossTenant-AuthSource":"CH2PR02MB6760.namprd02.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"09 Apr 2026 12:31:32.1337 (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"bb047546-786f-4de1-bd75-24e5b6f79043","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n KkLzdAlAkuHSV3nv9LS0XY+IAPmEmQAfW3he3sDiFFHHUiYyAWc0cwKWKRsXlohvE0U93cSX8x8IP4CVHngqsw==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY8PR02MB10185","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDA5MDExMiBTYWx0ZWRfX6YFtKTyw8mvM\n rSWuyVyAPHC//P11kNFbOTpEjN6Hg8eg7ExPPH4uOntu74+wZOEDVhydn7zFLdOJ3k2c7AeA8Zk\n ZHV3WMwvcEPZlArW1ppKfAKcT/JwPo/vMdIwbNwZenY2/4rDgKTRZ4eA8WunL/AkrYJKVV1FYLZ\n l1EuTY4LYPQ5jLGri5V8XtFltmQdH+FNkCV1Q8xVO7f02DaDNlo85e9FCp6XzQgkIp5T/cDLUJH\n 64lZoTs6i2wJYytCiJoee3zRzKMXTVXMe+6j3SJGLQbJtA2+L2MNEnJJzLTqMgbH8HWcqeraS9h\n onD2+HrbHsIKtOLFIROuhtNC39ZFHZKgyk04yKw1eL4GZagOai85dPdMol7r7f4Xn1UyYqQmxsy\n lS7mkuSOzWm+UFOVoCOdrhiKDDXaik81FKFArL6wfkcf1eNEOyYWfE5G+3sf6KdIrH8uRqmn8J1\n 1YIWrdzDDxJ9OYGeSvA==","X-Authority-Analysis":"v=2.4 cv=M4197Sws c=1 sm=1 tr=0 ts=69d79c29 cx=c_pps\n a=F9xFoPyAMX64h5WOW3qpxA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19\n a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19\n a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10 a=A5OVakUREuEA:10 a=0kUYKlekyDsA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=VUi8bpU7OL1Oj2-RSIOF:22\n a=VwQbUJbxAAAA:8 a=20KFwNOVAAAA:8 a=7vDEnmPYfHSCWbD67y8A:9 a=3ZKOabzyN94A:10\n a=wPNLvfGTeEIA:10","X-Proofpoint-ORIG-GUID":"4MWbR9oNG2PZELkszeX9LyGU9C6plmK6","X-Proofpoint-GUID":"4MWbR9oNG2PZELkszeX9LyGU9C6plmK6","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-09_03,2026-04-09_02,2025-10-01_01","X-Proofpoint-Spam-Reason":"safe","Received-SPF":"pass client-ip=148.163.155.12;\n envelope-from=john.levon@nutanix.com; helo=mx0b-002c1b01.pphosted.com","X-Spam_score_int":"-32","X-Spam_score":"-3.3","X-Spam_bar":"---","X-Spam_report":"(-3.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, 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"}},{"id":3675696,"web_url":"http://patchwork.ozlabs.org/comment/3675696/","msgid":"<75d9ff43-6c96-4b17-a8e3-449a33237ad2@redhat.com>","list_archive_url":null,"date":"2026-04-10T07:28:30","subject":"Re: [PATCH 1/3] vfio-user: support VFIO_USER_DEVICE_FEATURE","submitter":{"id":85406,"url":"http://patchwork.ozlabs.org/api/people/85406/","name":"Cédric Le Goater","email":"clg@redhat.com"},"content":">>> +# device.c\n>>> +vfio_user_device_io_device_feature(uint32_t argsz, uint32_t flags);\n>>\n>> missing format here ^\n> \n> Oops, surprised I didn't get errors with this\n\nCan you please resend ? I am preparing the vfio queue for the\nnext cycle.\n\nThanks,\n\nC.","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 (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=d7Y3Z74y;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=kVCNsG7E;\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 (lists1p.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 4fsT28589nz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 17:29:04 +1000 (AEST)","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 1wB6IC-0004fS-MP; Fri, 10 Apr 2026 03:28:40 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@redhat.com>) id 1wB6IA-0004fG-Ex\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 03:28:38 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@redhat.com>) id 1wB6I8-0006wS-AJ\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 03:28:37 -0400","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-546-cqh-FpkKO2yWxN_atiRfxw-1; Fri, 10 Apr 2026 03:28:33 -0400","by mail-wm1-f71.google.com with SMTP id\n 5b1f17b1804b1-488bf01961cso11444155e9.0\n for <qemu-devel@nongnu.org>; Fri, 10 Apr 2026 00:28:33 -0700 (PDT)","from ?IPV6:2a01:e0a:165:d60:bbdd:3c5e:7d8b:3f72?\n ([2a01:e0a:165:d60:bbdd:3c5e:7d8b:3f72])\n by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43d63de2a53sm5432776f8f.5.2026.04.10.00.28.31\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Fri, 10 Apr 2026 00:28:31 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775806115;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;\n bh=hJnrr/zC+83AI7h+d0sONzJwwmF2Jk/g5jqjj/CWTTg=;\n b=d7Y3Z74yx1wNzBqybZsgCRW0clpfcBTQEJ5v64sS3NhEtd38DZww1D9QUmqqMPACT0xytU\n T7nKReav9rAoae+KYqnGWjiUJu8ivlwcRNk6if7+rXZsnJtvJnif6XCS6oaCo/lsXZLaGa\n KyinGpQxX7o/kSYnNog78JsnU/SuNAo=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1775806112; x=1776410912; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:autocrypt:from\n :content-language:references:cc:to:subject:user-agent:mime-version\n :date:message-id:from:to:cc:subject:date:message-id:reply-to;\n bh=hJnrr/zC+83AI7h+d0sONzJwwmF2Jk/g5jqjj/CWTTg=;\n b=kVCNsG7Eh80TmNQXKPV1QnCl6yw/R3RQ6YMoyCjhwBYxH02U0ZVH2DxYOCtpHa03Mi\n Mm/EVeoRfl/4046pj2+BvP5heZBp1JXb1cYxTF37yarDPsZ/ZFxbi6yGSrdO6kRWJKyw\n r8z6ywI48CyUzA7pDNoKhNRj6dgEyBRM8010Vnm9Q87wwTkJERrij8cgV9lhtp82MznD\n 4bhigVTYB4ssIk+I+mReKdVZq+rPs6SGKxITQkmfvNfnKg7oamolm6LAJF0Z9u10XAYd\n hXpjQbDXcYg7J76WBsEEfhqXPCvSAIMBzsz4n1nW22UHXHDKWnRLxt5xV4oJBYsO7ODM\n OEdQ=="],"X-MC-Unique":"cqh-FpkKO2yWxN_atiRfxw-1","X-Mimecast-MFC-AGG-ID":"cqh-FpkKO2yWxN_atiRfxw_1775806112","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775806112; x=1776410912;\n h=content-transfer-encoding:in-reply-to:autocrypt:from\n :content-language:references:cc:to:subject:user-agent:mime-version\n :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=hJnrr/zC+83AI7h+d0sONzJwwmF2Jk/g5jqjj/CWTTg=;\n b=gtK/sg9KjyhtIq4I2H8BkddJ57nvNUaWthjbku8pzi5gLFn997vJ1CwvrIEv79U84c\n XLexW1o3rqofl/lzeWyxKx+Bj8mPRNorJHA/0flqvjnDHjCtf3TEDpvX137xcQDQQJtA\n fvYKf4/fN3yPu1n93aDh8wBm4CDheaD9n7Iu29jHTR+X8lci0OPsosbJPj3QPzDVJkUK\n 6fazDjX2UWD78f5rZMCmP1UIGaCGe0kLPecH751s/VDBUx+ONzJuOVf1EGzruVcEiA2U\n 3RRqXyXltaUKRcrvwB6kxmF6WlD28ZBi/OvR7LtFGBK70oTtRB1WMPNYwn0s6eRzMzFq\n tk0A==","X-Gm-Message-State":"AOJu0Yxqdwqbczk+YlqHRRMieJ5vmu3snVIKLrqIWtAGEMCe0xlqJm/N\n /AcUvTbe94vJIv1OczJos5MMWjVhmsNdQRNFDyY4PmIlbD9dgpiroJTQwuHBBMIb3Y6Bv1ksvI0\n 3W2Bi9v5pztqDGK3JPvwWQSeB1fBB5EXlCxIzVMkuMCDW5zrQbXGiRdOG","X-Gm-Gg":"AeBDieutiOoF7bj+jvtWZzBzOclQVjc1Zn+BKQlPKEj7jlU14DZUG2wIryZzZWHM22D\n j7snEEn/hSE/4nh1Rtd+KJ6HWaOJDY0abZ90pkrTuo2+wfDaCSs9jEfB6Zi55ysIZcYPU/BR19V\n 9ZIeJyQYbz+J/uTl7H6xu3marlD42y+UCKl1OgON53GwWSIuBaIlsFPc8pRVC9Ph1Sdne0vtVhj\n O1l0HO2diyPH8jJE3b7F2rJfInCHNRVMsHm+3Y29O4EfOCQalwlFFFgHEkxi6LbZ7CaXrKAMVk/\n VfCEsDQS0A6kD4SQjv2I89DSRDE1y2LYS7LZt860K2cvL/dTPpMBnwznsdC7WUZKxm7YQ372dfh\n Xb1cvNfq4nnS34tbx37QVrwj1j/o7o+OqIC9vQz+deFr5EOuQCF1Hr14l5Q==","X-Received":["by 2002:a05:600c:474c:b0:485:35d3:ce59 with SMTP id\n 5b1f17b1804b1-488d68101edmr22044135e9.10.1775806112429;\n Fri, 10 Apr 2026 00:28:32 -0700 (PDT)","by 2002:a05:600c:474c:b0:485:35d3:ce59 with SMTP id\n 5b1f17b1804b1-488d68101edmr22043765e9.10.1775806111992;\n Fri, 10 Apr 2026 00:28:31 -0700 (PDT)"],"Message-ID":"<75d9ff43-6c96-4b17-a8e3-449a33237ad2@redhat.com>","Date":"Fri, 10 Apr 2026 09:28:30 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/3] vfio-user: support VFIO_USER_DEVICE_FEATURE","To":"John Levon <john.levon@nutanix.com>","Cc":"qemu-devel@nongnu.org, Thanos Makatos <thanos.makatos@nutanix.com>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>","References":"<20260409104756.465294-1-john.levon@nutanix.com>\n <20260409104756.465294-2-john.levon@nutanix.com>\n <6c5a98ca-2ac4-4239-b3aa-30e5572f2c72@redhat.com> <adecGoLC4Txe18Fm@lent>","Content-Language":"en-US, fr","From":"=?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@redhat.com>","Autocrypt":"addr=clg@redhat.com; keydata=\n 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\n uVKe8BVz4atMOoktmt0GWTOC8P4=","In-Reply-To":"<adecGoLC4Txe18Fm@lent>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=170.10.133.124; envelope-from=clg@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-25","X-Spam_score":"-2.6","X-Spam_bar":"--","X-Spam_report":"(-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-0.001, 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"}}]