From nobody Mon Nov 25 05:14:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1717140583; cv=none; d=zohomail.com; s=zohoarc; b=Abu2AeR/+X1vtgHWmt1CvnaXIcTcFP6G5C0lSsb6m9Dg91SgbZXDmg891LTHHav+31e3ChhmEdKaxzXgVQtMoq7wCSm7ppZLmss+cW70oqoRl7Wf1EMqeYmrZ1byLOXRi/SOUfVUJtitzxGSTteSfU+jTztFwQ7FCiqBLDoToyM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1717140583; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4yvvHCsFGcQy3avS2tqQfsLMqNzxPdKw9AyVqslnxSY=; b=k5Hw5ZUP15PkQk3jeC4iHgHsSLblf2h+jmlUas9OaBPo7bJDNuN/KP4EH2jOCfzTkLCVKvfOjX9f/YJwjFsHF2HdDCXiKI5RwI0Aj6cbF3tH7KtNK0kTqHhYYEgyeenBwYXyk1K5Ju1N9LrORrCNaD4Cft+bqVdFuHwsVzDNdrc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1717140583845384.2251276713339; Fri, 31 May 2024 00:29:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sCwhQ-0004MB-AI; Fri, 31 May 2024 03:29:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhO-0004LG-0w for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhM-0003Y1-FJ for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:13 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-664-DO92o0PrOp-8hmP6x2A4IQ-1; Fri, 31 May 2024 03:29:09 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 45FBF185A783 for ; Fri, 31 May 2024 07:29:09 +0000 (UTC) Received: from maggie.brq.redhat.com (unknown [10.43.3.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 79CA1491032; Fri, 31 May 2024 07:29:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1717140552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4yvvHCsFGcQy3avS2tqQfsLMqNzxPdKw9AyVqslnxSY=; b=YgkhqZPCSwr1ss7G9aSEPeeW+dosxshfJ6d00M8jQIHPPhT98BJY7Qh9cfBl2vO3vkzD+Y AAOijYOHnwoMWzTv5K0Ws510vd5aJwAwF3JXJrmelpoDVNMKPP6YNLPv3wKBvD78miNGit M0Q8thhp0bSa+vSQY7G2IcrzyuQqyj0= X-MC-Unique: DO92o0PrOp-8hmP6x2A4IQ-1 From: Michal Privoznik To: qemu-devel@nongnu.org Cc: david@redhat.com, imammedo@redhat.com Subject: [PATCH v2 1/4] osdep: Make qemu_madvise() to set errno in all cases Date: Fri, 31 May 2024 09:28:57 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 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=170.10.133.124; envelope-from=mprivozn@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.085, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1717140584538100005 Content-Type: text/plain; charset="utf-8" The unspoken premise of qemu_madvise() is that errno is set on error. And it is mostly the case except for posix_madvise() which is documented to return either zero (on success) or a positive error number. This means, we must set errno ourselves. And while at it, make the function return a negative value on error, just like other error paths do. Signed-off-by: Michal Privoznik Reviewed-by: David Hildenbrand --- util/osdep.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/util/osdep.c b/util/osdep.c index e996c4744a..e42f4e8121 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -57,7 +57,12 @@ int qemu_madvise(void *addr, size_t len, int advice) #if defined(CONFIG_MADVISE) return madvise(addr, len, advice); #elif defined(CONFIG_POSIX_MADVISE) - return posix_madvise(addr, len, advice); + int rc =3D posix_madvise(addr, len, advice); + if (rc) { + errno =3D rc; + return -1; + } + return 0; #else errno =3D EINVAL; return -1; --=20 2.44.1 From nobody Mon Nov 25 05:14:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1717140580; cv=none; d=zohomail.com; s=zohoarc; b=f6tIfMfD8dtMBqwAQOEB3Fzh5fKKo9/kPmx16u67eS8mDGmYX5cfXfYPI6L3Bu0W0IOV4kSVNT4DIH5m5XS9Zv698HSeg03mNHRJfa4zLN0MgwPC+2T62m3OiS2L6HkwqqiwStW+xOoW1UhwDJnyi3UqsGwNhuFhQ6uEUZqVqLM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1717140580; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NUbGXMH/05NqmsodcOwFuyOD95dFMv4taoskzEr1lZU=; b=FyzynJksTyckIRmzGeqEE+LdnLme6I+ytWnmo4JCuRibVvAVnhysvSQWLO9WLqTQQf9nOU55mSwCyu9/To+Jn7TSnINMegskLllymBpfop/V8jB23coU2BnhqcSObsoncz57Z1mFCAVcoLyf5h8W9I23RjW/xegdt7il7iIQePk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1717140580854251.88561679666032; Fri, 31 May 2024 00:29:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sCwhR-0004MJ-Th; Fri, 31 May 2024 03:29:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhP-0004Lb-Cp for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:15 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhN-0003YB-Ty for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:15 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-553-gsR16aUzNvaSHJ4Q163UBw-1; Fri, 31 May 2024 03:29:10 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 455CE101A525 for ; Fri, 31 May 2024 07:29:10 +0000 (UTC) Received: from maggie.brq.redhat.com (unknown [10.43.3.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 79593491034; Fri, 31 May 2024 07:29:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1717140552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NUbGXMH/05NqmsodcOwFuyOD95dFMv4taoskzEr1lZU=; b=Qbuvk8CSNe6rwBOZyW+vdAqSOlU4KS1fmexnL06U4s3kUOaap5FlT5ZoYDs0gNXrUyiAhZ 8encbQSIvCbe6cv6YoBUQchROx+/0web28Ga6WA54aJG4+apMrFwY8OqyNYJQtZAdjVRxc quWJZtMLUPf7a//NGax/n8rjIJD8AYg= X-MC-Unique: gsR16aUzNvaSHJ4Q163UBw-1 From: Michal Privoznik To: qemu-devel@nongnu.org Cc: david@redhat.com, imammedo@redhat.com Subject: [PATCH v2 2/4] osdep: Make qemu_madvise() return ENOSYS on unsupported OSes Date: Fri, 31 May 2024 09:28:58 +0200 Message-ID: <4dc484ae240edf8df0de14edefc3c3a717a1c781.1717140354.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 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=170.10.129.124; envelope-from=mprivozn@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.085, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1717140582537100003 Content-Type: text/plain; charset="utf-8" Not every OS is capable of madvise() or posix_madvise() even. In that case, errno should be set to ENOSYS as it reflects the cause better. This also mimic what madvise()/posix_madvise() would return if kernel lacks corresponding syscall (e.g. due to configuration). Signed-off-by: Michal Privoznik Reviewed-by: David Hildenbrand Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- util/osdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/osdep.c b/util/osdep.c index e42f4e8121..5d23bbfbec 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -64,7 +64,7 @@ int qemu_madvise(void *addr, size_t len, int advice) } return 0; #else - errno =3D EINVAL; + errno =3D ENOSYS; return -1; #endif } --=20 2.44.1 From nobody Mon Nov 25 05:14:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1717140615; cv=none; d=zohomail.com; s=zohoarc; b=dhoNba1NOvsLIviLX0bvyhHFdaXYb3s03r6dneQ9XGwkzUvwSMXk+HNKBoSQNS8gHitn8ry4AHh0BmTLBS4NjrlSI2Sl2KoBuOhZpm07qo/H8oh2EfyXEZJFAbPoozmG4bF0ecspJO+kdAPVsbXmtfTKbbk80keU9GFgu0Xl4MI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1717140615; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iNVcWm9NVa4DYrJoN630zbwQ/tvhuAhNDFHXI3Nttls=; b=cwhomq501uu+urcfLwhsB7ErmA2ero4Z7o9bOLDdgdNrS+eDcaz1Vzg6iuSE8Z5jzLPJeCEowhAjdRDfLnG64XniYP3C2YoELQyiXgSS+rs1StPhP9PPlwZU5OehNO6r1kLtB/SRX/rRJwaiDLyqA0A79C30PW+sFOIHjrByGzk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1717140615375319.48757818346576; Fri, 31 May 2024 00:30:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sCwhS-0004Mr-Fs; Fri, 31 May 2024 03:29:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhP-0004Lk-Lw for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:15 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhO-0003YE-50 for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:15 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-633-6aI3VdApOZSi2_cwAa7Q3w-1; Fri, 31 May 2024 03:29:11 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 44422800169 for ; Fri, 31 May 2024 07:29:11 +0000 (UTC) Received: from maggie.brq.redhat.com (unknown [10.43.3.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 78151491032; Fri, 31 May 2024 07:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1717140553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iNVcWm9NVa4DYrJoN630zbwQ/tvhuAhNDFHXI3Nttls=; b=h7c7TS+A1MLENWsB6mYl6VlLSOsGIZAah66KsA5uHhB+Tu5vd8VTQZtVACRWxV0ULWHrBy fSQt5GTagFJXm8KZS1LxqvlYugOZ11BG+3IhP39d4IY3416nqe53DciWNWQG1Z4n7MdsMX SReVbqUBCgHs1HnYcEsu8sgCZlJcEqY= X-MC-Unique: 6aI3VdApOZSi2_cwAa7Q3w-1 From: Michal Privoznik To: qemu-devel@nongnu.org Cc: david@redhat.com, imammedo@redhat.com Subject: [PATCH v2 3/4] backends/hostmem: Report error on qemu_madvise() failures Date: Fri, 31 May 2024 09:28:59 +0200 Message-ID: <3341689328d280183062a8fcde006468346ecf1d.1717140354.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 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=170.10.129.124; envelope-from=mprivozn@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.085, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1717140616645100001 Content-Type: text/plain; charset="utf-8" If user sets .merge or .dump attributes qemu_madvise() is called with corresponding advice. But it is never checked for failure which may mislead users into thinking the attribute is set correctly. Report an appropriate error. Signed-off-by: Michal Privoznik Reviewed-by: David Hildenbrand Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- backends/hostmem.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/backends/hostmem.c b/backends/hostmem.c index eb9682b4a8..012a8c190f 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -178,8 +178,14 @@ static void host_memory_backend_set_merge(Object *obj,= bool value, Error **errp) void *ptr =3D memory_region_get_ram_ptr(&backend->mr); uint64_t sz =3D memory_region_size(&backend->mr); =20 - qemu_madvise(ptr, sz, - value ? QEMU_MADV_MERGEABLE : QEMU_MADV_UNMERGEABLE); + if (qemu_madvise(ptr, sz, + value ? QEMU_MADV_MERGEABLE : QEMU_MADV_UNMERGEAB= LE)) { + error_setg_errno(errp, errno, + "Couldn't change property 'merge' on '%s'", + object_get_typename(obj)); + return; + } + backend->merge =3D value; } } @@ -204,8 +210,14 @@ static void host_memory_backend_set_dump(Object *obj, = bool value, Error **errp) void *ptr =3D memory_region_get_ram_ptr(&backend->mr); uint64_t sz =3D memory_region_size(&backend->mr); =20 - qemu_madvise(ptr, sz, - value ? QEMU_MADV_DODUMP : QEMU_MADV_DONTDUMP); + if (qemu_madvise(ptr, sz, + value ? QEMU_MADV_DODUMP : QEMU_MADV_DONTDUMP)) { + error_setg_errno(errp, errno, + "Couldn't change property 'dump' on '%s'", + object_get_typename(obj)); + return; + } + backend->dump =3D value; } } @@ -337,11 +349,19 @@ host_memory_backend_memory_complete(UserCreatable *uc= , Error **errp) ptr =3D memory_region_get_ram_ptr(&backend->mr); sz =3D memory_region_size(&backend->mr); =20 - if (backend->merge) { - qemu_madvise(ptr, sz, QEMU_MADV_MERGEABLE); + if (backend->merge && + qemu_madvise(ptr, sz, QEMU_MADV_MERGEABLE)) { + error_setg_errno(errp, errno, + "Couldn't set property 'merge' on '%s'", + object_get_typename(OBJECT(uc))); + return; } - if (!backend->dump) { - qemu_madvise(ptr, sz, QEMU_MADV_DONTDUMP); + if (!backend->dump && + qemu_madvise(ptr, sz, QEMU_MADV_DONTDUMP)) { + error_setg_errno(errp, errno, + "Couldn't set property 'dump' on '%s'", + object_get_typename(OBJECT(uc))); + return; } #ifdef CONFIG_NUMA unsigned long lastbit =3D find_last_bit(backend->host_nodes, MAX_NODES= ); --=20 2.44.1 From nobody Mon Nov 25 05:14:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1717140601; cv=none; d=zohomail.com; s=zohoarc; b=CHKPtEazGT9a5PiS58OIRsAu4SpxTHzcwvcAp/prCcPHz/oseQprcjqlEcAsdBZmjqOPpNGn0r3Mkgf6/wb9CzGxPTraV2taDDoxHLd8/bPTadKsVJ512AkoI6mkk17JeOArb29peLL1Jwueg+Ip1fLD4iqz2dFp5btLbb++Lmk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1717140601; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ssjbgjftWORE46CGyb0kf54rN64kFgfRw/M+bJ1Y4t4=; b=NwR9hJjgyk4EWTBO7ksbSWkoCppOqZuRgsqg4DeZu+sF5lOeMcoFStJZURBpAppIA2o+C7HvWlum8x8faz+DC3phe6nMeR/QJ+4vIU/JUhm5zkDI4u4fKFUL+p3SD4Jp3fDAo2YbtQ2yjSggFP3Z4kjgAl3w9ZujesNUba5/br0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1717140601131323.32402221229427; Fri, 31 May 2024 00:30:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sCwhY-0004RI-2o; Fri, 31 May 2024 03:29:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhX-0004Op-13 for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sCwhT-0003Yt-AJ for qemu-devel@nongnu.org; Fri, 31 May 2024 03:29:22 -0400 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-620-BNZo7X3qO9maNk1TmmoGXw-1; Fri, 31 May 2024 03:29:12 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4320A1C05138 for ; Fri, 31 May 2024 07:29:12 +0000 (UTC) Received: from maggie.brq.redhat.com (unknown [10.43.3.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 777D6491034; Fri, 31 May 2024 07:29:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1717140558; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ssjbgjftWORE46CGyb0kf54rN64kFgfRw/M+bJ1Y4t4=; b=ako2l+BXHXjSnG8i7eUZMQwpNR9H+DH66dFa7z4101KymTAYsrfQOmKGy7ujKiz58xaISz sLyfRg2FkUlILO87HCqk/7fJO+jlfy9/7y5Z/av5tsp8Hq9iNmsdOQRTzQLt2iezfptQj9 J2Db8zDj57gY9OCFkSlbkdL8fW7W7Zc= X-MC-Unique: BNZo7X3qO9maNk1TmmoGXw-1 From: Michal Privoznik To: qemu-devel@nongnu.org Cc: david@redhat.com, imammedo@redhat.com Subject: [PATCH v2 4/4] backends/hostmem: Report error when memory size is unaligned Date: Fri, 31 May 2024 09:29:00 +0200 Message-ID: <58295d1f6c995c0c444e375348436e799689126c.1717140354.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 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=170.10.133.124; envelope-from=mprivozn@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.085, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1717140602569100001 Content-Type: text/plain; charset="utf-8" If memory-backend-{file,ram} has a size that's not aligned to underlying page size it is not only wasteful, but also may lead to hard to debug behaviour. For instance, in case memory-backend-file and hugepages, madvise() and mbind() fail. Rightfully so, page is the smallest unit they can work with. And even though an error is reported, the root cause it not very clear: qemu-system-x86_64: Couldn't set property 'dump' on 'memory-backend-file'= : Invalid argument After this commit: qemu-system-x86_64: backend memory size must be multiple of 0x200000 Signed-off-by: Michal Privoznik Tested-by: Mario Casquero --- backends/hostmem.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backends/hostmem.c b/backends/hostmem.c index 012a8c190f..5f9c9ea8f5 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -337,6 +337,7 @@ host_memory_backend_memory_complete(UserCreatable *uc, = Error **errp) HostMemoryBackendClass *bc =3D MEMORY_BACKEND_GET_CLASS(uc); void *ptr; uint64_t sz; + size_t pagesize; bool async =3D !phase_check(PHASE_LATE_BACKENDS_CREATED); =20 if (!bc->alloc) { @@ -348,6 +349,13 @@ host_memory_backend_memory_complete(UserCreatable *uc,= Error **errp) =20 ptr =3D memory_region_get_ram_ptr(&backend->mr); sz =3D memory_region_size(&backend->mr); + pagesize =3D qemu_ram_pagesize(backend->mr.ram_block); + + if (!QEMU_IS_ALIGNED(sz, pagesize)) { + error_setg(errp, "backend memory size must be multiple of 0x%" + PRIx64, pagesize); + return; + } =20 if (backend->merge && qemu_madvise(ptr, sz, QEMU_MADV_MERGEABLE)) { --=20 2.44.1