From nobody Thu Dec 18 08:11:48 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1765902791; cv=none; d=zohomail.com; s=zohoarc; b=PZMtZKiLvEB7y/u9dX6ftNj7nBqvzYvDfqBjbIQGcIjRTqhHj+mxuNf5sg6Ihp+U/jZA1vR0LQwlKhF3KzU2e1xv3CwBDEc3I6Dj1q1FCLlv5h/GvuVAaz17KwJXnhATPVnmC6HlxvPWroiGLxFGwGk0cFiEABbHNn42xAN3J3Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765902791; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mgFzPujzf54tak0q7FrhW+uWSwtYPNMPJZRSoWURja8=; b=DoULSYRmDSBsvr+GBD6a4gZvY3sXP/JUaEgk+JOpLdSKOZKqCWXEa6etocLpc/EX8uc+k53gXaaRHRqcYHuoXCti1megEWmtBy83yoaAk0dWeZi3tKJAxjtaPLZwkw3ynNPEWygU8xHatQf5NB0M8rFyKOrd27LyQ4Wv5W3o04s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1765902791382268.18313241306487; Tue, 16 Dec 2025 08:33:11 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1188081.1509328 (Exim 4.92) (envelope-from ) id 1vVXyZ-0001Qg-Eb; Tue, 16 Dec 2025 16:32:39 +0000 Received: by outflank-mailman (output) from mailman id 1188081.1509328; Tue, 16 Dec 2025 16:32:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXyZ-0001QY-9t; Tue, 16 Dec 2025 16:32:39 +0000 Received: by outflank-mailman (input) for mailman id 1188081; Tue, 16 Dec 2025 16:32:38 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXyY-0001Pz-2V for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:38 +0000 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [2a00:1450:4864:20::336]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id d4e66c2f-da9c-11f0-b15b-2bf370ae4941; Tue, 16 Dec 2025 17:32:37 +0100 (CET) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4779adb38d3so36946905e9.2 for ; Tue, 16 Dec 2025 08:32:37 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 08:32:35 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d4e66c2f-da9c-11f0-b15b-2bf370ae4941 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1765902756; x=1766507556; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mgFzPujzf54tak0q7FrhW+uWSwtYPNMPJZRSoWURja8=; b=OdyqZT5RzzYpa+v0CIyxPoR0KCYb6eADDuSyJn44qjmFeB44qDrjt3uIXYucZlY5Pw mlL241m5tyJHkSOK7A3bbRa6POZoTYtPw57y4yKYfy5BIUa3M/S2rH4n13jauqcXpEM5 lPf6OttoPeaRqnaIj0LYyZdfQceFY5TD1iPD0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765902756; x=1766507556; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mgFzPujzf54tak0q7FrhW+uWSwtYPNMPJZRSoWURja8=; b=v9z8L4mTk+lnvL4MnPrv3/JgNkL4ZDyPkvDjFke3BL53BOfjNGQcWD6uqLMW7vnABv GYso1fLCGzmLDNxrXZHW1tgioWaYgoT2gLLBrmSkaiQgo39pdMgBEap08igu1Q6OvR7h 1VMkKQ3arJeKQSDngfcm4ULORNesnr85qd6PaeJYcitNcnRJKPQ9h4jvShVtVMOWwT4e A2gE6cLa5MqJKb+lpKVGwk3Zoapm48SrbI9jFaF0wvuvqRZk8xLK9xbJmX+KIkiWhRSO iRfItzY9gmVUzF3WIZO4RJxMrxjFU1O+qYTRipd+tAynIP5e7uPLnIR3ZUdIIAoCJLpi CMOg== X-Gm-Message-State: AOJu0YwrAGhXUFFIjJ3YuHDPp9FX+kPRr9qNXP5MgwLS28snQnV8QW7b 6fvyNN87kx7r1tdqbW8IFd31NlQ4bbUjGbYEwuT0lfb/X8KZLPjyixUg7bB+/J+jytTIXuhbjIt OkwR1 X-Gm-Gg: AY/fxX5akFu8Qu8wVFcoHxPKs4kSpWQXofZ6y4Qe7uAHx1UiyiJ/QhJN9Vz2tiVMOtz JPZ54cuGuHZYh3e86ExNukMFcQda1S9C9cQwdAGNF5anKSQnwhd9LCRybCixbNldAR3ebydze3s AORQbG4RWPhUBy7r1/WtuEWOj55RwY7tN6BgWoL2SKzMQHja1n3HypI8BJc893bM+Im8JjBueH3 JJtXw4iwTO3n4Oh4trfY+IyMn34OcrYcZWDm1o5X6EF0Of1rrN/vZO2zbcv5t8sCQ0rGy0DzEDt z45X2lfgzzwzdXq2WloHck6huYpPI5ZzznwPHy7e15koPv5VJWxRH1ssQ5W0WOhq1Qgi08GFnjD 1BvuwIUYt90STnhwCi91YtAoqX1duZhojA0Dkibe50cB9Rjo4ujVZH6Zk7VGvXBktt4xs3euzoZ yN4Ym9VBpkYHwM3gsaVrMxyd5Imz5oGJM9HlHR8o9dqk+i/wgqFnrz4r/wOPgd8g== X-Google-Smtp-Source: AGHT+IF8/pq5lRwmiKyouqxflWlhNHwkTUT8LmvNn8ZyikT3BUT1yxWKWhQ3I1pXvzHrRZJwrUXG3w== X-Received: by 2002:a05:600c:4e91:b0:477:641a:1402 with SMTP id 5b1f17b1804b1-47a8f8ab745mr156950825e9.4.1765902756170; Tue, 16 Dec 2025 08:32:36 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 1/4] xen/domain: Disallow XENMEM_claim_pages on dying domains Date: Tue, 16 Dec 2025 16:32:27 +0000 Message-Id: <20251216163230.2768186-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com> References: <20251216163230.2768186-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1765902792603158500 XENMEM_claim_pages can be issued on a domain in the later stages of domain_kill(). In that case, the claimed memory is leaked, as there's no w= ay to subsequently release the claim. Claims are intended for use during domain construction; to reserve sufficie= nt RAM to construct the domain fully. There's no legitimate reason to be call= ing it on a dying domain. Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory op= s)") Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Anthony PERARD CC: Michal Orzel CC: Jan Beulich CC: Julien Grall CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini --- xen/common/memory.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xen/common/memory.c b/xen/common/memory.c index 3688e6dd5032..ae805ccbe4d1 100644 --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -1681,6 +1681,9 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE= _PARAM(void) arg) =20 rc =3D xsm_claim_pages(XSM_PRIV, d); =20 + if ( !rc && d->is_dying ) + rc =3D -EINVAL; + if ( !rc ) rc =3D domain_set_outstanding_pages(d, reservation.nr_extents); =20 --=20 2.39.5 From nobody Thu Dec 18 08:11:48 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1765902792; cv=none; d=zohomail.com; s=zohoarc; b=emvTuJ4/WNNn1gjlpo5V29f4V31xNMqhHKyLYQF7CjeenCupD9qqBG/XPL2C7CUaEN660NfV5GFolHv/j4dwVuy+7AsjEXlI3u7R6VUmXnBZ0qBKhtICv+ODabP+11s5EFCyvnSG5ShRzOa/pwzTqt4ygZU0ikFqNwp+f4zr3JM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765902792; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=W6MmJLh1zedBGYOEKBR6Zhdpkfv4rz6s7azRwwDKfXc=; b=ZAQqpeawKhU7nI62vMC6OqhUd13kKkj1mDK5K9JZnvzTscP6lgSU4d8V6dEoCsSqQToT2WfPjMPfYu7Y7VwGprNfnFtDHxi00jGpsAecGjD6RcVDyKdYfRJ/nk2E8qH7XTxNi7LDhpVqWL/eZt19hQt104m/lAlrn0ZDRoNKkb4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1765902792676669.2101380176636; Tue, 16 Dec 2025 08:33:12 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1188084.1509358 (Exim 4.92) (envelope-from ) id 1vVXyc-00025f-AA; Tue, 16 Dec 2025 16:32:42 +0000 Received: by outflank-mailman (output) from mailman id 1188084.1509358; Tue, 16 Dec 2025 16:32:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXyc-00025U-5u; Tue, 16 Dec 2025 16:32:42 +0000 Received: by outflank-mailman (input) for mailman id 1188084; Tue, 16 Dec 2025 16:32:40 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXya-0001QJ-Pi for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:40 +0000 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [2a00:1450:4864:20::32c]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id d618581b-da9c-11f0-9cce-f158ae23cfc8; Tue, 16 Dec 2025 17:32:39 +0100 (CET) Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-47774d3536dso48128635e9.0 for ; Tue, 16 Dec 2025 08:32:39 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 08:32:36 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d618581b-da9c-11f0-9cce-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1765902758; x=1766507558; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W6MmJLh1zedBGYOEKBR6Zhdpkfv4rz6s7azRwwDKfXc=; b=jm7sYpSWm9Y3wA3bkW2SyZQG/aiMPdq03oVTFZNBk3DQxRod5tsc0nSyF5qLpE0Ju4 6VFqC8wF1RhkiDS/YuumhK8qiErcym33bBTV4GYWEr+8h0uzxC/z2Wr7KwV/ohLAuAhl FyIZQ+3T8eCHTBHQsSIMyeiEjzORwZB62UeiQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765902758; x=1766507558; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=W6MmJLh1zedBGYOEKBR6Zhdpkfv4rz6s7azRwwDKfXc=; b=CfCkNHaS/FnPgvfgVmfb6ixMRU4V134ubp8LiHnqkOnmIiLIv91Z9if2ZCEdDQmPfS e1S7MuOuiTd13BR+CCf5vgPaHK0SnSD3Rx3psqdeElDv0LoCBDk4GRhNBtwk1e5vl81w KGIVM7xmHPVvWkZUbSNWVYtD6dqByssmYkRFK3/V6BM7fiGL66suOdFaBLDOWwDrMHij bfpefYEOLH/AbiZqYMvuVQn2sqVd6dsE+7Oz31Whz5wmX5Zo6T2uawBP2reE1e7Gnfc1 iEVp0GtqG2rVln/R9LvUq7ZNdd2M0XfFt3BYuypQOazrLwvT7DUbCyfUHD8xSQMEvAWJ Gdlg== X-Gm-Message-State: AOJu0Yxe+xPLKtmgr+fVg4VxU/waGHIaiXKAdLiFJs/BblRDS8YbezYx fEOHpTiMhs330rbnCumXXkTOlWPrWzch3QK3tq874D3gOvjERW+O3MnN4M2Adb1q1s1ZXDhCV1w fNA8w X-Gm-Gg: AY/fxX6t8hnXQVyWMkqyiRcvOQAjyovOE37ylLKQvDmf6ip1qaVqSQ5J/o3hY7wmCgb bRwXPn5ZqPhejraismbYopLbBrg3p9VlSnxw73JO35bxepFf0YQQVhFbD8c7qiYw+Bv2EjTmRjn HqNgIK62LQKyWqQHmmBGyvPS42tq3nqrGXTNL3dvhkOSnoMAtFb31jV9+kK7ZIqmVC54V1y4pFI TF8OC/YFtsJ9cS4avnlFbVGF2LrwuhhPAI1tMRYrdFJJt0Wf+nzptdy16NjTfrcmaPyDGkXNYQg /VLUOHxoVGIGiq4iVoffka9upKASOrqNB3Cj2Iwr1e30Y5Hsvi83GfVtqLTny81eZ+MwKcgcfjs Jvqe95kIqL4Q0AzF9QfrYlDDwBjeCmTxCTK2/KevXxH326jZ1tP2JQ/b0FA/XzYBgsg4pNMtdF8 D3/swLc8CF6OAbZw7QoJ6Cb2Fgc6ChbjljmcX+JxVKDXXK1EwXL3O7VF6qqYreag== X-Google-Smtp-Source: AGHT+IEGipICJb4JSzbzK0o4frKIyWRr5GCOORTNhsNH3E1yt67Zo6pTCUJjYuMnO0Bux+AQ/LiqiA== X-Received: by 2002:a05:600c:3ba3:b0:477:a219:cdc3 with SMTP id 5b1f17b1804b1-47a8f1c33c5mr186972085e9.12.1765902757451; Tue, 16 Dec 2025 08:32:37 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 2/4] tools/libxc: Delete ENOSYS squashing in xc_domain_claim_pages() Date: Tue, 16 Dec 2025 16:32:28 +0000 Message-Id: <20251216163230.2768186-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com> References: <20251216163230.2768186-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1765902795113154100 It's not acceptable to hide this from the caller; the effect of doing so is= to break an atomicity expectation. Only the caller can know what the appropriate safety action is in the case that the claim hypercall isn't available. Fixes: fc67e9dc0c1f ("xc: use XENMEM_claim_pages hypercall during guest cre= ation.") Signed-off-by: Andrew Cooper Reviewed-by: Roger Pau Monn=C3=A9 --- CC: Anthony PERARD CC: Michal Orzel CC: Jan Beulich CC: Julien Grall CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini --- tools/libs/ctrl/xc_domain.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c index 2ddc3f4f426d..01c0669c8863 100644 --- a/tools/libs/ctrl/xc_domain.c +++ b/tools/libs/ctrl/xc_domain.c @@ -1074,7 +1074,6 @@ int xc_domain_claim_pages(xc_interface *xch, uint32_t domid, unsigned long nr_pages) { - int err; struct xen_memory_reservation reservation =3D { .nr_extents =3D nr_pages, .extent_order =3D 0, @@ -1082,13 +1081,7 @@ int xc_domain_claim_pages(xc_interface *xch, .domid =3D domid }; =20 - set_xen_guest_handle(reservation.extent_start, HYPERCALL_BUFFER_NULL); - - err =3D xc_memory_op(xch, XENMEM_claim_pages, &reservation, sizeof(res= ervation)); - /* Ignore it if the hypervisor does not support the call. */ - if (err =3D=3D -1 && errno =3D=3D ENOSYS) - err =3D errno =3D 0; - return err; + return xc_memory_op(xch, XENMEM_claim_pages, &reservation, sizeof(rese= rvation)); } =20 int xc_domain_populate_physmap(xc_interface *xch, --=20 2.39.5 From nobody Thu Dec 18 08:11:48 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1765902783; cv=none; d=zohomail.com; s=zohoarc; b=J8g0dghIU3hgwrhRHIOJxTZ9H+ilNnrAnmwo8bXRqg734Pqi5fnnIUErmidyT2rJXK3wf3ukEhJ7SquOiQanhSgWzZ3MpOGOTLZkdVl9M9TKqOX7zfDal+YU7/ezvwQpbEY539cZeqsVriMYngF0LttLClZrnOo1s2j8CujPpCw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765902783; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=snhnKxagIbQr19lSVEDCo+bKb0pwUs/EFkhnzt3TEJw=; b=MCEeSHVhLa/YSbR/kmjLJ8fWX8TW3VT0PYb+GfC5PqGvE+f2ZLKPZOYAbk6hD74fuTnQ3G6qiK22kt9I8WW60DHubcyas2V+in0uYL6uO30mGCgMBOLs1aze4yuzB2o4EgAiXRMmwFaNv2WtcNolbSEbqIS/OnmHuOEQMEqzPQg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1765902783278643.7421353991945; Tue, 16 Dec 2025 08:33:03 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1188083.1509340 (Exim 4.92) (envelope-from ) id 1vVXya-0001bf-3H; Tue, 16 Dec 2025 16:32:40 +0000 Received: by outflank-mailman (output) from mailman id 1188083.1509340; Tue, 16 Dec 2025 16:32:40 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXyZ-0001aX-Ut; Tue, 16 Dec 2025 16:32:39 +0000 Received: by outflank-mailman (input) for mailman id 1188083; Tue, 16 Dec 2025 16:32:39 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXyZ-0001Pz-8N for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:39 +0000 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [2a00:1450:4864:20::32e]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id d5f8a76a-da9c-11f0-b15b-2bf370ae4941; Tue, 16 Dec 2025 17:32:38 +0100 (CET) Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-47798ded6fcso31265585e9.1 for ; Tue, 16 Dec 2025 08:32:38 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 08:32:37 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d5f8a76a-da9c-11f0-b15b-2bf370ae4941 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1765902758; x=1766507558; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=snhnKxagIbQr19lSVEDCo+bKb0pwUs/EFkhnzt3TEJw=; b=JftgUmZIq4XX379CGQfilend91sx/9l2hy4U7Jk71q11prXYucvcq6+BRWUFfIAex0 sf08Ghr3E33v5xOjBK0t7QUagrPWpgH/whTiHiOI0le/zb9+3BnY611B5sSFFUYZpmro wCdTNg/+a8V7nG/b9mRaU6eSyw6vsZQ6xn0f8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765902758; x=1766507558; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=snhnKxagIbQr19lSVEDCo+bKb0pwUs/EFkhnzt3TEJw=; b=bkxx7Uaiaj4gmA2lS46f15qnnMpwpFgXXM0Hz0IhbB3vOmS0QxbHfbAEyOiCFMLV73 ZWqkH/nI69eeaAayyiMxklMyxiQidEYAS1FkB/9yO5v93UJZvV4zukMVwD/rUr4/2xTm 9d9mmXhNlSzIzXwQ0DtN2C1s1QTcmuHFfZ3MUTfwOyzxU2QHBif1iPTSnD+CIw/H5vZn LuHNXGho4vssHjj5sldrkYQCuXr56rnGCuFWvyiTAlD+RRMtO7w4YZxCY+UukwKu65I/ oOqhzKgHIcTbs+eUwiy2dwkbIztzLVoHpgXvPIJaP5JLfioA8GFsFE+/7D3RK6JTEhvd ZE6A== X-Gm-Message-State: AOJu0Yw+DVAhviThKIVyD41kVtZoUaRln4Dneero7R3DKsdh7eXItnO3 saKrtZEHZS2vRM7u2H7MgvROrDv4wTg7Y77+NC+Jxu7qLJ8ZVxQsdp4py7KZCJKVfkjS8ncT+N4 +GC7c X-Gm-Gg: AY/fxX4Sshvjcv34y58gJjSqE7WPELsaRV6NmXVauu3aocxPM4bVcHzlo2LT3lFwJAW 2PpZHhZlL43U0AKSu2IE2joWq9ObO3SKQXgd3z1W9KYXnLXL9Az/CHmhMNpFqAz4qjnl87O6pSI d0B99Go5NrBK3JlwGD8YB8z8zpB//Cz5zVf/K9pKGaRx5Gsk/7sFujK6MzNMFzikC7Q6VZaUgBo KlOF+Azioz94h6QqbxRkslnRn3+1riFtdNqt99/aVxWEkelm7UM/TOi3yx2KJBzXhTOP5Nmb/IT ePo4irImIZ1TISNs8T5ESyMHMFQ/KnmxQ5dT7vcrDG2fwOHZKoD9gtJ6P0qy1k7XV1FhRhGiUX0 dqEaZ/CWHK4hGK3wpxC/4vOLGPV/+8Bx3ZwMCCgaVBbxKmGagXgwxC+R4Qok/bu3d65tqX4CLMn 2oG/WYxofPM7y+b6hHWJH7D9wLnvfzOKunpYsaNJq1B/enPo26cSRmnan51673OQ== X-Google-Smtp-Source: AGHT+IEbflKNlKyo/6l8Gv/3P7NCIjBvrKq+UBG5fId11wBHJqrSBQTJC4+ks2VcgDEeYEnN86Yi2g== X-Received: by 2002:a05:600c:8284:b0:477:8b2e:aa7d with SMTP id 5b1f17b1804b1-47a8f90e53cmr151427135e9.30.1765902758134; Tue, 16 Dec 2025 08:32:38 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 3/4] tools/tests: Sort Makefile Date: Tue, 16 Dec 2025 16:32:29 +0000 Message-Id: <20251216163230.2768186-4-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com> References: <20251216163230.2768186-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1765902785043154100 ... and split the x86 group away from the common group. No functional change. Signed-off-by: Andrew Cooper Reviewed-by: Roger Pau Monn=C3=A9 --- CC: Anthony PERARD CC: Michal Orzel CC: Jan Beulich CC: Julien Grall CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini --- tools/tests/Makefile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/tests/Makefile b/tools/tests/Makefile index ac5737364623..e566bd169952 100644 --- a/tools/tests/Makefile +++ b/tools/tests/Makefile @@ -3,17 +3,18 @@ include $(XEN_ROOT)/tools/Rules.mk =20 SUBDIRS-y :=3D SUBDIRS-y +=3D domid +SUBDIRS-y +=3D paging-mempool +SUBDIRS-y +=3D pdx +SUBDIRS-y +=3D rangeset SUBDIRS-y +=3D resource +SUBDIRS-y +=3D vpci +SUBDIRS-y +=3D xenstore + SUBDIRS-$(CONFIG_X86) +=3D cpu-policy SUBDIRS-$(CONFIG_X86) +=3D tsx ifneq ($(clang),y) SUBDIRS-$(CONFIG_X86) +=3D x86_emulator endif -SUBDIRS-y +=3D xenstore -SUBDIRS-y +=3D pdx -SUBDIRS-y +=3D rangeset -SUBDIRS-y +=3D vpci -SUBDIRS-y +=3D paging-mempool =20 .PHONY: all clean install distclean uninstall all clean distclean install uninstall: %: subdirs-% --=20 2.39.5 From nobody Thu Dec 18 08:11:48 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1765902781; cv=none; d=zohomail.com; s=zohoarc; b=hzc8dG65/rPXp+Sq3LmerVjXCStWmiwLAVTSiz34M7/Yr8rpurSA2odY8rslb9ENB45zRCghSkz5XAeBZoDHEuGlZ0DuLX8syCyBC6khpL/05+Nyldqp+5EPY+r3G5c/Dqlf+LjuAuYRml5Cnpp8GM6V9c4Wnj7VVl9ofTpwx5w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765902781; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5gXaR4CNMM1JwOw0eyl/FJQAxgRZwy+cxNH9Xft08So=; b=QFAD8uoFR2HTbTFj6JJ8ZKD0uP4AnZJdYPdooYQOhZoV9bHuxw2Nlq+aZUJicHKNfv4PqChVdHW5PGSqx8FEu8xi4PAdMld7XNST5j+Kn3QdkeW94WKonzp16Iu8Fzm8S8ku1/mngr4AftvJrGZYPI0TxHOMC7z3FdUvrCOwzo8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1765902781215248.33128483271514; Tue, 16 Dec 2025 08:33:01 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1188085.1509367 (Exim 4.92) (envelope-from ) id 1vVXyd-0002KB-Go; Tue, 16 Dec 2025 16:32:43 +0000 Received: by outflank-mailman (output) from mailman id 1188085.1509367; Tue, 16 Dec 2025 16:32:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXyd-0002K4-Dr; Tue, 16 Dec 2025 16:32:43 +0000 Received: by outflank-mailman (input) for mailman id 1188085; Tue, 16 Dec 2025 16:32:41 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vVXyb-0001QJ-UE for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:41 +0000 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [2a00:1450:4864:20::32f]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id d6a46efb-da9c-11f0-9cce-f158ae23cfc8; Tue, 16 Dec 2025 17:32:40 +0100 (CET) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-47bdbc90dcaso633435e9.1 for ; Tue, 16 Dec 2025 08:32:40 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 08:32:38 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d6a46efb-da9c-11f0-9cce-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1765902759; x=1766507559; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5gXaR4CNMM1JwOw0eyl/FJQAxgRZwy+cxNH9Xft08So=; b=ACFzqlCgx0ER4aD7erwshX4ntmHMalZjwi/sS91C+cpNqVNoB3LjFkWXSUsYd2WMH/ +FeyG08KWecYL545rouMkAoYIt7So6do9l70zv4D6w667atP1ReerjpBy2/5qiBdpWhO Zy2GwahPt+n78WHSlS7lGeW0Ok5LiWWbcZyac= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765902759; x=1766507559; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5gXaR4CNMM1JwOw0eyl/FJQAxgRZwy+cxNH9Xft08So=; b=MyLQbXlMU3/5UViUlLm9iOF86SW2FblYNEHZ/8aYT2FWlc0yD24GxEazoBZ7X/0uAa FkXYlOHsx2d8P0xg6a9oPZ8mXfsnCluZZsLyK6t7iiipXmTan6NtfH6ryca6LW+pOmsw +UdEtETg8bFcnR7M1iFNIMsbpB9Y1HkPmVNsJx9tg21axX/Z4PqPhsHE2VOOBHlGO9yy 0DRSKMU7gnJO4HiAkcICSXj+ecNbQcqf6RMbp8OYNW9ePBnxmuqk4xN4NVjmlv6rLUyf 49L7GNjZ7Q5In6bFwx38XfASq87fpUdHdS9yXhAmoeU0+keYz/95EXZdV7RPdfmQlX0t p9ZQ== X-Gm-Message-State: AOJu0YxN9DsDPJDb2FM3oddVe3AU46XKgumvkuMTlpft2gO4TZTQALCm 9BulJt1qPnWTnJxCNSrbRgnmKMSaWuGEUOyz5FaNBAJPCIC4+PnNM0gGHkt9Y8VBKzWN8ZjuWxw 73N4w X-Gm-Gg: AY/fxX5x94Bbh0G2kPbUGyOAob+6AiiKgthee5oXkNsYwhLZt8kxflOJdFCZ/OldHEt SUZUcC3A/KFpmhdCXQhKhEN1wS9XC9NGJL5JLNZJtOYr3jSv3JtsX/w5LItt0WTvgIrrMyZ1FIT Ul4qVZ+CzAAdMbSxp802A154vmWyjd4AOuTUT+wYx47yrc3UkqaY0fVDmvgiYanNE4xNFpAlA4X X3/0e0xl1cRaipklWloz0sji4gKv5TvUYPAEZeETYhJSJglMz4MT6HTJApoWWp2y5yzd09I1Vlk 9YLQH3gHZSG8EB3sZ9Ak5cZ1XkUq4HhgvEaLTibCPKTrcxBtKtSQf/5bz4j8qi2+hKENL7puuRj NqrAzDlr1CzuD3bT5qTwRzfddnvduU5TFyFI9WRioqqnEVKqNgWeRpPBUkgO563M2uwbyFjwOvr MrLuxtVg1eRfUN46DSXoAQXVOvRitsu8jTotu0I/y1MmzhY2/o+pp7gnvPlDXgzQ== X-Google-Smtp-Source: AGHT+IHs5rK2CgHB0hILBdJRVro1dQCu5BQib4zZRP6eGKEUwzYltfCTDPzhWnlri2qpScjrghDDVA== X-Received: by 2002:a05:600c:5252:b0:477:76cb:4812 with SMTP id 5b1f17b1804b1-47a8f708ebamr151546015e9.0.1765902759242; Tue, 16 Dec 2025 08:32:39 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 4/4] tools/tests: Memory Claims Date: Tue, 16 Dec 2025 16:32:30 +0000 Message-Id: <20251216163230.2768186-5-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com> References: <20251216163230.2768186-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1765902783342154100 Add some basic testing of the memory claims mechainsm. Signed-off-by: Andrew Cooper Reviewed-by: Roger Pau Monn=C3=A9 --- CC: Anthony PERARD CC: Michal Orzel CC: Jan Beulich CC: Julien Grall CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini --- tools/tests/Makefile | 1 + tools/tests/mem-claim/.gitignore | 1 + tools/tests/mem-claim/Makefile | 38 +++++ tools/tests/mem-claim/test-mem-claim.c | 190 +++++++++++++++++++++++++ 4 files changed, 230 insertions(+) create mode 100644 tools/tests/mem-claim/.gitignore create mode 100644 tools/tests/mem-claim/Makefile create mode 100644 tools/tests/mem-claim/test-mem-claim.c diff --git a/tools/tests/Makefile b/tools/tests/Makefile index e566bd169952..6477a4386dda 100644 --- a/tools/tests/Makefile +++ b/tools/tests/Makefile @@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk =20 SUBDIRS-y :=3D SUBDIRS-y +=3D domid +SUBDIRS-y +=3D mem-claim SUBDIRS-y +=3D paging-mempool SUBDIRS-y +=3D pdx SUBDIRS-y +=3D rangeset diff --git a/tools/tests/mem-claim/.gitignore b/tools/tests/mem-claim/.giti= gnore new file mode 100644 index 000000000000..cfcee00b819b --- /dev/null +++ b/tools/tests/mem-claim/.gitignore @@ -0,0 +1 @@ +test-mem-claim diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile new file mode 100644 index 000000000000..76ba3e3c8bef --- /dev/null +++ b/tools/tests/mem-claim/Makefile @@ -0,0 +1,38 @@ +XEN_ROOT =3D $(CURDIR)/../../.. +include $(XEN_ROOT)/tools/Rules.mk + +TARGET :=3D test-mem-claim + +.PHONY: all +all: $(TARGET) + +.PHONY: clean +clean: + $(RM) -- *.o $(TARGET) $(DEPS_RM) + +.PHONY: distclean +distclean: clean + $(RM) -- *~ + +.PHONY: install +install: all + $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests + $(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests + +.PHONY: uninstall +uninstall: + $(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET) + +CFLAGS +=3D $(CFLAGS_xeninclude) +CFLAGS +=3D $(CFLAGS_libxenctrl) +CFLAGS +=3D $(APPEND_CFLAGS) + +LDFLAGS +=3D $(LDLIBS_libxenctrl) +LDFLAGS +=3D $(APPEND_LDFLAGS) + +%.o: Makefile + +$(TARGET): test-mem-claim.o + $(CC) -o $@ $< $(LDFLAGS) + +-include $(DEPS_INCLUDE) diff --git a/tools/tests/mem-claim/test-mem-claim.c b/tools/tests/mem-claim= /test-mem-claim.c new file mode 100644 index 000000000000..78eae9091f52 --- /dev/null +++ b/tools/tests/mem-claim/test-mem-claim.c @@ -0,0 +1,190 @@ +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +static unsigned int nr_failures; +#define fail(fmt, ...) \ +({ \ + nr_failures++; \ + (void)printf(fmt, ##__VA_ARGS__); \ +}) + +static xc_interface *xch; +static uint32_t domid =3D -1; + +static xc_physinfo_t physinfo; + +static struct xen_domctl_createdomain create =3D { + .flags =3D XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap, + .max_vcpus =3D 1, + .max_grant_frames =3D 1, + .grant_opts =3D XEN_DOMCTL_GRANT_version(1), + + .arch =3D { +#if defined(__x86_64__) || defined(__i386__) + .emulation_flags =3D XEN_X86_EMU_LAPIC, +#endif + }, +}; + +static void run_tests(void) +{ + int rc; + + /* + * Check that the system is quiescent. Outstanding claims is a global + * field. + */ + rc =3D xc_physinfo(xch, &physinfo); + if ( rc ) + return fail("Failed to obtain physinfo: %d - %s\n", + errno, strerror(errno)); + + printf("Free pages: %"PRIu64", Oustanding claims: %"PRIu64"\n", + physinfo.free_pages, physinfo.outstanding_pages); + + if ( physinfo.outstanding_pages ) + return fail(" Test needs running on a quiescent system\n"); + + /* + * We want any arbitrary domain. Start with HVM/HAP, falling back to + * HVM/Shadow and then to PV. The dom0 running this test case is one = of + * these modes. + */ +#if defined(__x86_64__) || defined(__i386__) + if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap) ) + create.flags &=3D ~XEN_DOMCTL_CDF_hap; + + if ( !(physinfo.capabilities & (XEN_SYSCTL_PHYSCAP_hap|XEN_SYSCTL_PHYS= CAP_shadow)) || + !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hvm) ) + { + create.flags &=3D ~XEN_DOMCTL_CDF_hvm; + create.arch.emulation_flags =3D 0; + } +#endif + + rc =3D xc_domain_create(xch, &domid, &create); + if ( rc ) + return fail(" Domain create failure: %d - %s\n", + errno, strerror(errno)); + + rc =3D xc_domain_setmaxmem(xch, domid, -1); + if ( rc ) + return fail(" Failed to set maxmem: %d - %s\n", + errno, strerror(errno)); + + printf(" Created d%u\n", domid); + + /* + * Creating a domain shouldn't change the claim. Check it's still 0. + */ + rc =3D xc_physinfo(xch, &physinfo); + if ( rc ) + return fail(" Failed to obtain physinfo: %d - %s\n", + errno, strerror(errno)); + + if ( physinfo.outstanding_pages ) + return fail(" Unexpected outstanding claim of %"PRIu64" pages\n", + physinfo.outstanding_pages); + + /* + * Set a claim for 4M. This should be the only claim in the system, a= nd + * show up globally. + */ + rc =3D xc_domain_claim_pages(xch, domid, 4*1024*1024/4096); + if ( rc ) + return fail(" Failed to claim 4M of RAM: %d - %s\n", + errno, strerror(errno)); + + rc =3D xc_physinfo(xch, &physinfo); + if ( rc ) + return fail(" Failed to obtain physinfo: %d - %s\n", + errno, strerror(errno)); + + if ( physinfo.outstanding_pages !=3D 4*1024*1024/4096 ) + return fail(" Expected claim to be 4M, got %"PRIu64" pages\n", + physinfo.outstanding_pages); + + /* + * Allocate 2M of RAM to the domain. This should be deducted from glo= bal + * claim. + */ + xen_pfn_t ram[] =3D { 0 }; + rc =3D xc_domain_populate_physmap_exact( + xch, domid, ARRAY_SIZE(ram), 9, 0, ram); + if ( rc ) + return fail(" Failed to populate physmap domain: %d - %s\n", + errno, strerror(errno)); + + rc =3D xc_physinfo(xch, &physinfo); + if ( rc ) + return fail(" Failed to obtain physinfo: %d - %s\n", + errno, strerror(errno)); + + if ( physinfo.outstanding_pages !=3D 2*1024*1024/4096 ) + return fail(" Expected claim to be 2M, got %"PRIu64" pages\n", + physinfo.outstanding_pages); + + /* + * Destroying the domain should release the outstanding 2M claim. + */ + rc =3D xc_domain_destroy(xch, domid); + + /* Cancel the cleanup path, even in the case of an error. */ + domid =3D -1; + + if ( rc ) + return fail(" Failed to destroy domain: %d - %s\n", + errno, strerror(errno)); + + rc =3D xc_physinfo(xch, &physinfo); + if ( rc ) + return fail(" Failed to obtain physinfo: %d - %s\n", + errno, strerror(errno)); + + if ( physinfo.outstanding_pages ) + return fail(" Expected no outstanding claim, got %"PRIu64" pages\= n", + physinfo.outstanding_pages); +} + +int main(int argc, char **argv) +{ + int rc; + + printf("Memory claims tests\n"); + + xch =3D xc_interface_open(NULL, NULL, 0); + + if ( !xch ) + err(1, "xc_interface_open"); + + run_tests(); + + if ( (int)domid >=3D 0 ) + { + rc =3D xc_domain_destroy(xch, domid); + if ( rc ) + fail(" Failed to destroy domain: %d - %s\n", + errno, strerror(errno)); + } + + return !!nr_failures; +} + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ --=20 2.39.5