From nobody Thu Oct 30 18:25:56 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=1753374213; cv=none; d=zohomail.com; s=zohoarc; b=XOLUC2Hyigil5Q6WrQvwMbMwofRwV0+YidIrH5A3ojyPUfIbAM5XQHVYvqMWea6x9o9sjgHb3nKv9fOTbubl4nvnipNYvzSK3CFG3p5TxeOhjwIeeS3B8+1DKOFxX9VR+6dbhes9FGbpAnZiMS30ZeHoYoA2js/PdjRvzIKVMfQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753374213; 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=uun/luk5/cSGSP8YsGtXZOVv4JBt2ovY85kfuEP6H8w=; b=DpAwKPqOfKTd0syp2VdfFitTeD4WMMRr1eCvZMGwS39BVNFrZppSuiTKYFa5amIvUMY2XN98bRMZXLfPYswubHkn5PinaBedwnY2phJP4fkEkVSzE5KFks7B3YrCq5J2/N+4iy2vmhMLZecI1BsGaiHOmA8+SUyhOtBhfVqmkeI= 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 1753374213251396.5185317494934; Thu, 24 Jul 2025 09:23:33 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1056341.1424555 (Exim 4.92) (envelope-from ) id 1ueyiw-0007g1-3T; Thu, 24 Jul 2025 16:23:14 +0000 Received: by outflank-mailman (output) from mailman id 1056341.1424555; Thu, 24 Jul 2025 16:23:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ueyiw-0007fu-0S; Thu, 24 Jul 2025 16:23:14 +0000 Received: by outflank-mailman (input) for mailman id 1056341; Thu, 24 Jul 2025 16:23:13 +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 1ueyiv-0007fi-Bw for xen-devel@lists.xenproject.org; Thu, 24 Jul 2025 16:23:13 +0000 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [2a00:1450:4864:20::42c]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 7e6dcf46-68aa-11f0-a31e-13f23c93f187; Thu, 24 Jul 2025 18:23:12 +0200 (CEST) Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3b45edf2303so991692f8f.2 for ; Thu, 24 Jul 2025 09:23:12 -0700 (PDT) Received: from localhost.localdomain (host-195-149-20-212.as13285.net. [195.149.20.212]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b76fcc2bc8sm2615965f8f.72.2025.07.24.09.23.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jul 2025 09:23:11 -0700 (PDT) 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: 7e6dcf46-68aa-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1753374191; x=1753978991; 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=uun/luk5/cSGSP8YsGtXZOVv4JBt2ovY85kfuEP6H8w=; b=HSk69h3nSc5w/VaSdAoPG2wC8UmCQiWufwbTq7nbX+kz9JAxc0XscIMA3vtaXyDdg3 4XX+w6T4/d/8xf0GXz1JvZN5IabYGCF8Ze7k6EoK8BJmt1ePHvBZlVeXbElc/K8mB0sZ EEcS5k4ZaLyhh+CIuPhcwp3XWXVjjBBemttvU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753374191; x=1753978991; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uun/luk5/cSGSP8YsGtXZOVv4JBt2ovY85kfuEP6H8w=; b=cquejmQalysQLC018D7zt+mIFMOf42x/n530eyoycNjJEfiXdQQNvTiGM0rLOuOXjH SUzKliydTZDVbeQwp3OKA1p6VzHNDYLHbyj/TpLx8Lj8AwQkuN1pLcqsXnaV84l61r89 OwreIX3x3oy1jaIcgfU2BfZ6MaxrvBoRJiu7eA1jZIleBUe7K25ejHbIqL1/xG9fc57e RwqKttHe2v79oRTpnDUlgCV9+ZbUZHqeGmIz9Tbdiyqclo8+knr8N2iHiGTnHvz4yEMU oSZt+3549HRvBjkboKVLgAZAGKcZvbd47Oe45U8eurk6VH9xWYemu/O4ukEuI6LQO7KT f5mg== X-Gm-Message-State: AOJu0YxDE1uudhraiwvnHPReRJRkjSRhRmX4mzIOdRv90MO6PwIq/nG6 /WGlZIeIvMETMYPYaJBpeY3dyOWleQU2ZCpENcZi27Rh1AJ/BGwpJwnJeUjPScG5cKnNAs9I4Ag fYQLjP4bU1A== X-Gm-Gg: ASbGncuHutpTzDvTkmpxHLUFO+diDt78CqFAgorhE/dPw+tLgY8iR9lxI7dadEwMw74 vy7cwwVuw1PCigKiUgVOUtFcThuK0VurG3OCoZL0pOfUL1VE6Es2iguKA4sSC/oxeKH9DfiQIAN 2iBmYh3M9mXxg6f+D0yGva595lVuF8was+uqBfA4XLNnT3BwaYOYa5U9Ds0xuyEveElsx9/99Ih eh7bXxEDpiLzMAngsW7FJ3ECjNf3Oc/ThL8GqdqO+MIJei4TNvYRi6+8k1utkW9CNPFRUX1cqAp TbtGSEzItlSP6EbD/LYk0bpx/5Bdiew50u+oNxbQA45Rex4Lff5Ej71lPTg4Etw4qzPdXLQwGcW /sX8K2A+tjdYliJv1h+2tLwWLrwG7Hztu5h4Rdvf/msQbcMoFeK4oreoPX7u61O1XpIGadljVWT Pu X-Google-Smtp-Source: AGHT+IEB3FOMkFyzOZvXzg/9k/fSIun2i+emph0m2UJA63IjeZqMftjkusfIlPnhD2BIzCU2FiZPGA== X-Received: by 2002:a05:6000:250f:b0:3b7:6429:da6 with SMTP id ffacd0b85a97d-3b768f0690bmr6544029f8f.42.1753374191553; Thu, 24 Jul 2025 09:23:11 -0700 (PDT) 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 , Carlo Nonato , Marco Solieri Subject: [PATCH 1/4] xen/cache-col: Remove bogus cast in domain_llc_coloring_free() Date: Thu, 24 Jul 2025 17:23:03 +0100 Message-Id: <20250724162306.2978741-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250724162306.2978741-1-andrew.cooper3@citrix.com> References: <20250724162306.2978741-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: 1753374213673116600 Using: xfree(__va(__pa(d->llc_colors))); is an extraordinarily expensive way of writing: xfree((void *)d->llc_colours); Combined with the comment indicating that this was intention, the patch sho= uld have been rejected outright. Correct the type of d->llc_colours by removing the bogus const on it, and remove the cast when freeing it. No functional change. Fixes: 6985aa5e0c3c ("xen: extend domctl interface for cache coloring") Signed-off-by: Andrew Cooper Reviewed-by: Stefano Stabellini --- CC: Anthony PERARD CC: Michal Orzel CC: Jan Beulich CC: Julien Grall CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini CC: Carlo Nonato CC: Marco Solieri --- xen/common/llc-coloring.c | 7 ++----- xen/include/xen/sched.h | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c index a572f77a098a..bd1f634f0bb8 100644 --- a/xen/common/llc-coloring.c +++ b/xen/common/llc-coloring.c @@ -309,11 +309,8 @@ int domain_set_llc_colors(struct domain *d, =20 void domain_llc_coloring_free(struct domain *d) { - if ( !llc_coloring_enabled || d->llc_colors =3D=3D default_colors ) - return; - - /* free pointer-to-const using __va(__pa()) */ - xfree(__va(__pa(d->llc_colors))); + if ( d->llc_colors !=3D default_colors ) + xfree(d->llc_colors); } =20 int __init domain_set_llc_colors_from_str(struct domain *d, const char *st= r) diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index fe53d4fab7ba..df23411869e6 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -649,7 +649,7 @@ struct domain =20 #ifdef CONFIG_LLC_COLORING unsigned int num_llc_colors; - const unsigned int *llc_colors; + unsigned int *llc_colors; #endif =20 /* Console settings. */ --=20 2.39.5 From nobody Thu Oct 30 18:25:56 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=1753374214; cv=none; d=zohomail.com; s=zohoarc; b=RN9WIobSLhE5GzYax22x74r1rJC4lRUQ6oxlGBkIKefknGNo4Hb/lo3vR7ophQUOLlc0PxYCltFhB4fxG59RVrrtZbgKySISnX+aeC0xsOXdmsM2pPIWwrXx2XQ4zeB+/fKKl5TUMIklzD2zGeeBrXhBx2lBj9Wqj18cujLMOiI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753374214; 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=0HG+dhXpKLeqmkCTO1timAoyHNCnQT3feUEIMbEV+Nk=; b=b2xsnoLkgnozpwzHSkqDnb0KbJYxFtFqstlyYzswd1o7Ct+HKWnFOgSWbuCSn4xD8fL/5K1LSbCDtIxlxY14dgK6k5DHwYkVZOva7vKrbmuVmeC9+G/55i86VkhE1IoE6QX98IJTfFH1g36TPjptab2UCkx73BQ57r9wKVPcW/8= 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 1753374214984702.91058338806; Thu, 24 Jul 2025 09:23:34 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1056344.1424580 (Exim 4.92) (envelope-from ) id 1ueyiy-0008Am-Pn; Thu, 24 Jul 2025 16:23:16 +0000 Received: by outflank-mailman (output) from mailman id 1056344.1424580; Thu, 24 Jul 2025 16:23:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ueyiy-0008A6-L3; Thu, 24 Jul 2025 16:23:16 +0000 Received: by outflank-mailman (input) for mailman id 1056344; Thu, 24 Jul 2025 16:23:15 +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 1ueyix-0007fj-9x for xen-devel@lists.xenproject.org; Thu, 24 Jul 2025 16:23:15 +0000 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [2a00:1450:4864:20::336]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 7f35e6ec-68aa-11f0-b895-0df219b8e170; Thu, 24 Jul 2025 18:23:13 +0200 (CEST) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4563a57f947so11696865e9.1 for ; Thu, 24 Jul 2025 09:23:13 -0700 (PDT) Received: from localhost.localdomain (host-195-149-20-212.as13285.net. [195.149.20.212]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b76fcc2bc8sm2615965f8f.72.2025.07.24.09.23.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jul 2025 09:23:12 -0700 (PDT) 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: 7f35e6ec-68aa-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1753374193; x=1753978993; 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=0HG+dhXpKLeqmkCTO1timAoyHNCnQT3feUEIMbEV+Nk=; b=U+zZ6Tx8a5i+WwnRwPYWLoFzFB45J1WO/2p5wEbYLjaruPM/9zpMGBsM6Uzp100ua3 49+32eJ1BiIMCF3J+cGfFTUhnsFaAM6Z0uNgqXt+fWCEoV+Kt2fUJ4c2/B8y6a/bATN1 i6XeguhzuVQfaLasgn5t73VbKXp4QXnBD3v8k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753374193; x=1753978993; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0HG+dhXpKLeqmkCTO1timAoyHNCnQT3feUEIMbEV+Nk=; b=ZnZxP6lTbBpVaAJSrUgzVYvVZ0uvNrrKg3FQ9Lk6MC1tuuxBW6cTmxm5bEX9H4c6cA hx1Wy6xrFpl8jgdFi9CUtPHcIo1CXIhHV7SCqzL7+Mmq8gAgC5zxSXD1cbxD5pLkisBx IwgY+xNgmEwwpGdDbqo3JvyAwDtLN+SZi5VmHFk/IDnkRJNZMLM7+2ygzYX5NwCnvdd4 YgvX5Ho4y92Yw1hOQwnPtPlyIaFplAtaIiT7q136A75bmJIGoWkDec7uoLWOQNcfXyOd Py3xLhG8kZiPdupqanAy0xsUgdV9WsCQBe9L2SOvUgpkGIXi1hA0oX9AH8jK6hRa/xL9 CwSQ== X-Gm-Message-State: AOJu0YxdFFdcYyUjXdrE4qPb3NiGV1D67tWQMptkgozjVSJhTfYuz9te Pr1uKuwggMeI3kvukN4OKXtpbQQ6wg4CYlmsfDmrvRQ0ejbSHNBWKk4cladHGn8rWh7Kd4eQYV7 LKoecx6PVKQ== X-Gm-Gg: ASbGncvUoJWKaE0hHJy78AbklYAHGWyNv9mg/8vp8Zd+vGWiJb0a6izzXTgozYVbE7e D6ey60/SQD9M/o30Bhbbf7pDoYVa4aotElyxdnnf2yxk2dmg0z/hJ2FuKJATv4xnUkI3156PlF1 krR5Owo0DhagKBFIaY5ZK5icj6KZuPvthb4nJv4nG9JplYE1C97/caR8eRSWOcWepaZ64J0BzkY x7KQVevwXW7sGXoL1tSwPDxrydzNBkhvgqsqZpaTyL+swlu4Sdsw++vT4hP71SOtriYV7A6WYKM L/vZrGT/xsGojdUHYkqQtrweNj/Y3ffYUIFoHwCnLhHuBatUF7qwgEaPduy5eMFxEcharsjlLc7 O6im9gkb7dMfsKc2F2jBFkaYMaIU2vT2rE0jRMT/na+v3+i+3pCM/M5Lvkn6hmPj8NCvgShhTaF S2 X-Google-Smtp-Source: AGHT+IFkH0dPDvGPZYZsXrRAd8OOgZNi/vLLlDp+pTgDNXq5BKNMu4GQ5rBymf5bCmSvUp2qMdbjLA== X-Received: by 2002:a5d:6d50:0:b0:3a3:7117:1bba with SMTP id ffacd0b85a97d-3b771374f67mr1785678f8f.24.1753374192767; Thu, 24 Jul 2025 09:23:12 -0700 (PDT) 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 , Carlo Nonato , Marco Solieri Subject: [PATCH 2/4] xen/cache-col: Fix freeing of colouring information Date: Thu, 24 Jul 2025 17:23:04 +0100 Message-Id: <20250724162306.2978741-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250724162306.2978741-1-andrew.cooper3@citrix.com> References: <20250724162306.2978741-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: 1753374215728116600 domain_destroy() is the wrong position to be freeing colouring information. The comment in context identifies how domain_destroy() can be called multip= le times on the same domain, leading to a double free of d->llc_colors as it's the wrong side of the atomic_cmpxchg() to be made safe. Furthermore, by freeing d->llc_colors but leaving d->num_llc_colors nonzero, alloc_color_heap_page() can in principle use after free. Make domain_llc_coloring_free() idempotent, zeroing d->num_llc_colors and NULL-ing d->llc_colors after freeing, and call it from domain_teardown(). Fixes: 6985aa5e0c3c ("xen: extend domctl interface for cache coloring") 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 CC: Carlo Nonato CC: Marco Solieri Cache colouring is experimental, which is why no XSA is being allocated for these bugs. --- xen/common/domain.c | 5 +++-- xen/common/llc-coloring.c | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/xen/common/domain.c b/xen/common/domain.c index 303c338ef293..4f79ba39878c 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -626,6 +626,9 @@ static int domain_teardown(struct domain *d) case PROG_none: BUILD_BUG_ON(PROG_none !=3D 0); =20 + /* Trivial teardown, not long-running enough to need a preemption = check. */ + domain_llc_coloring_free(d); + PROGRESS(gnttab_mappings): rc =3D gnttab_release_mappings(d); if ( rc ) @@ -1447,8 +1450,6 @@ void domain_destroy(struct domain *d) { BUG_ON(!d->is_dying); =20 - domain_llc_coloring_free(d); - /* May be already destroyed, or get_domain() can race us. */ if ( atomic_cmpxchg(&d->refcnt, 0, DOMAIN_DESTROYED) !=3D 0 ) return; diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c index bd1f634f0bb8..ea3e0ca07017 100644 --- a/xen/common/llc-coloring.c +++ b/xen/common/llc-coloring.c @@ -309,8 +309,10 @@ int domain_set_llc_colors(struct domain *d, =20 void domain_llc_coloring_free(struct domain *d) { + d->num_llc_colors =3D 0; + if ( d->llc_colors !=3D default_colors ) - xfree(d->llc_colors); + XFREE(d->llc_colors); } =20 int __init domain_set_llc_colors_from_str(struct domain *d, const char *st= r) --=20 2.39.5 From nobody Thu Oct 30 18:25:56 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=1753374213; cv=none; d=zohomail.com; s=zohoarc; b=XT1NzuS4K914PsLtxGCYpaq8HUkHT1g+fUZlKaoWdz/RwjAAtBEryj67flHBWEOVbAj1p72hpxrxR2n19TUmFIo1L0YA3SzQkamGVZfT23Kn2XhVYaT6gp6Vis6EPeSqPjgvV+zNcl+myRqbbd5yuBigCPCFKgLM+V20+shN2Cw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753374213; 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=WUNEVSr3ncvwUF6ggoaVWELN0XIMn2xF+8CSNt91kWI=; b=gyHQ3HZ6gn/qa9f8x/PTgF5r3fyv+sWMg2v7vhV467Ip43+1qm9Y2lEIhCUpp762CseEWh6AWrD1gbfydnfVNLEHslKV+fXvO5yfzXH4kuLDwYEWM6X2f63HnotZfYSDklK1IXggsjkeFdykmsqmm4zZ37/XAeqm37Q7sEXQYrc= 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 1753374213349268.8811569252656; Thu, 24 Jul 2025 09:23:33 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1056343.1424575 (Exim 4.92) (envelope-from ) id 1ueyiy-00087d-HM; Thu, 24 Jul 2025 16:23:16 +0000 Received: by outflank-mailman (output) from mailman id 1056343.1424575; Thu, 24 Jul 2025 16:23:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ueyiy-00087V-Dy; Thu, 24 Jul 2025 16:23:16 +0000 Received: by outflank-mailman (input) for mailman id 1056343; Thu, 24 Jul 2025 16:23:15 +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 1ueyix-0007fi-2E for xen-devel@lists.xenproject.org; Thu, 24 Jul 2025 16:23:15 +0000 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [2a00:1450:4864:20::334]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 7fc9c920-68aa-11f0-a31e-13f23c93f187; Thu, 24 Jul 2025 18:23:14 +0200 (CEST) Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-45629703011so8890285e9.0 for ; Thu, 24 Jul 2025 09:23:14 -0700 (PDT) Received: from localhost.localdomain (host-195-149-20-212.as13285.net. [195.149.20.212]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b76fcc2bc8sm2615965f8f.72.2025.07.24.09.23.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jul 2025 09:23:13 -0700 (PDT) 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: 7fc9c920-68aa-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1753374194; x=1753978994; 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=WUNEVSr3ncvwUF6ggoaVWELN0XIMn2xF+8CSNt91kWI=; b=UVDDL3qeKba8E5Tc27rUTFrs9550jE74zvFk7quAXIE7HGgsUaCZL0Z2/PGmHpPRgA Ps5UPBv/p/9wgNf2U7j/g1Hf9d9/Ycku0gzWPGRJzIdCCmmwyrQxnMNkCt2grBy15kvv f+2yCip3xM+mztYy4ia+FGIcWGfEewtdrIqTY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753374194; x=1753978994; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WUNEVSr3ncvwUF6ggoaVWELN0XIMn2xF+8CSNt91kWI=; b=Wg1XFxl2JV2+Xl37EzUn0wlQy0NEJefR3uq2Xp/WUb/4vGuyq8D+RJkvR07SqJPEOG t0RR7CpVVyMc5mPYgYxBTQYDlauPx6lLvTf2Bt9/a0/O0GzVdGLKY6lu32PI+M7rQdNd li2zSymS9koq6NSfLpGU7tNJYBSvlDSV70yD4YOH1jYlL2ivycGq55SrxeUAsIeaucel 0SGBYFKxo5DkF2SlTBmHeK03zMJKwxWvWkqz89BoM6O8D5rEFx2det1P1r1CVMLc3vSD OAUI47c5QDqyKXqbYRK2n2Rz1/PGE1p/SwaBEyigynyqUnlmhsZF5HfY8Ii1Gm5rPFzO ue5g== X-Gm-Message-State: AOJu0YyNMLF4COl+48EjyIZteVhPb9sguXSR8yHGTCjYX4LUC0wJsEPc 8rXqEW3JWXmFb0gkW5iPiDDN3QS61/pvjxZWYzf2S/n/p2/Me/JPupVYTGfpQ8uBxlqqY22sQu0 fGrBewE/cBw== X-Gm-Gg: ASbGncsLB+AjOEdngxJF3EhN0tPrCg9Mo6cH7EE58+RpU2pXH5bbn6yH+5kspL3JpFY VlrJ33WG03iS+IWBOq/A1uzk0Gg6NPKI5LgrZ2joxeatA5XSCnaXc7tYrjWbAWGyJAMTrgiiCOF 30uAMEt0C9xvPZ9BCa/FyksQqmppduAH7DJOqSeMErUP1CKAJvON4jDmeuCdIyPBN/qir3Jb7Uq rSIbNzwFy9OuTXOA39wg/7qfx+qUvcJi7r02Gf5BxpydyJoCdgeEm/uvtrGDB2Z0HGq5EQ+VDwx GKCJ3tEIVQbpzXZlvMovsauZ0LnxARU3iZonZxUTxC0ZIiI1z0fyifINUv4zreBHUMdIKg4TVsc WZIuqA9dXfm5Zf9x4favcE6FGXv6GDyAh3hFwSMv0LKF1+ezUzxHypqsoiwFIWxJF+E9n7t9mvj kK X-Google-Smtp-Source: AGHT+IETg+5zCDMSNlJU5qdzPhpVUm7Wxk3S3oTLmiE/cjvepU7na87Pjkr8kOByV4nXRahlrEt+Lw== X-Received: by 2002:a05:600c:198b:b0:453:5c30:a1fd with SMTP id 5b1f17b1804b1-45868c9d23amr73249835e9.8.1753374193796; Thu, 24 Jul 2025 09:23:13 -0700 (PDT) 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 , Carlo Nonato , Marco Solieri Subject: [PATCH 3/4] xen/cache-col: Fix initialisation of domain colouring information Date: Thu, 24 Jul 2025 17:23:05 +0100 Message-Id: <20250724162306.2978741-4-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250724162306.2978741-1-andrew.cooper3@citrix.com> References: <20250724162306.2978741-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: 1753374213738116600 Right now, domains start with no colouring information and depend on a XEN_DOMCTL_set_llc_colors(nr=3D0) hypercall in order to get default colours. This in turn forces the toolstack to make a hypercall for all VMs even those without colouring configured, and to ignore errors if Xen doesn't have colouring active. Introduce domain_llc_coloring_init(), replacing domain_set_default_colors(), and call it during the trivial initialisation in domain_create(). Leave two comments explaining the positioning. The -EEXISTs condition in domain_set_llc_colors() needs adjusting as a consequence, but that's easy enough to keep working as before. Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support") 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 CC: Carlo Nonato CC: Marco Solieri --- xen/common/domain.c | 6 ++++++ xen/common/llc-coloring.c | 33 ++++++++++++++------------------- xen/include/xen/llc-coloring.h | 2 ++ 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/xen/common/domain.c b/xen/common/domain.c index 4f79ba39878c..28c2cc78cd88 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -878,6 +878,12 @@ struct domain *domain_create(domid_t domid, rwlock_init(&d->pci_lock); #endif =20 + /* + * Doesn't allocate memory itself, but does set up data relevant for + * memory allocations. + */ + domain_llc_coloring_init(d); + /* All error paths can depend on the above setup. */ =20 /* diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c index ea3e0ca07017..77a54beed1bf 100644 --- a/xen/common/llc-coloring.c +++ b/xen/common/llc-coloring.c @@ -230,24 +230,12 @@ void domain_dump_llc_colors(const struct domain *d) print_colors(d->llc_colors, d->num_llc_colors); } =20 -static void domain_set_default_colors(struct domain *d) -{ - printk(XENLOG_WARNING - "LLC color config not found for %pd, using all colors\n", d); - - d->llc_colors =3D default_colors; - d->num_llc_colors =3D max_nr_colors; -} - int __init dom0_set_llc_colors(struct domain *d) { typeof(*dom0_colors) *colors; =20 if ( !dom0_num_colors ) - { - domain_set_default_colors(d); return 0; - } =20 if ( (dom0_num_colors > max_nr_colors) || !check_colors(dom0_colors, dom0_num_colors) ) @@ -272,14 +260,11 @@ int domain_set_llc_colors(struct domain *d, { unsigned int *colors; =20 - if ( d->num_llc_colors ) + if ( d->llc_colors !=3D default_colors ) return -EEXIST; =20 if ( !config->num_llc_colors ) - { - domain_set_default_colors(d); return 0; - } =20 if ( config->num_llc_colors > max_nr_colors ) return -EINVAL; @@ -307,6 +292,19 @@ int domain_set_llc_colors(struct domain *d, return 0; } =20 +void domain_llc_coloring_init(struct domain *d) +{ + if ( !llc_coloring_enabled ) + return; + + /* + * Any change to this logic needs to consider the position of our call= in + * domain_create(). + */ + d->llc_colors =3D default_colors; + d->num_llc_colors =3D max_nr_colors; +} + void domain_llc_coloring_free(struct domain *d) { d->num_llc_colors =3D 0; @@ -321,10 +319,7 @@ int __init domain_set_llc_colors_from_str(struct domai= n *d, const char *str) unsigned int *colors, num_colors; =20 if ( !str ) - { - domain_set_default_colors(d); return 0; - } =20 colors =3D xmalloc_array(unsigned int, max_nr_colors); if ( !colors ) diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h index 45f250f9f39d..94dd22e949e7 100644 --- a/xen/include/xen/llc-coloring.h +++ b/xen/include/xen/llc-coloring.h @@ -21,6 +21,7 @@ extern bool llc_coloring_enabled; void llc_coloring_init(void); void dump_llc_coloring_info(void); void domain_dump_llc_colors(const struct domain *d); +void domain_llc_coloring_init(struct domain *d); void domain_llc_coloring_free(struct domain *d); #else #define llc_coloring_enabled false @@ -28,6 +29,7 @@ void domain_llc_coloring_free(struct domain *d); static inline void llc_coloring_init(void) {} static inline void dump_llc_coloring_info(void) {} static inline void domain_dump_llc_colors(const struct domain *d) {} +static inline void domain_llc_coloring_init(struct domain *d) {} static inline void domain_llc_coloring_free(struct domain *d) {} #endif =20 --=20 2.39.5 From nobody Thu Oct 30 18:25:56 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=1753374208; cv=none; d=zohomail.com; s=zohoarc; b=LWtBMoxdC3uhvDnlEgtdbkO2ceF7fOnlOLOwc1pdMda+a9dz1FlRaVMH/znCnnhf6vsvrYFGVu+YZg8gxJBt5Kg+yczGEUY769MP/9Zf7D33rTDTkRZ8nlDTfo1E7/ZfVvNwA8nIhEgyvDyLbMl5iyTbYO+5sdwwH7tzYSXpuyc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753374208; 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=dlmGeXFYLb39H+GEEKv36aG5ffX0auy3m86JuL+WpVY=; b=LhdZIzH97UTiRjmWP9vFlUiniLUGJiKET/9cP7l4l1rjXvRABOH5rYpu/MZ/ix6C4UEuswYzKBpeTBhPDVn4ES+F3oIftb4VfeQ+vSuw+8ydck25agcfXcu0MU7kyrcX+zrNE4kmECGjfgG4lQzXxnVXvn+yJDHUNsFLrVc0S2I= 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 1753374208736743.62027894594; Thu, 24 Jul 2025 09:23:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1056345.1424595 (Exim 4.92) (envelope-from ) id 1ueyj0-00009E-70; Thu, 24 Jul 2025 16:23:18 +0000 Received: by outflank-mailman (output) from mailman id 1056345.1424595; Thu, 24 Jul 2025 16:23:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ueyj0-00008i-2E; Thu, 24 Jul 2025 16:23:18 +0000 Received: by outflank-mailman (input) for mailman id 1056345; Thu, 24 Jul 2025 16:23:16 +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 1ueyiy-0007fi-95 for xen-devel@lists.xenproject.org; Thu, 24 Jul 2025 16:23:16 +0000 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [2a00:1450:4864:20::42e]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 80793573-68aa-11f0-a31e-13f23c93f187; Thu, 24 Jul 2025 18:23:15 +0200 (CEST) Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3a522224582so602247f8f.3 for ; Thu, 24 Jul 2025 09:23:15 -0700 (PDT) Received: from localhost.localdomain (host-195-149-20-212.as13285.net. [195.149.20.212]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b76fcc2bc8sm2615965f8f.72.2025.07.24.09.23.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jul 2025 09:23:14 -0700 (PDT) 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: 80793573-68aa-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1753374195; x=1753978995; 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=dlmGeXFYLb39H+GEEKv36aG5ffX0auy3m86JuL+WpVY=; b=LprrL5Bp80PwkABcHSE9Pmpl4qiqkOiFtxK0/ybOlWtyhlvVBtqNml4M6Ou+xqVGVn RwFwZtC2rZnyYYTFyBvusWbrkMvATmBOA8IoWBdwoQEm0FE4DlMfSb8TWxINWM+VV/Fv 3LAbyWty4mj3zydLoGjM7n0G5fZleRfb9/bXg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753374195; x=1753978995; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dlmGeXFYLb39H+GEEKv36aG5ffX0auy3m86JuL+WpVY=; b=tliONApLbBOCvNkuwycUTSaF6kwN/9Wu0JXa5t/yABJxngLsPAhRr8SxR6jbd0+4qb cE9wSxkO00ul/9S+6yXqM5/EEPSLHeq7bDRJAmzieILZPXMCavb6/XhTvHsLnB/WmfKT GSV64dWaRkGOZ3l8iGf9o00TlCflko9ieAIDzTN/TaszMyhjROutT8G3AbwZPLYmnyPP iUHXATHm66nP/MkGk+dd2hcqeH46U0E7lzGdJrhrxtAQxTiclPnfaWlVp6L2oV86lD91 tmKPc7HuYPHFV+sG4Oy5ujI5nuafDhJN3ELsdiy6KD2M3Y1/u9824aP4MNgL29IstZcx sYfg== X-Gm-Message-State: AOJu0YyIaGXN0OPwxcfZXfimyoHqjmFE1J1KvexJVAzzumHeSAi6G8DU ecEyuJkkOd93X4a+oQVhw2m3pOaFAtqbidP/O4uNVdtXv37Q7DJNnZfnNxo56iw0tDyuicpKeUK k6wC1cV9nXg== X-Gm-Gg: ASbGncvfP8k0RSl0P1oyP2M1Ztw0UUBh+fqz5o3ZHqY1NJajAmoD7uXjt7xNmSvxhxz YNMx9vkTUveheaDVm7hmbL/a6yAGRMm5YmJgJuXNmakp4MXE9P07luyQquOdBJKVFQvxMGzTPBt PdFmwY7CaHTqye7JIYVKE/bjkM/ADo+KSqxhNSPbrEKpf4w/rTVeXrJWOXLXIbqef+0z1lmvHI8 6PJ8qiMnO11eYCojLLcX2kIAokYBM06H42O0CnOZbk8rS6QHwdVVEUidfIRNKAtReP8ml3jXLDX BV7a0bm+FDPHDav8QXJ7J6TmihxELm67HvLKiId9BuyIo+/SAgAlCVR3XYiYH/Eu+raJpzqFBdZ Cbjo3OUcYWDvYUWPAqJn6dw6QCXX+aGKAxQxSzAoD6iKCzYhSyf/Xuyg5vHIt7ZGPQU+2rH2jhm 8c X-Google-Smtp-Source: AGHT+IGlciWHsJdS5c5LMXfknK7zCMqqgaqPs/pTnB1/yRAM/VEU09Qs12PGjwmaiiYsFkCGj3qHAA== X-Received: by 2002:a05:6000:2209:b0:3b5:e6bf:5e0c with SMTP id ffacd0b85a97d-3b768ef952bmr6253895f8f.31.1753374194954; Thu, 24 Jul 2025 09:23:14 -0700 (PDT) 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 , Carlo Nonato , Marco Solieri Subject: [PATCH 4/4] tools/libxl: Remove unconditional XEN_DOMCTL_set_llc_colors hypercall Date: Thu, 24 Jul 2025 17:23:06 +0100 Message-Id: <20250724162306.2978741-5-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250724162306.2978741-1-andrew.cooper3@citrix.com> References: <20250724162306.2978741-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: 1753374209954116600 Hypercalls are not free; cache colouring is an experimental feature, and ignoring an -EOPNOTSUPP is bad form. Now that Xen has been fixed to initialise colouring information correctly f= or domains, xc_domain_set_llc_colors() only needs calling for domains with explicit configuration. Rearrange the logic to avoid the hypercall in the general case, leaving a comment explaining why it is performed so early. Fixes: 748bd725fbec ("tools: add support for cache coloring configuration") Signed-off-by: Andrew Cooper Reviewed-by: Stefano Stabellini --- CC: Anthony PERARD CC: Michal Orzel CC: Jan Beulich CC: Julien Grall CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini CC: Carlo Nonato CC: Marco Solieri --- tools/libs/light/libxl_create.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_creat= e.c index 4301f17f901a..4042ae1a8957 100644 --- a/tools/libs/light/libxl_create.c +++ b/tools/libs/light/libxl_create.c @@ -699,19 +699,21 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_co= nfig *d_config, /* A new domain now exists */ *domid =3D local_domid; =20 - ret =3D xc_domain_set_llc_colors(ctx->xch, local_domid, - b_info->llc_colors, - b_info->num_llc_colors); - if (ret < 0) { - if (errno =3D=3D EOPNOTSUPP) { - if (b_info->num_llc_colors > 0) { + /* + * If Cache Coloring is wanted for the guest, it must be + * communicated to Xen prior to allocating guest memory. + */ + if (b_info->num_llc_colors) { + ret =3D xc_domain_set_llc_colors(ctx->xch, local_domid, + b_info->llc_colors, + b_info->num_llc_colors); + if (ret < 0) { + if (errno =3D=3D EOPNOTSUPP) { LOGED(ERROR, local_domid, - "LLC coloring not enabled in the hypervisor"); - rc =3D ERROR_FAIL; - goto out; + "LLC coloring not enabled in the hypervisor"= ); + } else { + LOGED(ERROR, local_domid, "LLC colors allocation f= ailed"); } - } else { - LOGED(ERROR, local_domid, "LLC colors allocation faile= d"); rc =3D ERROR_FAIL; goto out; } --=20 2.39.5