From patchwork Wed Jan 31 10:13:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Liu X-Patchwork-Id: 13539034 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B023C69D31 for ; Wed, 31 Jan 2024 10:01:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706695262; cv=none; b=jPhItLzH2/t8k/U7TFK22ZaVK7vvcIhUsupGjqmxSxDKvIHYp/w8zumCC2NcWKaTeVoriSOGiuQ/OOgmvENOjXDyavjDZHeuJ336eFegLG/TfFv+AWVwKVQ4sSjKkFQtnE8W9uPUWgB1rtd5GwAaOXSDWglADesinwWu8SG2wjo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706695262; c=relaxed/simple; bh=P75hIY8ln1D9u2W+mLieQMGqsvAMwEhg8IjnXVe3yso=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YWDwM8t8f8La6E91nE1g/SpSU4kglUzIdpITNyRDO06ldTbmMNx0pSyxaUXjvMle+AxdXapsNw2IjuN91vZx5DWfuIuLWyXswAXrSHcyLqMsnAO5Vk7i+QVWbA1NScg95C+2WqQz8vMxrgdMwlYfyd2H5DnyDr0PaNNIPjPB5RI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=LkiBJu8V; arc=none smtp.client-ip=192.198.163.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="LkiBJu8V" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706695260; x=1738231260; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=P75hIY8ln1D9u2W+mLieQMGqsvAMwEhg8IjnXVe3yso=; b=LkiBJu8VQnLcgrOY4szhw0MKqjSkGypHcMyk3gHE0EZG1s1tLhJXkYHW Dw28H2UUGQjmSn9ff3mzD4CCpql3k+lHUOZHC+GcZ+mcnUPnKrC9epeUL mUeKCuKkT/aLtXDcIDScWtrnZpyUhThVqi/EjYTy6qIUxWrsP5bA+JguV +QgKWnc+IvDvCqu+W+DvLbWIyAk/jsZY9jGEOStE21t/A91ExBT3ZkgHj mKVbHfFN5T5kTqGUK3vL0zCxdv5V3tmm9ZEgmaIMIxlLMqX/nReYxHEjH V5eKz2u7VgeKyDQ+kb6IQpfXg+w/pQXPQzTtsWrsK1ghfg/0O6+lW9xHt w==; X-IronPort-AV: E=McAfee;i="6600,9927,10969"; a="25032558" X-IronPort-AV: E=Sophos;i="6.05,231,1701158400"; d="scan'208";a="25032558" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2024 02:01:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,231,1701158400"; d="scan'208";a="4035962" Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.36]) by fmviesa003.fm.intel.com with ESMTP; 31 Jan 2024 02:00:55 -0800 From: Zhao Liu To: Eduardo Habkost , Marcel Apfelbaum , =?utf-8?q?Philippe_Mathieu-D?= =?utf-8?q?aud=C3=A9?= , Yanan Wang , "Michael S . Tsirkin" , Paolo Bonzini , Richard Henderson , Eric Blake , Markus Armbruster , Marcelo Tosatti Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, Babu Moger , Xiaoyao Li , Zhenyu Wang , Zhuocheng Ding , Yongwei Ma , Zhao Liu Subject: [PATCH v8 04/21] hw/core: Support module-id in numa configuration Date: Wed, 31 Jan 2024 18:13:33 +0800 Message-Id: <20240131101350.109512-5-zhao1.liu@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240131101350.109512-1-zhao1.liu@linux.intel.com> References: <20240131101350.109512-1-zhao1.liu@linux.intel.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Zhao Liu Module is a level above the core, thereby supporting numa configuration on the module level can bring user more numa flexibility. This is the natural further support for module level. Add module level support in numa configuration. Tested-by: Yongwei Ma Signed-off-by: Zhao Liu --- Changes since v7: * New commit to support module level. --- hw/core/machine.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hw/core/machine.c b/hw/core/machine.c index 030b7e250ac5..b3199c710194 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -791,6 +791,11 @@ void machine_set_cpu_numa_node(MachineState *machine, return; } + if (props->has_module_id && !slot->props.has_module_id) { + error_setg(errp, "module-id is not supported"); + return; + } + if (props->has_cluster_id && !slot->props.has_cluster_id) { error_setg(errp, "cluster-id is not supported"); return; @@ -815,6 +820,11 @@ void machine_set_cpu_numa_node(MachineState *machine, continue; } + if (props->has_module_id && + props->module_id != slot->props.module_id) { + continue; + } + if (props->has_cluster_id && props->cluster_id != slot->props.cluster_id) { continue; @@ -1212,6 +1222,12 @@ static char *cpu_slot_to_string(const CPUArchId *cpu) } g_string_append_printf(s, "cluster-id: %"PRId64, cpu->props.cluster_id); } + if (cpu->props.has_module_id) { + if (s->len) { + g_string_append_printf(s, ", "); + } + g_string_append_printf(s, "module-id: %"PRId64, cpu->props.module_id); + } if (cpu->props.has_core_id) { if (s->len) { g_string_append_printf(s, ", ");