From patchwork Tue Nov 27 13:50:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 1003836 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="Sd5z1hmx"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43455j72qBz9s55 for ; Wed, 28 Nov 2018 01:00:25 +1100 (AEDT) Received: from localhost ([::1]:42545 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRduZ-0001Ol-Dj for incoming@patchwork.ozlabs.org; Tue, 27 Nov 2018 09:00:23 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49398) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRdlL-0002NS-BT for qemu-devel@nongnu.org; Tue, 27 Nov 2018 08:50:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRdlH-0008Dl-E7 for qemu-devel@nongnu.org; Tue, 27 Nov 2018 08:50:51 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:51092) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gRdlH-0008Ct-7q for qemu-devel@nongnu.org; Tue, 27 Nov 2018 08:50:47 -0500 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181127135046euoutp02369699b56fbc094c7eff6b16905697f2~q-2hwdcu_2240422404euoutp02P for ; Tue, 27 Nov 2018 13:50:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181127135046euoutp02369699b56fbc094c7eff6b16905697f2~q-2hwdcu_2240422404euoutp02P DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1543326646; bh=diLhltG4bd5NJmm2OD08qIfPUrfIYmKRi7VgIuEA9rw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Sd5z1hmxUulz2APcZyWqjo1EF7x73UoK0wNNItQ8P7X351AU+oG5M9FUds+0yFboY fy2QOrE5FmxpMXE+BnALo8DkVkEw63+wDw/OeHie4hEv/hrGUhD006W/MsiwgZb8Sk UjPorKErBVEsmhluC21O5iaqXDJr2QgtrNiR6OWM= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181127135045eucas1p1619bd13c918ddbb941d4d39eacfc7310~q-2hYRd6V1958819588eucas1p1F; Tue, 27 Nov 2018 13:50:45 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id D3.E7.04441.5BB4DFB5; Tue, 27 Nov 2018 13:50:45 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20181127135045eucas1p1e259cacbab5e715f7845b9beee22f882~q-2goblNK2351423514eucas1p1z; Tue, 27 Nov 2018 13:50:45 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20181127135044eusmtrp189ec76bbe9d395f1ed48a1c2575a30f9~q-2gaAA0l2189621896eusmtrp1-; Tue, 27 Nov 2018 13:50:44 +0000 (GMT) X-AuditID: cbfec7f2-5c9ff70000001159-29-5bfd4bb5bc1d Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id B0.CB.04284.4BB4DFB5; Tue, 27 Nov 2018 13:50:44 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181127135044eusmtip12b88cbc45176b363224012caefd6166f~q-2f5mypM1950919509eusmtip1H; Tue, 27 Nov 2018 13:50:44 +0000 (GMT) From: Ilya Maximets To: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Tue, 27 Nov 2018 16:50:27 +0300 Message-Id: <20181127135030.1671-2-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181127135030.1671-1-i.maximets@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKKsWRmVeSWpSXmKPExsWy7djP87pbvf9GG+w8pGrRcC/U4kr7T3aL 00c7mC2e3TrJbLGgrZ3VYv+2f6wWx3t3sDiwezy5tpnJ4/2+q2wefVtWMQYwR3HZpKTmZJal FunbJXBl3Pw6ibHgukzFl7/f2BoYNwl3MXJySAiYSDTs2MDYxcjFISSwglFi4f9LbBDOF0aJ tZdmQGU+M0o8Xr+RvYuRA6zlxBwTiPhyRomXSxYyQTg/GCX2rrjECjKXTUBH4tTqI4wgtoiA m8SLB8fBxjIL3GSUWPpxAQtIQlggRKJr0VywBhYBVYkZp1rZQWxeASuJP3s6GSEOlJdYveEA M4jNKWAt8f3fEjaIGkGJkzOfgM1hBqpp3jqbGWSBhEAzu8SBnbuhml0kVv/5ywxhC0u8Or6F HcKWkTg9uYcFwq6XuN/ykhGiuYNRYvqhf0wQCXuJLa/Pgf3MLKApsX6XPkTYUeL/xKlskKDg k7jxVhDiBj6JSdumM0OEeSU62oQgqlUkfh9cDnWBlMTNd5+hLvCQ6FuyiGUCo+IsJN/MQvLN LIS9CxiZVzGKp5YW56anFhvmpZbrFSfmFpfmpesl5+duYgQmltP/jn/awfj1UtIhRgEORiUe 3g3ff0cLsSaWFVfmHmKU4GBWEuF1Vv4bLcSbklhZlVqUH19UmpNafIhRmoNFSZy3muFBtJBA emJJanZqakFqEUyWiYNTqoHRxir48a96SWH9+l+ztr+1Wcz3OcVqEmeS9g+NbicPWZ2tmxK0 KuNtQz7P3pSfUP15+1H5XzcnNVe0Ndf8m9PBVRy468PU9S0W535qLdgn0O23wPdl3rFtx0X4 t+nrPl/lFmm+PMsv+MveiEnn7m8QPup3+TzX5JNKmoLHNbmfLyxlu3KlwT9fiaU4I9FQi7mo OBEAowALxygDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmkeLIzCtJLcpLzFFi42I5/e/4Xd0t3n+jDaZsMbFouBdqcaX9J7vF 6aMdzBbPbp1ktljQ1s5qsX/bP1aL4707WBzYPZ5c28zk8X7fVTaPvi2rGAOYo/RsivJLS1IV MvKLS2yVog0tjPQMLS30jEws9QyNzWOtjEyV9O1sUlJzMstSi/TtEvQybn6dxFhwXabiy99v bA2Mm4S7GDk4JARMJE7MMeli5OIQEljKKPHs/S22LkZOoLiUxI9fF1ghbGGJP9e62CCKvjFK nP1ynREkwSagI3Fq9REwW0TATeLFg+NgRcwC9xkljm2aCjZJWCBIYu+CW8wgNouAqsSMU63s IDavgJXEnz2djBAb5CVWbzgAVsMpYC3x/d8SsF4hoJpPB16xQdQLSpyc+YQFxGYGqm/eOpt5 AqPALCSpWUhSCxiZVjGKpJYW56bnFhvqFSfmFpfmpesl5+duYgRGwLZjPzfvYLy0MfgQowAH oxIP74bvv6OFWBPLiitzDzFKcDArifA6K/+NFuJNSaysSi3Kjy8qzUktPsRoCvTERGYp0eR8 YHTmlcQbmhqaW1gamhubG5tZKInznjeojBISSE8sSc1OTS1ILYLpY+LglGpgVJ3XsXDVFCEh n9SM6fXsmft3/eNc9vluYt7xwGsHBd6ndjNM3HRsxbfclnjnZxI7XfSa5MzmBHis+JBlv27K DIUM39J05ll8r1TOOsjbL5/HcfvCm4yzRwx1/hZG860U3naJWeq4R7iKXFpd1rOnrlZFAckV xybf16xieahrVqWesoLBxWS+EktxRqKhFnNRcSIA9HWr2JYCAAA= X-CMS-MailID: 20181127135045eucas1p1e259cacbab5e715f7845b9beee22f882 X-Msg-Generator: CA X-RootMTR: 20181127135045eucas1p1e259cacbab5e715f7845b9beee22f882 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181127135045eucas1p1e259cacbab5e715f7845b9beee22f882 References: <20181127135030.1671-1-i.maximets@samsung.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 210.118.77.12 Subject: [Qemu-devel] [PATCH v2 1/4] hostmem-memfd: disable for systems wihtout sealing support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , qemu-devel@nongnu.org, Gerd Hoffmann , Igor Mammedov , Ilya Maximets , Paolo Bonzini Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" If seals are not supported, memfd_create() will fail. Furthermore, there is no way to disable it in this case because '.seal' property is not registered. This issue leads to vhost-user-test failures on RHEL 7.2: qemu-system-x86_64: -object memory-backend-memfd,id=mem,size=2M,: \ failed to create memfd: Invalid argument and actually breaks the feature on such systems. Let's restrict memfd backend to systems with sealing support. Signed-off-by: Ilya Maximets Reviewed-by: Marc-André Lureau --- backends/hostmem-memfd.c | 18 ++++++++---------- tests/vhost-user-test.c | 6 +++--- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c index b6836b28e5..a3455da9c9 100644 --- a/backends/hostmem-memfd.c +++ b/backends/hostmem-memfd.c @@ -156,15 +156,13 @@ memfd_backend_class_init(ObjectClass *oc, void *data) "Huge pages size (ex: 2M, 1G)", &error_abort); } - if (qemu_memfd_check(MFD_ALLOW_SEALING)) { - object_class_property_add_bool(oc, "seal", - memfd_backend_get_seal, - memfd_backend_set_seal, - &error_abort); - object_class_property_set_description(oc, "seal", - "Seal growing & shrinking", - &error_abort); - } + object_class_property_add_bool(oc, "seal", + memfd_backend_get_seal, + memfd_backend_set_seal, + &error_abort); + object_class_property_set_description(oc, "seal", + "Seal growing & shrinking", + &error_abort); } static const TypeInfo memfd_backend_info = { @@ -177,7 +175,7 @@ static const TypeInfo memfd_backend_info = { static void register_types(void) { - if (qemu_memfd_check(0)) { + if (qemu_memfd_check(MFD_ALLOW_SEALING)) { type_register_static(&memfd_backend_info); } } diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index 45d58d8ea2..e3e9a33580 100644 --- a/tests/vhost-user-test.c +++ b/tests/vhost-user-test.c @@ -169,7 +169,7 @@ static char *get_qemu_cmd(TestServer *s, int mem, enum test_memfd memfd, const char *mem_path, const char *chr_opts, const char *extra) { - if (memfd == TEST_MEMFD_AUTO && qemu_memfd_check(0)) { + if (memfd == TEST_MEMFD_AUTO && qemu_memfd_check(MFD_ALLOW_SEALING)) { memfd = TEST_MEMFD_YES; } @@ -903,7 +903,7 @@ static void test_multiqueue(void) s->queues = 2; test_server_listen(s); - if (qemu_memfd_check(0)) { + if (qemu_memfd_check(MFD_ALLOW_SEALING)) { cmd = g_strdup_printf( QEMU_CMD_MEMFD QEMU_CMD_CHR QEMU_CMD_NETDEV ",queues=%d " "-device virtio-net-pci,netdev=net0,mq=on,vectors=%d", @@ -963,7 +963,7 @@ int main(int argc, char **argv) /* run the main loop thread so the chardev may operate */ thread = g_thread_new(NULL, thread_function, loop); - if (qemu_memfd_check(0)) { + if (qemu_memfd_check(MFD_ALLOW_SEALING)) { qtest_add_data_func("/vhost-user/read-guest-mem/memfd", GINT_TO_POINTER(TEST_MEMFD_YES), test_read_guest_mem);