From nobody Mon Feb 9 03:59:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614010446; cv=none; d=zohomail.com; s=zohoarc; b=ih0rT8AusVar02UwLYUqn1eoSvpXVMhIl5Jm5F5fOpIRaniEK+OP9HKnNsRCoEXVX1Ff818H2WkgOnhXc3Ypi+Zx52QwqR/MzJBoJBG7iUqI6iyu6WZflX+JIM/ejhzPjISigESPE39yqfMYWvDlOsDkWVA0ffo2C81WUFS5g3Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614010446; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fE2ZqW7Abd0nNn/xz8kYfaU1Kg9VPxOJrShvvATcpvw=; b=JlIVeW5r1jumkCX5j339UP/mQfo142rEY85LF7H4y4ovbgG/EkpD2XILRtUC+Oxcw5tMYoDN0rtk09BvqvlBm6rkZSCiAUyErQp98gsvwZpzCHAfZghinSaxytSsU+RcxVd8oRg9WHSx5MpNk+GwdwgD5baXDw/SaOXMk0Ej+hc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 161401044582750.62857133152045; Mon, 22 Feb 2021 08:14:05 -0800 (PST) Received: from localhost ([::1]:60890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lEDqW-0004In-Of for importer@patchew.org; Mon, 22 Feb 2021 11:14:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:51882) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lEDnf-0002XF-Ue for qemu-devel@nongnu.org; Mon, 22 Feb 2021 11:11:07 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:53730) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lEDne-0002B1-C9 for qemu-devel@nongnu.org; Mon, 22 Feb 2021 11:11:07 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-199-DcsUX2HAMUyjUV34pjH8sg-1; Mon, 22 Feb 2021 11:11:00 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 77F39801A8A for ; Mon, 22 Feb 2021 16:10:59 +0000 (UTC) Received: from localhost (ovpn-112-255.ams2.redhat.com [10.36.112.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2A2F91054FDC; Mon, 22 Feb 2021 16:10:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614010263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fE2ZqW7Abd0nNn/xz8kYfaU1Kg9VPxOJrShvvATcpvw=; b=KJfeWeUuHMDlaQMIcXdDib5UVi7QXh2ZroDOacPnzIrTShTauj+ll9/tUpMqPj2Pf0EzZ3 X0Z5NOop6l2ynWroyWTdgEGL2f49pFf6HI1qC9/dEBjuEsKhu6vP1cU9Z7xcYJ68QlHPTD sbZGFP4pU67spcIxAZgrNJ+VMwx+hY4= X-MC-Unique: DcsUX2HAMUyjUV34pjH8sg-1 From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH 1/3] tests/qtest/vhost-user-test: use share=on with memfd Date: Mon, 22 Feb 2021 16:10:15 +0000 Message-Id: <20210222161017.570837-2-stefanha@redhat.com> In-Reply-To: <20210222161017.570837-1-stefanha@redhat.com> References: <20210222161017.570837-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MIME_BASE64_TEXT=1.741, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, Laurent Vivier , Thomas Huth , "Michael S. Tsirkin" , Stefan Hajnoczi , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" For some reason memfd never used share=3Don. vhost-user relies on mmap(MAP_SHARED) so this seems like a problem, but the tests still run without it. Add share=3Don for consistency and to prevent future bugs in the test. Signed-off-by: Stefan Hajnoczi Acked-by: Thomas Huth Reviewed-by: Marc-Andr=C3=A9 Lureau --- tests/qtest/vhost-user-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c index 1a5f5313ff..2db98c4920 100644 --- a/tests/qtest/vhost-user-test.c +++ b/tests/qtest/vhost-user-test.c @@ -40,7 +40,7 @@ #define QEMU_CMD_MEM " -m %d -object memory-backend-file,id=3Dmem,size= =3D%dM," \ "mem-path=3D%s,share=3Don -numa node,memdev=3Dmem" #define QEMU_CMD_MEMFD " -m %d -object memory-backend-memfd,id=3Dmem,size= =3D%dM," \ - " -numa node,memdev=3Dmem" + "share=3Don -numa node,memdev=3Dmem" #define QEMU_CMD_CHR " -chardev socket,id=3D%s,path=3D%s%s" #define QEMU_CMD_NETDEV " -netdev vhost-user,id=3Dhs0,chardev=3D%s,vhostfo= rce" =20 --=20 2.29.2 From nobody Mon Feb 9 03:59:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614010713; cv=none; d=zohomail.com; s=zohoarc; b=nvz2s3ZBN2E6SlGmfxcEFQjyJJo92BkdCnOJGfGqkMXU4PNUINVpn7zmYlgY442PLR2X44lgRPiDWfR11yNIU50tjaGVlpDU45tncbBNsvj2e5BDJUS9vSjYFitm4WvMoYaHW41TO8+lrStYKWSQgZKhY03kFDhb228HK9NUDc8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614010713; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RfKyB3gUAqSG9wFlu0Z7cbVS/JqR/5j8rNgFaP0cEJw=; b=Oy1s25x7ffcjl5lwNp9Q6kxgPymuinLFLD18Vs//E7hemFJ25veOer3H5XRh5mbvrv6grZRkt1l/BihtD+ac9TaHxXqVwcnWO7NY4gTG9t4nQSEZyp7cQxZU+lce/dPaLUF1Ba7AK1kzgBpt7oF/sULI/PorKyfQ4PDyo0MDFyU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1614010712637756.5172808792461; Mon, 22 Feb 2021 08:18:32 -0800 (PST) Received: from localhost ([::1]:44540 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lEDup-0001iT-4h for importer@patchew.org; Mon, 22 Feb 2021 11:18:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:51896) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lEDnh-0002ZY-Dg for qemu-devel@nongnu.org; Mon, 22 Feb 2021 11:11:09 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:50829) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lEDnf-0002B8-MH for qemu-devel@nongnu.org; Mon, 22 Feb 2021 11:11:09 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-467-qdD2Q4iBNzW9w6STYXwIAg-1; Mon, 22 Feb 2021 11:11:01 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DFCEA86A060 for ; Mon, 22 Feb 2021 16:11:00 +0000 (UTC) Received: from localhost (ovpn-112-255.ams2.redhat.com [10.36.112.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id 03FCA1024817; Mon, 22 Feb 2021 16:10:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614010267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RfKyB3gUAqSG9wFlu0Z7cbVS/JqR/5j8rNgFaP0cEJw=; b=Ii6lRoMbGM/ZCKY7n0TL28n0xlxn+CwafTrCs67mL65i2h4aYKCDF2A/BOuaAaj4lqzPBD HZNA5b46oNJsECffoO/4eASOi23MbUIXupc7DJ8JCxuq2LxG95bS9qa5NguuJOYpqDvyh/ 72sBGvKev9cXJRWDaSEU0LrKF2Y5Jf0= X-MC-Unique: qdD2Q4iBNzW9w6STYXwIAg-1 From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH 2/3] memory: add memory_region_is_mapped_shared() Date: Mon, 22 Feb 2021 16:10:16 +0000 Message-Id: <20210222161017.570837-3-stefanha@redhat.com> In-Reply-To: <20210222161017.570837-1-stefanha@redhat.com> References: <20210222161017.570837-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MIME_BASE64_TEXT=1.741, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, Laurent Vivier , Thomas Huth , "Michael S. Tsirkin" , Stefan Hajnoczi , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Add a function to query whether a memory region is mmap(MAP_SHARED). This will be used to check that vhost-user memory regions can be shared with the device backend process in the next patch. An inline function in "exec/memory.h" would have been nice but RAMBlock fields are only accessible from memory.c (see "exec/ramblock.h"). Signed-off-by: Stefan Hajnoczi --- include/exec/memory.h | 11 +++++++++++ softmmu/memory.c | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index c6fb714e49..7b7dbe9fd0 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -2457,6 +2457,17 @@ static inline bool memory_access_is_direct(MemoryReg= ion *mr, bool is_write) } } =20 +/** + * memory_region_is_mapped_shared: check whether a memory region is + * mmap(MAP_SHARED) + * + * Returns %true is a memory region is mmap(MAP_SHARED). This is always fa= lse + * on memory regions that do not support memory_region_get_ram_ptr(). + * + * @mr: the memory region being queried + */ +bool memory_region_is_mapped_shared(MemoryRegion *mr); + /** * address_space_read: read from an address space. * diff --git a/softmmu/memory.c b/softmmu/memory.c index 874a8fccde..e6631e5d4c 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -1809,6 +1809,12 @@ bool memory_region_is_ram_device(MemoryRegion *mr) return mr->ram_device; } =20 +bool memory_region_is_mapped_shared(MemoryRegion *mr) +{ + return memory_access_is_direct(mr, false) && + (mr->ram_block->flags & RAM_SHARED); +} + uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr) { uint8_t mask =3D mr->dirty_log_mask; --=20 2.29.2 From nobody Mon Feb 9 03:59:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614010452; cv=none; d=zohomail.com; s=zohoarc; b=NMJYllH5guqpom9ob0cdd6W0zav+nfNUWi45zINikpXty9vcxa4WtR2ZMaP4iCqCuBOh3teP+oDsOpc6Z+KC7vgEAXfb76KzXvo5541uf+qglt0ix0z9G0kaAEF0gixeK/KsBb8NF+PExtiFdyKTiGlBTpGBJeIOh+nvWUoJuDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614010452; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VpyhnN1NebAljP7wiEMoaKfZAgDCBNT0cY/9U2rhBlo=; b=EXQcG2VEmlwp1tcB0RUPan+sDT+WEMHITb8wVBmqHeQ0f6VAMkvqU//O8446E/1IbtKSfHL50ySSuK4Ju2qd9OrEwVVyMZDFu8Cw68NZOpeu31XGUwL/U4JZXHQ+vEVQibuM+XFDLIcU4BkBgrDIxdo6iCnW0H6xsM4jYk3RT+s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1614010452596730.097901046387; Mon, 22 Feb 2021 08:14:12 -0800 (PST) Received: from localhost ([::1]:33098 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lEDqa-0004Tm-PN for importer@patchew.org; Mon, 22 Feb 2021 11:14:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:51982) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lEDnu-0002hT-Td for qemu-devel@nongnu.org; Mon, 22 Feb 2021 11:11:23 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:33016) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lEDnp-0002C3-0v for qemu-devel@nongnu.org; Mon, 22 Feb 2021 11:11:22 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-177-c2ioTXnHOdOE8TUOSpNPcg-1; Mon, 22 Feb 2021 11:11:14 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 16F0C100CCC8 for ; Mon, 22 Feb 2021 16:11:03 +0000 (UTC) Received: from localhost (ovpn-112-255.ams2.redhat.com [10.36.112.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id B24491045D3B; Mon, 22 Feb 2021 16:11:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614010276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VpyhnN1NebAljP7wiEMoaKfZAgDCBNT0cY/9U2rhBlo=; b=JTNpr04/otSny/peK7vjNbyYq/CXkvF7JBED+qkG5PKir39ScWxAk+vhsgkOrCS6G/bgIF QcQAF0Fwizfm1rxc/LWaTjvmkGGSGxwTg1BMNQkOeaSCbwhBaoW7rjBpqdHtzS5OEKnM9C 7crVTKoywyrs/A9ozh2eNi1nhILcdvg= X-MC-Unique: c2ioTXnHOdOE8TUOSpNPcg-1 From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH 3/3] vhost-user: warn when guest RAM is not shared Date: Mon, 22 Feb 2021 16:10:17 +0000 Message-Id: <20210222161017.570837-4-stefanha@redhat.com> In-Reply-To: <20210222161017.570837-1-stefanha@redhat.com> References: <20210222161017.570837-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MIME_BASE64_TEXT=1.741, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, Laurent Vivier , Thomas Huth , "Michael S. Tsirkin" , Stefan Hajnoczi , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Memory regions must be mmap(MAP_SHARED) so that modifications made by the vhost device backend process are visible to QEMU and vice versa. Use the new memory_region_is_mapped_shared() function to check this and print a warning if guest RAM is not shared: qemu-system-x86_64: -device vhost-user-fs-pci,chardev=3Dchar0,tag=3Dmyfs:= warning: Found vhost-user memory region without MAP_SHARED (did you forget= -object memory-*,share=3Don?) qemu-system-x86_64: Failed to read from slave. This warning makes it clear that memory needs to be configured with share=3Don. Without this patch the vhost device is initialized and the device fails with vague error messages caused by inconsistent memory views. The warning should make it easier to troubleshoot QEMU command-lines that lack share=3Don memory. I couldn't figure out how to make this a vhost_dev_init() error, because memory regions aren't necessarily final when it is called. Also, hotplug can add memory regions without MAP_SHARED in the future, so we still need to warn about that. Reported-by: Kevin Wolf Signed-off-by: Stefan Hajnoczi Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/virtio/vhost-user.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 2fdd5daf74..17c2fb81be 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -2223,11 +2223,23 @@ vhost_user_crypto_close_session(struct vhost_dev *d= ev, uint64_t session_id) static bool vhost_user_mem_section_filter(struct vhost_dev *dev, MemoryRegionSection *section) { - bool result; + /* An fd is required so we can pass it to the device backend process */ + if (memory_region_get_fd(section->mr) < 0) { + return false; + } =20 - result =3D memory_region_get_fd(section->mr) >=3D 0; - - return result; + /* + * It must be mmap(MAP_SHARED) so memory stores from the device backend + * process are visible to us and vice versa. + */ + if (!memory_region_is_mapped_shared(section->mr)) { + static bool warned; + warn_report_once_cond(&warned, "Found vhost-user memory region " + "without MAP_SHARED (did you forget -object " + "memory-*,share=3Don?)"); + return false; + } + return true; } =20 static int vhost_user_get_inflight_fd(struct vhost_dev *dev, --=20 2.29.2