From nobody Thu May 16 14:49:15 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=1658866646; cv=none; d=zohomail.com; s=zohoarc; b=C/GxW4HQ9QnMGf07BhiGPLGQPg5R4zONGJBcOtFZ0HamVBtOiFlrKfahYJscbMRg/nriSdG3lKV/VJjzCJoe42XKX/HttxbKS3kL4ulx/QViRb8IWQeUttYrJo9Kj8T3ytCWuF1IKDblIEAWLnPcaVmyC+2kAD61m3chCCJKgs8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658866646; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wm9tRtc/l3bnnSUQgHT6lQeiNh5OiDryPaWVqdA+A3w=; b=nHlecSd7nhizLcjB6QTRtZ1mK7bm/h4v7tudbV64k9CRpt7hrZIMnOuvthEYmwLi+51oENc5EWMDF1i08FzD29SX6s4DxdHqb1/qAks3w43sYapLNb6g3nn+62uwD4IRdPyjkI2ArcXRR/gBlg4V2078QkzI2mOcKCLtkJvN1Cc= 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 1658866646599253.10773365627358; Tue, 26 Jul 2022 13:17:26 -0700 (PDT) Received: from localhost ([::1]:56684 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQzc-0007P8-Hr for importer@patchew.org; Tue, 26 Jul 2022 16:17:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52238) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ4-00069f-Pt for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:41 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:35136) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQPx-00050D-Gb for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:35 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-625-14zKmBBjOZqERixc6isqjA-1; Tue, 26 Jul 2022 15:40:31 -0400 Received: by mail-wm1-f69.google.com with SMTP id v18-20020a05600c215200b003a2fea66b7cso5689287wml.4 for ; Tue, 26 Jul 2022 12:40:31 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id ib13-20020a05600ca14d00b003a31ba538c2sm18195558wmb.40.2022.07.26.12.40.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864432; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=wm9tRtc/l3bnnSUQgHT6lQeiNh5OiDryPaWVqdA+A3w=; b=TPDecPRaHTuOPTox5pfnBXgX2DXH+rHMNgnthLAf1jCzqJGsKWS3O6XScuDIfMo2l4guCj zBgbANS56Np3XmhHH823n4wnUlNbsM8JpMMvTEDp3I6/afhNubdp2CBSV1dQvJ4CBTB66O lFFaCv40hT8a+ilrx6q7ldd1EF/gIwk= X-MC-Unique: 14zKmBBjOZqERixc6isqjA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=wm9tRtc/l3bnnSUQgHT6lQeiNh5OiDryPaWVqdA+A3w=; b=ZlgALvRwRF8P0GZ6EjVvAM2B1qjz2TSpQfPRES485drMM17hAChxpH9h6MXO33/+C+ XfRFjdop87B7fVBmjWFco9WPeJXq+97Bhv+gN6ERLfc1ijMfjos3XYgkX9GoA8xIdH5T +PDGvg6/+GTw1ENrrsq/CkY5jmnabDs6X+jRWkvfdMQ0RC0KS7xTRd2hpIKaE1/Z8ByP 9J1hp0uHyMI0h4jthbjnFpWR0KiTLrbxPj8iHYKfOnpVOv9HBkjEXkHPFOTCMHd08kmK 6ff/toNe3nnJ2cu582Ut1JRRsCu92LA42olEz2URs/BKnfZ3gVn/gKAZZ+1P0kM+Te5J ZHVw== X-Gm-Message-State: AJIora84Bmj0OdT5mDKqgk6FuGVAOw+M3uWfV35AmOfL3LhDhQKYxxWN nFuKOk9j/S86fhrQrWuM4GwFdzjvjym39Gr30H5rtu7sQL6/I4SCgJkFnUYKpB/5OMb/un6zQ9a YiksLsUJa0kK7X8zF79eMq9rDL8JUKdUR4EFcXmdTGXimorY67Z1cSx+pAME/ X-Received: by 2002:adf:fbc6:0:b0:21e:3960:45b3 with SMTP id d6-20020adffbc6000000b0021e396045b3mr11425004wrs.92.1658864429991; Tue, 26 Jul 2022 12:40:29 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uUZwjy2OXAeRJV+tcVpMsOP8FCq81DxQ4+TEXBBmqt56oXP8xN6VtlRrrs5BoGbDH/FaqfMA== X-Received: by 2002:adf:fbc6:0:b0:21e:3960:45b3 with SMTP id d6-20020adffbc6000000b0021e396045b3mr11424979wrs.92.1658864429376; Tue, 26 Jul 2022 12:40:29 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:27 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Robert Hoo , Jingqi Liu , Igor Mammedov , Ani Sinha , David Hildenbrand , Xiao Guangrong Subject: [PULL 01/16] acpi/nvdimm: Define trace events for NVDIMM and substitute nvdimm_debug() Message-ID: <20220726193858.177462-2-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658866648040100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Robert Hoo Signed-off-by: Robert Hoo Reviewed-by: Jingqi Liu Message-Id: <20220704085852.330005-1-robert.hu@linux.intel.com> Reviewed-by: Igor Mammedov Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/mem/nvdimm.h | 8 -------- hw/acpi/nvdimm.c | 35 ++++++++++++++++------------------- hw/acpi/trace-events | 13 +++++++++++++ 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/include/hw/mem/nvdimm.h b/include/hw/mem/nvdimm.h index cf8f59be44..acf887c83d 100644 --- a/include/hw/mem/nvdimm.h +++ b/include/hw/mem/nvdimm.h @@ -29,14 +29,6 @@ #include "hw/acpi/aml-build.h" #include "qom/object.h" =20 -#define NVDIMM_DEBUG 0 -#define nvdimm_debug(fmt, ...) \ - do { \ - if (NVDIMM_DEBUG) { \ - fprintf(stderr, "nvdimm: " fmt, ## __VA_ARGS__); \ - } \ - } while (0) - /* * The minimum label data size is required by NVDIMM Namespace * specification, see the chapter 2 Namespaces: diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c index 5f85b16327..31e46df0bd 100644 --- a/hw/acpi/nvdimm.c +++ b/hw/acpi/nvdimm.c @@ -35,6 +35,7 @@ #include "hw/nvram/fw_cfg.h" #include "hw/mem/nvdimm.h" #include "qemu/nvdimm-utils.h" +#include "trace.h" =20 /* * define Byte Addressable Persistent Memory (PM) Region according to @@ -550,8 +551,8 @@ static void nvdimm_dsm_func_read_fit(NVDIMMState *state= , NvdimmDsmIn *in, =20 fit =3D fit_buf->fit; =20 - nvdimm_debug("Read FIT: offset 0x%x FIT size 0x%x Dirty %s.\n", - read_fit->offset, fit->len, fit_buf->dirty ? "Yes" : "No"= ); + trace_acpi_nvdimm_read_fit(read_fit->offset, fit->len, + fit_buf->dirty ? "Yes" : "No"); =20 if (read_fit->offset > fit->len) { func_ret_status =3D NVDIMM_DSM_RET_STATUS_INVALID; @@ -658,7 +659,7 @@ static void nvdimm_dsm_label_size(NVDIMMDevice *nvdimm,= hwaddr dsm_mem_addr) label_size =3D nvdimm->label_size; mxfer =3D nvdimm_get_max_xfer_label_size(); =20 - nvdimm_debug("label_size 0x%x, max_xfer 0x%x.\n", label_size, mxfer); + trace_acpi_nvdimm_label_info(label_size, mxfer); =20 label_size_out.func_ret_status =3D cpu_to_le32(NVDIMM_DSM_RET_STATUS_S= UCCESS); label_size_out.label_size =3D cpu_to_le32(label_size); @@ -674,20 +675,18 @@ static uint32_t nvdimm_rw_label_data_check(NVDIMMDevi= ce *nvdimm, uint32_t ret =3D NVDIMM_DSM_RET_STATUS_INVALID; =20 if (offset + length < offset) { - nvdimm_debug("offset 0x%x + length 0x%x is overflow.\n", offset, - length); + trace_acpi_nvdimm_label_overflow(offset, length); return ret; } =20 if (nvdimm->label_size < offset + length) { - nvdimm_debug("position 0x%x is beyond label data (len =3D %" PRIx6= 4 ").\n", - offset + length, nvdimm->label_size); + trace_acpi_nvdimm_label_oversize(offset + length, nvdimm->label_si= ze); return ret; } =20 if (length > nvdimm_get_max_xfer_label_size()) { - nvdimm_debug("length (0x%x) is larger than max_xfer (0x%x).\n", - length, nvdimm_get_max_xfer_label_size()); + trace_acpi_nvdimm_label_xfer_exceed(length, + nvdimm_get_max_xfer_label_size= ()); return ret; } =20 @@ -710,8 +709,8 @@ static void nvdimm_dsm_get_label_data(NVDIMMDevice *nvd= imm, NvdimmDsmIn *in, get_label_data->offset =3D le32_to_cpu(get_label_data->offset); get_label_data->length =3D le32_to_cpu(get_label_data->length); =20 - nvdimm_debug("Read Label Data: offset 0x%x length 0x%x.\n", - get_label_data->offset, get_label_data->length); + trace_acpi_nvdimm_read_label(get_label_data->offset, + get_label_data->length); =20 status =3D nvdimm_rw_label_data_check(nvdimm, get_label_data->offset, get_label_data->length); @@ -749,8 +748,8 @@ static void nvdimm_dsm_set_label_data(NVDIMMDevice *nvd= imm, NvdimmDsmIn *in, set_label_data->offset =3D le32_to_cpu(set_label_data->offset); set_label_data->length =3D le32_to_cpu(set_label_data->length); =20 - nvdimm_debug("Write Label Data: offset 0x%x length 0x%x.\n", - set_label_data->offset, set_label_data->length); + trace_acpi_nvdimm_write_label(set_label_data->offset, + set_label_data->length); =20 status =3D nvdimm_rw_label_data_check(nvdimm, set_label_data->offset, set_label_data->length); @@ -821,7 +820,7 @@ static void nvdimm_dsm_device(NvdimmDsmIn *in, hwaddr d= sm_mem_addr) static uint64_t nvdimm_dsm_read(void *opaque, hwaddr addr, unsigned size) { - nvdimm_debug("BUG: we never read _DSM IO Port.\n"); + trace_acpi_nvdimm_read_io_port(); return 0; } =20 @@ -832,7 +831,7 @@ nvdimm_dsm_write(void *opaque, hwaddr addr, uint64_t va= l, unsigned size) NvdimmDsmIn *in; hwaddr dsm_mem_addr =3D val; =20 - nvdimm_debug("dsm memory address 0x%" HWADDR_PRIx ".\n", dsm_mem_addr); + trace_acpi_nvdimm_dsm_mem_addr(dsm_mem_addr); =20 /* * The DSM memory is mapped to guest address space so an evil guest @@ -846,12 +845,10 @@ nvdimm_dsm_write(void *opaque, hwaddr addr, uint64_t = val, unsigned size) in->function =3D le32_to_cpu(in->function); in->handle =3D le32_to_cpu(in->handle); =20 - nvdimm_debug("Revision 0x%x Handler 0x%x Function 0x%x.\n", in->revisi= on, - in->handle, in->function); + trace_acpi_nvdimm_dsm_info(in->revision, in->handle, in->function); =20 if (in->revision !=3D 0x1 /* Currently we only support DSM Spec Rev1. = */) { - nvdimm_debug("Revision 0x%x is not supported, expect 0x%x.\n", - in->revision, 0x1); + trace_acpi_nvdimm_invalid_revision(in->revision); nvdimm_dsm_no_payload(NVDIMM_DSM_RET_STATUS_UNSUPPORT, dsm_mem_add= r); goto exit; } diff --git a/hw/acpi/trace-events b/hw/acpi/trace-events index 2250126a22..eb60b04f9b 100644 --- a/hw/acpi/trace-events +++ b/hw/acpi/trace-events @@ -70,3 +70,16 @@ acpi_erst_reset_out(unsigned record_count) "record_count= %u" acpi_erst_post_load(void *header, unsigned slot_size) "header: 0x%p slot_s= ize %u" acpi_erst_class_init_in(void) acpi_erst_class_init_out(void) + +# nvdimm.c +acpi_nvdimm_read_fit(uint32_t offset, uint32_t len, const char *dirty) "Re= ad FIT: offset 0x%" PRIx32 " FIT size 0x%" PRIx32 " Dirty %s" +acpi_nvdimm_label_info(uint32_t label_size, uint32_t mxfer) "label_size 0x= %" PRIx32 ", max_xfer 0x%" PRIx32 +acpi_nvdimm_label_overflow(uint32_t offset, uint32_t length) "offset 0x%" = PRIx32 " + length 0x%" PRIx32 " is overflow" +acpi_nvdimm_label_oversize(uint32_t pos, uint64_t size) "position 0x%" PRI= x32 " is beyond label data (len =3D %" PRIu64 ")" +acpi_nvdimm_label_xfer_exceed(uint32_t length, uint32_t max_xfer) "length = (0x%" PRIx32 ") is larger than max_xfer (0x%" PRIx32 ")" +acpi_nvdimm_read_label(uint32_t offset, uint32_t length) "Read Label Data:= offset 0x%" PRIx32 " length 0x%" PRIx32 +acpi_nvdimm_write_label(uint32_t offset, uint32_t length) "Write Label Dat= a: offset 0x%" PRIx32 " length 0x%" PRIx32 +acpi_nvdimm_read_io_port(void) "Alert: we never read _DSM IO Port" +acpi_nvdimm_dsm_mem_addr(uint64_t dsm_mem_addr) "dsm memory address 0x%" P= RIx64 +acpi_nvdimm_dsm_info(uint32_t revision, uint32_t handle, uint32_t function= ) "Revision 0x%" PRIx32 " Handle 0x%" PRIx32 " Function 0x%" PRIx32 +acpi_nvdimm_invalid_revision(uint32_t revision) "Revision 0x%" PRIx32 " is= not supported, expect 0x1" --=20 MST From nobody Thu May 16 14:49:15 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=1658865375; cv=none; d=zohomail.com; s=zohoarc; b=FRFjqUlTCYWDoWd8h99xW5XHE1ExgzbA0sOHiUUHmDYmlIkEcdzA3R1gETkJKCUKhFXceYrd2l15pwlesaQ8Zk3gc0ILmmKYOalhI19NgRVCU+57ecJiDqQDm8C3SlzbM72ISfEZlFgcIYUsJWWnU4uIbXQK5QJEnM4Lm5/34Z0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658865375; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Jpsf229RVYZoh0vdsWuMvhiJ5lsTXWSMWKwUhIx7fNc=; b=V9KJ8BqyvOR/KyUepRvQsE07uKl9n9TxQCRlYCFBjUsFid66Xmc/ivMMKLMb4va61ocKQQkAwwafDolTEdVMtJOh0Fq2d8cHLdKH1R7UEijKR7uRbK1DYEQxe823VvJ4gzppgy9/CZqGX4wQycw9mNWopisC5frcZmr8WSOaRzw= 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 1658865375016308.4348962078262; Tue, 26 Jul 2022 12:56:15 -0700 (PDT) Received: from localhost ([::1]:50596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQf7-00080S-Mh for importer@patchew.org; Tue, 26 Jul 2022 15:56:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ6-0006ET-GW for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:55855) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ1-00050c-Nt for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:42 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-63-a47amo7jMweKS7zBuBIUGw-1; Tue, 26 Jul 2022 15:40:33 -0400 Received: by mail-wm1-f69.google.com with SMTP id bg6-20020a05600c3c8600b003a03d5d19e4so5694671wmb.1 for ; Tue, 26 Jul 2022 12:40:32 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id v11-20020adfe4cb000000b0021e6b62fde2sm11048962wrm.59.2022.07.26.12.40.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Jpsf229RVYZoh0vdsWuMvhiJ5lsTXWSMWKwUhIx7fNc=; b=Hy4AJ7ywGRyOHwGPkteNXsqKlJS6BBJI7ZK5qyugDZyvQsgecoqBBPnlzDs2yWiZSOI4Qm iFlggIeN4D8N39Qr2Ua8YC88xPYTQGaJHQLsOb91Nn+MN3iq7DZ62OnmvylYrtXJvA7itn 6wxKC904HhpPiNp0Cn57y72CsXx901M= X-MC-Unique: a47amo7jMweKS7zBuBIUGw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=Jpsf229RVYZoh0vdsWuMvhiJ5lsTXWSMWKwUhIx7fNc=; b=r6qMjOuvNTDwFkCEXKIIjPZx0X7zFg3bxCmOsOh2hE5eF3xnipPDWfZ+8GCRXiySXD pYfAImnozzxVBznRbZ0P6yyHn268NgpPPgT9Mc/h5Iad2bNCHeoUy+hxrpiGmHUh+fRr PzA6kb9Aigh7qqKmi0SUt71Q3ef1zm1Z1fEol9/eXsOPk8HqYFSDjorDQVa2HIriYmw8 cnBGzQhrubK/B/5NFtY7PvSHPosLu4tLYtJ0cI/YIjrdYZJdD4QPDoObWgcoMDOlPB7T k59frS6muX+2p8Og0gj8zRpb5VmsD1hpUus1ZOBJKsj+3Y0Uh79R64QRAs/E8XmdcV/X cmNQ== X-Gm-Message-State: AJIora9u5m5b2CQe1cYXtWun5g5XS1LnB3j+ZdOijGUInRamev8KK3oO rONqr6WYcg1vyI40tmqu3xoiKB/4nX3IkCpX+Q2twLH6b7ZquGMSM02pEv7Hw8FBEzhNkG7mmEJ AHxcJO+1mmS0gXsiVVXgkuj64aUXu8YdFXT+0SwohpYOGKCfu8avdCW5F/2jz X-Received: by 2002:a05:6000:81e:b0:21d:8811:777b with SMTP id bt30-20020a056000081e00b0021d8811777bmr12217615wrb.647.1658864431770; Tue, 26 Jul 2022 12:40:31 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tbEfsAfbJWcfFR78ifqhDe6cpviqaseuR17mUGY9aFeTlmMmV5a6wZeieJ7MOcvbFXkefi9Q== X-Received: by 2002:a05:6000:81e:b0:21d:8811:777b with SMTP id bt30-20020a056000081e00b0021d8811777bmr12217599wrb.647.1658864431535; Tue, 26 Jul 2022 12:40:31 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:29 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Igor Mammedov , Eduardo Habkost , Marcel Apfelbaum , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Yanan Wang Subject: [PULL 02/16] hw/machine: Clear out left over CXL related pointer from move of state handling to machines. Message-ID: <20220726193858.177462-3-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658865375407100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron This got left behind in the move of the CXL setup code from core files to the machines that support it. Link: https://gitlab.com/qemu-project/qemu/-/commit/1ebf9001fb2701e3c00b401= 334c8f3900a46adaa Signed-off-by: Jonathan Cameron Message-Id: <20220701132300.2264-2-Jonathan.Cameron@huawei.com> Acked-by: Igor Mammedov Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/boards.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index d94edcef28..7b416c9787 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -360,7 +360,6 @@ struct MachineState { CpuTopology smp; struct NVDIMMState *nvdimms_state; struct NumaState *numa_state; - CXLFixedMemoryWindowOptionsList *cfmws_list; }; =20 #define DEFINE_MACHINE(namestr, machine_initfn) \ --=20 MST From nobody Thu May 16 14:49:15 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=1658866891; cv=none; d=zohomail.com; s=zohoarc; b=Ebc0Ed/kjPtm3xSJHUDMvLFlfihvkKoiMcF5MEV/I9ucgJJnL4+Ks3Pfwi1CzI7+TsvUA8APDYwYop9Ii7jo5AebgHQAFTxcTcAC7pEe3dX9rkwrRwKzL0ToFKceoJh4lzz+hFRdBIrw/PU4gzaB2m/HDIfTOnYF81eUlr39+II= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658866891; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=G9GtfjSnubwWAoKua062+95+jZrn536PmQaJRk9riwk=; b=GWx6hzy17QUnSMx10SpjOEJS87YsV0KCkLqiH0fJ+3cxhC/t2EblYFsvqOlOCekx/Lek7cO7/DL1UrhkFbHb3GKXGF/UryVqc4vt4ahnqNAAxRmpwSjZdlVc/20+G9ae56/p0p0dYRwhd28a1Lwk6fxlJ3Xu0XdnGUpla308WT8= 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 1658866891419836.7550876399021; Tue, 26 Jul 2022 13:21:31 -0700 (PDT) Received: from localhost ([::1]:37028 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGR3a-0004ni-CT for importer@patchew.org; Tue, 26 Jul 2022 16:21:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52280) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ6-0006Bi-LS for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:43 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:37885) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ1-00050o-EH for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:40 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-207-NNJ3yS4WMlu_8FuRpsVCjw-1; Tue, 26 Jul 2022 15:40:35 -0400 Received: by mail-wm1-f70.google.com with SMTP id z20-20020a1c4c14000000b003a3020da654so5683630wmf.5 for ; Tue, 26 Jul 2022 12:40:35 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id s2-20020a7bc382000000b003a3253b705dsm18798300wmj.35.2022.07.26.12.40.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=G9GtfjSnubwWAoKua062+95+jZrn536PmQaJRk9riwk=; b=hz6eacp6+RWGLLjhJIMpnOJHqXtcoMjB27ZbyLRPBIBmvPdBZlkJvrWZzIZNPOnmDQ7Dl8 0FdmmHkvFOijL+eghlGie9J6xNayaFZIV2iIvU6zB4Ywztw11dSixW+KTcrjHOaBcuvtkL 7jn0warx4H7bUHFnk02Z1ESSBAAed+4= X-MC-Unique: NNJ3yS4WMlu_8FuRpsVCjw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=G9GtfjSnubwWAoKua062+95+jZrn536PmQaJRk9riwk=; b=CI/4+P7FTQLNy/+K4sMbpyhFs5K9UJ9GqU1NV+Wk+I6DyJ5D4mf7+cFU594Q6HfRtU ZYLYOlQL7WUqmhHRKthwr6RSeRgj31CkGW3HaiKeYPnpXaV0doOIxwHypSQGseH62Kj3 vkQk83Tkb5JnVyp8GcRKmeBefb+IrQn5jg1opxn1LF2xqhpRYXqX8sefVBDuz14BFPr6 x/Gq74u+dfoeqeBhT/ufxqfxRDPYYu24dbFMbsEdbmI2OpLy1zRA9y+4fZ0pWKy6AI8H vs/RBwIt3m5lKTCabY8sfsbCrkaZGsQrCTJ9IabGzxzLwtvPvGkmwMhT7yrjrwhOnHn/ wtKg== X-Gm-Message-State: AJIora9gyCqRDItP8XKtKlFa3+F505M951FjrruxMvBxl7XOQzWwKnAC 05aY/hD+HkLFqO1bM7YKIsZJCSWXEnjCb53FAbaYfkYAm1hiZ5AHUYzU08tS4FaSszOvkbhF8Do citcDxurHjEexUJFYUT3pdr+HfBXSty2o6ao0jxlRkrjOjkGsS8Y8nPSzuYSb X-Received: by 2002:a05:600c:410c:b0:3a3:2d78:f07f with SMTP id j12-20020a05600c410c00b003a32d78f07fmr504511wmi.130.1658864434148; Tue, 26 Jul 2022 12:40:34 -0700 (PDT) X-Google-Smtp-Source: AGRyM1td4ym9h1Ravk2UhVMAZZ3tP8vBdWbsKD+crjk4cXeiD210lmOY4dylDRJ2peVb3cqQVfWPYA== X-Received: by 2002:a05:600c:410c:b0:3a3:2d78:f07f with SMTP id j12-20020a05600c410c00b003a32d78f07fmr504495wmi.130.1658864433843; Tue, 26 Jul 2022 12:40:33 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:31 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 03/16] hw/i386/pc: Always place CXL Memory Regions after device_memory Message-ID: <20220726193858.177462-4-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658866893429100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Previously broken_reserved_end was taken into account, but Igor Mammedov identified that this could lead to a clash between potential RAM being mapped in the region and CXL usage. Hence always add the size of the device_memory memory region. This only affects the case where the broken_reserved_end flag was set. Fixes: 6e4e3ae936e6 ("hw/cxl/component: Implement host bridge MMIO (8.2.5, = table 142)") Reported-by: Igor Mammedov Signed-off-by: Jonathan Cameron Message-Id: <20220701132300.2264-3-Jonathan.Cameron@huawei.com> Acked-by: Igor Mammedov Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index d2b5823ffb..46ab1dcb47 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -922,10 +922,8 @@ void pc_memory_init(PCMachineState *pcms, hwaddr cxl_size =3D MiB; =20 if (pcmc->has_reserved_memory && machine->device_memory->base) { - cxl_base =3D machine->device_memory->base; - if (!pcmc->broken_reserved_end) { - cxl_base +=3D memory_region_size(&machine->device_memory->= mr); - } + cxl_base =3D machine->device_memory->base + + memory_region_size(&machine->device_memory->mr); } else if (pcms->sgx_epc.size !=3D 0) { cxl_base =3D sgx_epc_above_4g_end(&pcms->sgx_epc); } else { --=20 MST From nobody Thu May 16 14:49:15 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=1658867394; cv=none; d=zohomail.com; s=zohoarc; b=LlFGjnKkpAytuzb/okJXBy9Eu8A5hOX3pu9dc33gXl4BpAaLeh3YMP0vXhhjiNnIR4h7vlscygOBLZ1tMLpjOodkn35IMIMKwH8SrFi7NdWXVIM30nT+kN8d51YJQ/TiK3KxH/g7jrgNWnhXulU41sQk2qEPFk5r453umManqyI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658867394; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1nO9e8F2aKGyZjJwbGc2OCNv0WPUlucgH/QMwh6rRZE=; b=McsY4vIZL8j5I2uGORxRWgwxF6BzjrQnf/XfHzKL/OscYL66IxLUqrFaKDRrp46J67RBUdTuFkYUxNSIUUzHQL5Xnk+/hpEUNMwstJ7gNkxEYd+Ej1mnj80wETPY1B9eEtU5qOeYJ8eN3EVS8Xezv6TfjV6otopEvubvFxfhQFI= 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 1658867394574500.8354070306734; Tue, 26 Jul 2022 13:29:54 -0700 (PDT) Received: from localhost ([::1]:58846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGRBg-0003NW-Eb for importer@patchew.org; Tue, 26 Jul 2022 16:29:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQE-0006Ns-8R for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:59746) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ6-000517-VV for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:49 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-520-k-pcX9VmMQGOABZNx0kJkw-1; Tue, 26 Jul 2022 15:40:37 -0400 Received: by mail-wm1-f71.google.com with SMTP id ay19-20020a05600c1e1300b003a315c2c1c0so10654965wmb.7 for ; Tue, 26 Jul 2022 12:40:37 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id u24-20020a05600c211800b003a2e655f2e6sm18338233wml.21.2022.07.26.12.40.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864439; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=1nO9e8F2aKGyZjJwbGc2OCNv0WPUlucgH/QMwh6rRZE=; b=CrjaXrpXKXfhrGaOI1qF4DolAESpr4E/WDMCM0oZB0QLyYL8t8xTjn9H78fzNJqxul1N+t JomTTFWgcKwAg/pfUcMHEoB6Xhf6Ozle4Ge2wT4d5NMoPwr+GLJgKbi9WKSJfWN6ox7YDb amvDXpqdRVm0vy5FyCx3aazTA2oVwgo= X-MC-Unique: k-pcX9VmMQGOABZNx0kJkw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=1nO9e8F2aKGyZjJwbGc2OCNv0WPUlucgH/QMwh6rRZE=; b=rid/4MsGXsYEHsqMALDGE/m81FruT+foGqyG/tQSWXUd85acJbRw7A+xuCZpXo0JTE /6lyzurKdMTM8YCeU6PweGShtZB3zZMDoJ9NDTA4+Yq9jccHCtj/Yhxau+rycVlgY8P4 ds6YVm/r0LDLwGL5tznckPWuYgaUtf5DVU6Odjh8e0l7QTPl5QMpibfYG9nJNDSADOrJ xZAb+rTB+poX+QGt7BbliWZ8GKHKlnrzeloFqMVCpNvsS7jOxyim/fmy44nBsliEdxY2 +dNOi0gbnWkGxtXMRrFHfWXjB/sMxLTIvW+Sd/+4V1FVgbdU+QjnED7Qh8C7kb3/Mw9l ZEoA== X-Gm-Message-State: AJIora+WVR4++if49KsSRGA3d3JOnEym7Zt6CZbBGZ/Rv2DahPTLEhs2 MSApxYPPGx2aOvtHPLRC7GmcMhMPJsBqHAKEOgFjr8QaDYQQWlF+AN9DMbIJ9dXv5j7WBmxf+BI 0rOkP7thXVICeTSLWcN8hFsf113t4xzq94EU+w79E9Oe+sVST0C6+SZ7woX74 X-Received: by 2002:a05:6000:144a:b0:21d:c50a:89dd with SMTP id v10-20020a056000144a00b0021dc50a89ddmr11793603wrx.608.1658864436397; Tue, 26 Jul 2022 12:40:36 -0700 (PDT) X-Google-Smtp-Source: AGRyM1teIuoiaIPW9VYyc2c2cqhFE2vGjQbQDZIP3w4sZgP7CFBdUvlTKO7etgORZf6apqTvDfjVlg== X-Received: by 2002:a05:6000:144a:b0:21d:c50a:89dd with SMTP id v10-20020a056000144a00b0021dc50a89ddmr11793589wrx.608.1658864435838; Tue, 26 Jul 2022 12:40:35 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:34 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Igor Mammedov , Ben Widawsky Subject: [PULL 04/16] hw/cxl: Fix size of constant in interleave granularity function. Message-ID: <20220726193858.177462-5-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658867394933100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Whilst the interleave granularity is always small enough that this isn't a real problem (much less than 4GiB) let's change the constant to ULL to fix the coverity warning. Reported-by: Peter Maydell Fixes: 829de299d1 ("hw/cxl/component: Add utils for interleave parameter en= coding/decoding") Fixes: Coverity CID 1488868 Signed-off-by: Jonathan Cameron Message-Id: <20220701132300.2264-4-Jonathan.Cameron@huawei.com> Acked-by: Igor Mammedov Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_component.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/cxl/cxl_component.h b/include/hw/cxl/cxl_component.h index 70b5018156..94ec2f07d7 100644 --- a/include/hw/cxl/cxl_component.h +++ b/include/hw/cxl/cxl_component.h @@ -215,7 +215,7 @@ uint8_t cxl_interleave_granularity_enc(uint64_t gran, E= rror **errp); =20 static inline hwaddr cxl_decode_ig(int ig) { - return 1 << (ig + 8); + return 1ULL << (ig + 8); } =20 CXLComponentState *cxl_get_hb_cstate(PCIHostState *hb); --=20 MST From nobody Thu May 16 14:49:15 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=1658867060; cv=none; d=zohomail.com; s=zohoarc; b=W4oetmbQIlXFNEDyfQ8dzP78956SpEzPNkP7SNktWQ3R+1IfDt77Grq3gdvAUiJKXMTTAA2mg+GNF24FYKrftkVRa/qU9QrmLFSOSy5hV+9j0oUcgaBZNpDecVr2+rb6HPSSEVxSHifDRoWE3lcLz36gJ5YdBxirLTmT0Ismfps= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658867060; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=APQb4qnExfzNsssSKVQTxFsOb7acJVHhdlS++yMpUB8=; b=ApswncWJAh6K+pyioEIreCdoUwQGxW++HfdciFJsxU0tfPJRuEjktaXiUfXEZPC4RkplPjCKTosdfEUMK61ZZoUPOJxufX4t11QTO19jAe6ETfD3vOKevOC5kKaNd/0wDltybyHtDbVcqXJOvlnRC6F3HIl9kGGxcmgw1weNP5U= 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 1658867060025748.0060201776165; Tue, 26 Jul 2022 13:24:20 -0700 (PDT) Received: from localhost ([::1]:45368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGR6I-0002Ex-3h for importer@patchew.org; Tue, 26 Jul 2022 16:24:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52344) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ9-0006JF-TZ for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:45 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:45993) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ6-00051U-0M for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:44 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-569-bouA34sMPhySwM1ZJI-jVQ-1; Tue, 26 Jul 2022 15:40:40 -0400 Received: by mail-wm1-f70.google.com with SMTP id q19-20020a7bce93000000b003a3264f3de9so5690867wmj.3 for ; Tue, 26 Jul 2022 12:40:39 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id d13-20020adf9c8d000000b0021e4c3b2967sm15999722wre.65.2022.07.26.12.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864441; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=APQb4qnExfzNsssSKVQTxFsOb7acJVHhdlS++yMpUB8=; b=GDU/nex8NFJT+cfB4P4nNQsAdN4HnMSjgFQ4ipSt92HDUSxPWW/VVx/fP8p6iYSONGGYV/ bMo6p1egOZRoCmQIzgBwBwl992G28ngpaj2oIoQJlP2I4A8uBKO2S4Y8ZliaTEbt1Hg8NI yDa0KG4VUZ64wLmnVQ/dwTeUPcfYCEw= X-MC-Unique: bouA34sMPhySwM1ZJI-jVQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=APQb4qnExfzNsssSKVQTxFsOb7acJVHhdlS++yMpUB8=; b=cb/QtYFQhZ3IguOCge8tuJAzGZsYF6cI0DEJb/nQougwknS3cH7F7Vbfbr8E5jUb0E Jth3HWWkbCsqYCDcZP2rnK1OYvyUTqrVyD1N2oz4DNrHi0DWj7AwDIOa0sthlEKIzYhE SiWoLclzd4WodfhNLB4ZZjkQ3LTYn9PVsDSXXkkyzWRi/X3izOW2NYAreTCtv8MqFKFC xkeyZj67W7tkl0DNuOh2aMBl628atQXfNEFEAhw5yqWxQxt0VOYSc/podkynyXYIbf3n n6Y6F5iU9imSRVE18zUiNFBsstxtTcT2fkIx/bmjHbJ+f9cJuugy7L5YiQt+CyFGKUPQ kMxg== X-Gm-Message-State: AJIora/C1b8SJMiTfXH9P3PLMr8DUB3kVBhg2rjOZy5VOYCHj28Smxuc J+nrXguwkE1dsm3jxBIHAoqmYHEITFeZTivXgpfRQV4khPd0xzQcJhaqj92qRr98TtT5mWFxMQz +v+D7fJz0gYqJF2fLN/HswP0Pird7X7FwRQdCtoVWVL/VZvpjZwZ/Mr2vMuSD X-Received: by 2002:a1c:2783:0:b0:3a2:fd82:bf46 with SMTP id n125-20020a1c2783000000b003a2fd82bf46mr492018wmn.29.1658864438549; Tue, 26 Jul 2022 12:40:38 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sUb3y0ZNfoD3pE0q/a2pT3dsBljtxinrBmorGMKy31vCvHDLe2ncS90PVQFP0h6tEwL/EZzg== X-Received: by 2002:a1c:2783:0:b0:3a2:fd82:bf46 with SMTP id n125-20020a1c2783000000b003a2fd82bf46mr491988wmn.29.1658864438158; Tue, 26 Jul 2022 12:40:38 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:35 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Igor Mammedov , Ani Sinha , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 05/16] hw/i386: add 4g boundary start to X86MachineState Message-ID: <20220726193858.177462-6-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658867060891100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins Rather than hardcoding the 4G boundary everywhere, introduce a X86MachineState field @above_4g_mem_start and use it accordingly. This is in preparation for relocating ram-above-4g to be dynamically start at 1T on AMD platforms. Signed-off-by: Joao Martins Reviewed-by: Igor Mammedov Message-Id: <20220719170014.27028-2-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/i386/x86.h | 3 +++ hw/i386/acpi-build.c | 2 +- hw/i386/pc.c | 11 ++++++----- hw/i386/sgx.c | 2 +- hw/i386/x86.c | 1 + 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index 6bdf1f6ab2..62fa5774f8 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -56,6 +56,9 @@ struct X86MachineState { /* RAM information (sizes, addresses, configuration): */ ram_addr_t below_4g_mem_size, above_4g_mem_size; =20 + /* Start address of the initial RAM above 4G */ + uint64_t above_4g_mem_start; + /* CPU and apic information: */ bool apic_xrupt_override; unsigned pci_irq_mask; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index cad6f5ac41..0355bd3dda 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2024,7 +2024,7 @@ build_srat(GArray *table_data, BIOSLinker *linker, Ma= chineState *machine) build_srat_memory(table_data, mem_base, mem_len, i - 1, MEM_AFFINITY_ENABLED); } - mem_base =3D 1ULL << 32; + mem_base =3D x86ms->above_4g_mem_start; mem_len =3D next_base - x86ms->below_4g_mem_size; next_base =3D mem_base + mem_len; } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 46ab1dcb47..13b68307be 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -850,9 +850,10 @@ void pc_memory_init(PCMachineState *pcms, machine->ram, x86ms->below_4g_mem_size, x86ms->above_4g_mem_size); - memory_region_add_subregion(system_memory, 0x100000000ULL, + memory_region_add_subregion(system_memory, x86ms->above_4g_mem_sta= rt, ram_above_4g); - e820_add_entry(0x100000000ULL, x86ms->above_4g_mem_size, E820_RAM); + e820_add_entry(x86ms->above_4g_mem_start, x86ms->above_4g_mem_size, + E820_RAM); } =20 if (pcms->sgx_epc.size !=3D 0) { @@ -893,7 +894,7 @@ void pc_memory_init(PCMachineState *pcms, machine->device_memory->base =3D sgx_epc_above_4g_end(&pcms->s= gx_epc); } else { machine->device_memory->base =3D - 0x100000000ULL + x86ms->above_4g_mem_size; + x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; } =20 machine->device_memory->base =3D @@ -927,7 +928,7 @@ void pc_memory_init(PCMachineState *pcms, } else if (pcms->sgx_epc.size !=3D 0) { cxl_base =3D sgx_epc_above_4g_end(&pcms->sgx_epc); } else { - cxl_base =3D 0x100000000ULL + x86ms->above_4g_mem_size; + cxl_base =3D x86ms->above_4g_mem_start + x86ms->above_4g_mem_s= ize; } =20 e820_add_entry(cxl_base, cxl_size, E820_RESERVED); @@ -1035,7 +1036,7 @@ uint64_t pc_pci_hole64_start(void) } else if (pcms->sgx_epc.size !=3D 0) { hole64_start =3D sgx_epc_above_4g_end(&pcms->sgx_epc); } else { - hole64_start =3D 0x100000000ULL + x86ms->above_4g_mem_size; + hole64_start =3D x86ms->above_4g_mem_start + x86ms->above_4g_mem_s= ize; } =20 return ROUND_UP(hole64_start, 1 * GiB); diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index a44d66ba2a..09d9c7c73d 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -295,7 +295,7 @@ void pc_machine_init_sgx_epc(PCMachineState *pcms) return; } =20 - sgx_epc->base =3D 0x100000000ULL + x86ms->above_4g_mem_size; + sgx_epc->base =3D x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; =20 memory_region_init(&sgx_epc->mr, OBJECT(pcms), "sgx-epc", UINT64_MAX); memory_region_add_subregion(get_system_memory(), sgx_epc->base, diff --git a/hw/i386/x86.c b/hw/i386/x86.c index ecea25d249..050eedc0c8 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -1391,6 +1391,7 @@ static void x86_machine_initfn(Object *obj) x86ms->oem_id =3D g_strndup(ACPI_BUILD_APPNAME6, 6); x86ms->oem_table_id =3D g_strndup(ACPI_BUILD_APPNAME8, 8); x86ms->bus_lock_ratelimit =3D 0; + x86ms->above_4g_mem_start =3D 4 * GiB; } =20 static void x86_machine_class_init(ObjectClass *oc, void *data) --=20 MST From nobody Thu May 16 14:49:15 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=1658867183; cv=none; d=zohomail.com; s=zohoarc; b=cxsdM1ekBIdKlJBHiwUVxpD6MMngxLH+j1JVzGM7lZETkmh8Xt5juInq7ya+4RYhyZslC5pm5nlPp4W4eLhDAQ1oVEX+PF0IDyhGhFlxWFJ/gHiM8YZknyioAW6PE+QRRNCZQ4vwM7jYw5H4UNuxqrqpNi2a6dyjp/L9OHesYZg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658867183; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vGBMWsxmCt/y7feB6L2gahZSd7fcXIeSGu61umWiBGY=; b=UuEwZ+/ByGo4VodCe99TwLfWsZafXq038rVmAG15yBVKnMpaIt2Fg66I93e5XUHO2QlNG6OI/FOkF/Y7Ns683QlBNI0dIucKoQ8aod1ct3Cois5o3yzhhjb3LzeOg3MZXzOFTfR6ppTwiUz6uP75A5n8LGcsxnfTaWYwKM1X8uE= 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 1658867183851152.64531363623962; Tue, 26 Jul 2022 13:26:23 -0700 (PDT) Received: from localhost ([::1]:52494 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGR8I-0007MY-P8 for importer@patchew.org; Tue, 26 Jul 2022 16:26:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52354) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQB-0006LL-IR for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:57808) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQ7-00051x-Ip for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:45 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-208-KJO1CijAMgKYXUUVK62Hlg-1; Tue, 26 Jul 2022 15:40:42 -0400 Received: by mail-wm1-f71.google.com with SMTP id bh18-20020a05600c3d1200b003a32044cc9fso8029294wmb.6 for ; Tue, 26 Jul 2022 12:40:41 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id c7-20020a05600c0a4700b003a31f71c5b8sm26908380wmq.27.2022.07.26.12.40.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=vGBMWsxmCt/y7feB6L2gahZSd7fcXIeSGu61umWiBGY=; b=RIccC0Ejaen36twGjedZh6+HQV2eRdwmIojXAp2CQTpMLjCQLTcL76NpgHmjsZHkRFBu2Q 0u88y5JHyH/+SbNf4IKfQpA0RPwsd0r7Hm+ReyyfBsUgSa5JMJ4OYFJP9CMtr24qU3pOfC x/lMWLpefKIQJ1tHoE8bLX6WYrtnV40= X-MC-Unique: KJO1CijAMgKYXUUVK62Hlg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=vGBMWsxmCt/y7feB6L2gahZSd7fcXIeSGu61umWiBGY=; b=kFT0oxZYNkTpKHw6zVj6h8uLA/Et+/FSWi8Ki+msCxOYf7HSTMGjUsjCxN92kfvoPa SWVRNrvnn3EnKZm8KoVvpFs3wjfV9mQe5dD/tpz0gANEvQLGU5Hz9fEBSaK1rwWSbFCe TC1hxl6AmAAUlM+wL687Z/vvutQzud9AqV6Y8n+TqxLXAYU/6I8N6il6XYZdCzWTThHg vP2KFXggLmZpW53odxctJu9mJOm4qFnAjdf0qxVlHrV9i7X9+l/6iMcqATYqV4sInLJa 0jsSbUqXFuG63dHLbUk6V7+XRiYte5QtYp7Wq7w8tm8VEl5iYUgq3caF5AnAl2ORCikJ puEQ== X-Gm-Message-State: AJIora/KGi8/HTpQb+RzWzlv8l0HCH4BI1gM0SyFBv6c70eABREi6Kbm WJGi/8ppKqXrzuckWaqskgxqbLrDBhCXSA9ljoNM1TUV2+nuXLNbj8YpDodtnBQxjGv+mATBPse 18qstglneW4yili4/P9JjtJ8JIYvedoaJaAfx/pm3cFzKP1rAxo09SWtocEYK X-Received: by 2002:a7b:c453:0:b0:3a3:1c65:ff97 with SMTP id l19-20020a7bc453000000b003a31c65ff97mr482941wmi.180.1658864440556; Tue, 26 Jul 2022 12:40:40 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uvyYqqonebrom7qJZL3jrZ5ufTYFG5EuOJAR8KoG0du8+LTzW94TI2xkBRJHXp+gIiCHTpEw== X-Received: by 2002:a7b:c453:0:b0:3a3:1c65:ff97 with SMTP id l19-20020a7bc453000000b003a31c65ff97mr482927wmi.180.1658864440269; Tue, 26 Jul 2022 12:40:40 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:38 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 06/16] i386/pc: create pci-host qdev prior to pc_memory_init() Message-ID: <20220726193858.177462-7-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658867185680100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins At the start of pc_memory_init() we usually pass a range of 0..UINT64_MAX as pci_memory, when really its 2G (i440fx) or 32G (q35). To get the real user value, we need to get pci-host passed property for default pci_hole64_size. Thus to get that, create the qdev prior to memory init to better make estimations on max used/phys addr. This is in preparation to determine that host-phys-bits are enough and also for pci-hole64-size to be considered to relocate ram-above-4g to be at 1T (on AMD platforms). Signed-off-by: Joao Martins Reviewed-by: Igor Mammedov Message-Id: <20220719170014.27028-3-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/pci-host/i440fx.h | 3 ++- hw/i386/pc_piix.c | 7 +++++-- hw/i386/pc_q35.c | 6 +++--- hw/pci-host/i440fx.c | 5 ++--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include/hw/pci-host/i440fx.h b/include/hw/pci-host/i440fx.h index 52518dbf08..d02bf1ed6b 100644 --- a/include/hw/pci-host/i440fx.h +++ b/include/hw/pci-host/i440fx.h @@ -35,7 +35,8 @@ struct PCII440FXState { =20 #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX" =20 -PCIBus *i440fx_init(const char *host_type, const char *pci_type, +PCIBus *i440fx_init(const char *pci_type, + DeviceState *dev, MemoryRegion *address_space_mem, MemoryRegion *address_space_io, ram_addr_t ram_size, diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index fbf9465318..b8b3ce3408 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -91,6 +91,7 @@ static void pc_init1(MachineState *machine, MemoryRegion *pci_memory; MemoryRegion *rom_memory; ram_addr_t lowmem; + DeviceState *i440fx_host; =20 /* * Calculate ram split, for memory below and above 4G. It's a bit @@ -164,9 +165,11 @@ static void pc_init1(MachineState *machine, pci_memory =3D g_new(MemoryRegion, 1); memory_region_init(pci_memory, NULL, "pci", UINT64_MAX); rom_memory =3D pci_memory; + i440fx_host =3D qdev_new(host_type); } else { pci_memory =3D NULL; rom_memory =3D system_memory; + i440fx_host =3D NULL; } =20 pc_guest_info_init(pcms); @@ -200,8 +203,8 @@ static void pc_init1(MachineState *machine, const char *type =3D xen_enabled() ? TYPE_PIIX3_XEN_DEVICE : TYPE_PIIX3_DEVICE; =20 - pci_bus =3D i440fx_init(host_type, - pci_type, + pci_bus =3D i440fx_init(pci_type, + i440fx_host, system_memory, system_io, machine->ram_size, x86ms->below_4g_mem_size, x86ms->above_4g_mem_size, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 12cc76aaf8..f4d23b1469 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -203,12 +203,12 @@ static void pc_q35_init(MachineState *machine) pcms->smbios_entry_point_type); } =20 - /* allocate ram and load rom/bios */ - pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory); - /* create pci host bus */ q35_host =3D Q35_HOST_DEVICE(qdev_new(TYPE_Q35_HOST_DEVICE)); =20 + /* allocate ram and load rom/bios */ + pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory); + object_property_add_child(qdev_get_machine(), "q35", OBJECT(q35_host)); object_property_set_link(OBJECT(q35_host), MCH_HOST_PROP_RAM_MEM, OBJECT(ram_memory), NULL); diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c index 1c5ad5f918..d5426ef4a5 100644 --- a/hw/pci-host/i440fx.c +++ b/hw/pci-host/i440fx.c @@ -237,7 +237,8 @@ static void i440fx_realize(PCIDevice *dev, Error **errp) } } =20 -PCIBus *i440fx_init(const char *host_type, const char *pci_type, +PCIBus *i440fx_init(const char *pci_type, + DeviceState *dev, MemoryRegion *address_space_mem, MemoryRegion *address_space_io, ram_addr_t ram_size, @@ -246,7 +247,6 @@ PCIBus *i440fx_init(const char *host_type, const char *= pci_type, MemoryRegion *pci_address_space, MemoryRegion *ram_memory) { - DeviceState *dev; PCIBus *b; PCIDevice *d; PCIHostState *s; @@ -254,7 +254,6 @@ PCIBus *i440fx_init(const char *host_type, const char *= pci_type, unsigned i; I440FXState *i440fx; =20 - dev =3D qdev_new(host_type); s =3D PCI_HOST_BRIDGE(dev); b =3D pci_root_bus_new(dev, NULL, pci_address_space, address_space_io, 0, TYPE_PCI_BUS); --=20 MST From nobody Thu May 16 14:49:15 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=1658865367; cv=none; d=zohomail.com; s=zohoarc; b=LQzXZ8rWtPLMdreqQy3AAKc8CJTRRXpVl8Rjnux4dMLUxds7BAG+mxgVphsNLJMopRzYTc/ClCdw/Fjh+U8Myxa3L0V5mtk7mXx8fVyQs3apobjdwgC7bxz4GwVDx6ALfrUbkYrb3sa6gJ2V+BQbfP0A3xuOvacUQf34VFjRvFE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658865367; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IdmtmvyLempN390IswXPp8lMHnKmN++8ryVr23XiQDw=; b=bFJwzjEbX7eI46GC+981E8TTHuWeVdywf1PADgWRyOY1YmxuPgjX6A1FEp2GuwSM20eF8Hfv0mhFdRgiR1XDnGD3kgLKE+mSHDBWfa7nRLo+TfY/pS03gT5+YAxXvuvU6vAq9k5qMd6ETk9hAgP+DiYJzFllLp473BtVPI5JVvw= 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 1658865367293805.5814429545503; Tue, 26 Jul 2022 12:56:07 -0700 (PDT) Received: from localhost ([::1]:49990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQez-0007WO-Rv for importer@patchew.org; Tue, 26 Jul 2022 15:56:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQE-0006Nt-8f for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:41977) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQC-00052L-1k for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:49 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-654-dl_8-daZNcGCPno-vg_drQ-1; Tue, 26 Jul 2022 15:40:44 -0400 Received: by mail-wm1-f70.google.com with SMTP id p36-20020a05600c1da400b003a33a8c14f2so6930644wms.7 for ; Tue, 26 Jul 2022 12:40:44 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id n5-20020adff085000000b0021eb5a1bb1csm1561897wro.30.2022.07.26.12.40.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864445; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=IdmtmvyLempN390IswXPp8lMHnKmN++8ryVr23XiQDw=; b=LkJgfLlTndEjqZumn6+sfU4UV9jqG7T+e+qUFAOytcKJ7+K/yXc9w5HZogJNeIK2kKCBg2 Wo3hQNxZK9qKTGOX8J7g3Qhfv8DNc9Pn3g3hNnHqK+W+XVlh+8M6QKnOoiqnRXVpbzhXyw hbg0QkgNjgOIWMoE2EhIo46HkZ9SskY= X-MC-Unique: dl_8-daZNcGCPno-vg_drQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=IdmtmvyLempN390IswXPp8lMHnKmN++8ryVr23XiQDw=; b=jDDOgdiwwOfIS2gwLG+JX/efIIqAsVT3X63g1aopvpQ56NyWRD3SHIXG/8ApN6itVP xLb1wDBmBj9O4pF7mvd2wnUkg8OTjOyu9RzWbUJ0aa+EkeXJgE/VI+sv7Mcc2R3OwJVJ iaaIBAgQKg9xF+tmz7ZkirAc3hA3krUzX6FI1XJpGX7ccILOrNLac2GsKLFO+UO9jbHH HrFtWPXGsNSIdogxegicqBqWWT3RY6MBm1KmVJfzVyyr18tu5zz22B8yfceRtR6nUphz nYhhLGcoDHTd75QHRlJWIrhgQVOb9MEf9KgEFr83CA5Arj2M/Bn+cyC8sO+7XribJQjI hFkw== X-Gm-Message-State: AJIora86zQ8d4l00CzXDdL2We6TAG/izpBnGxRnKFyIOWdyZbm4LzajZ 7qrI93hbLrBl4N/6e6Ljd1Rmai1IYyMx57kskBOy4MzddhUz2xSQaCq5usQVHCli9Kuakk2lNO0 6z0ueLHhvR1Z7Tf8g8sNzYDf02enDeL3ByWQgKSVn9+aIsOEteSQoOGoJB5Vg X-Received: by 2002:adf:fb90:0:b0:21e:4eb6:b880 with SMTP id a16-20020adffb90000000b0021e4eb6b880mr11671074wrr.551.1658864442695; Tue, 26 Jul 2022 12:40:42 -0700 (PDT) X-Google-Smtp-Source: AGRyM1t+QSEnEZqMFy8S+2YlmayN24RYT6kv8PRXb4vuzPOR+ZNTJpvelIW0P+Z92AnBXHJFe2Azcw== X-Received: by 2002:adf:fb90:0:b0:21e:4eb6:b880 with SMTP id a16-20020adffb90000000b0021e4eb6b880mr11671052wrr.551.1658864442420; Tue, 26 Jul 2022 12:40:42 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:40 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Igor Mammedov , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 07/16] i386/pc: pass pci_hole64_size to pc_memory_init() Message-ID: <20220726193858.177462-8-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658865369591100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins Use the pre-initialized pci-host qdev and fetch the pci-hole64-size into pc_memory_init() newly added argument. Use PCI_HOST_PROP_PCI_HOLE64_SIZE pci-host property for fetching pci-hole64-size. This is in preparation to determine that host-phys-bits are enough and for pci-hole64-size to be considered to relocate ram-above-4g to be at 1T (on AMD platforms). Signed-off-by: Joao Martins Reviewed-by: Igor Mammedov Message-Id: <20220719170014.27028-4-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/i386/pc.h | 3 ++- hw/i386/pc.c | 3 ++- hw/i386/pc_piix.c | 7 ++++++- hw/i386/pc_q35.c | 10 +++++++++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 2a8ffbcfa8..01938fce4c 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -162,7 +162,8 @@ void xen_load_linux(PCMachineState *pcms); void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, - MemoryRegion **ram_memory); + MemoryRegion **ram_memory, + uint64_t pci_hole64_size); uint64_t pc_pci_hole64_start(void); DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus); void pc_basic_device_init(struct PCMachineState *pcms, diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 13b68307be..f4d5b25fdd 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -817,7 +817,8 @@ void xen_load_linux(PCMachineState *pcms) void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, - MemoryRegion **ram_memory) + MemoryRegion **ram_memory, + uint64_t pci_hole64_size) { int linux_boot, i; MemoryRegion *option_rom_mr; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index b8b3ce3408..aa191d405a 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -91,6 +91,7 @@ static void pc_init1(MachineState *machine, MemoryRegion *pci_memory; MemoryRegion *rom_memory; ram_addr_t lowmem; + uint64_t hole64_size; DeviceState *i440fx_host; =20 /* @@ -166,10 +167,14 @@ static void pc_init1(MachineState *machine, memory_region_init(pci_memory, NULL, "pci", UINT64_MAX); rom_memory =3D pci_memory; i440fx_host =3D qdev_new(host_type); + hole64_size =3D object_property_get_uint(OBJECT(i440fx_host), + PCI_HOST_PROP_PCI_HOLE64_SI= ZE, + &error_abort); } else { pci_memory =3D NULL; rom_memory =3D system_memory; i440fx_host =3D NULL; + hole64_size =3D 0; } =20 pc_guest_info_init(pcms); @@ -186,7 +191,7 @@ static void pc_init1(MachineState *machine, /* allocate ram and load rom/bios */ if (!xen_enabled()) { pc_memory_init(pcms, system_memory, - rom_memory, &ram_memory); + rom_memory, &ram_memory, hole64_size); } else { pc_system_flash_cleanup_unused(pcms); if (machine->kernel_filename !=3D NULL) { diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index f4d23b1469..307910b33c 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -138,6 +138,7 @@ static void pc_q35_init(MachineState *machine) MachineClass *mc =3D MACHINE_GET_CLASS(machine); bool acpi_pcihp; bool keep_pci_slot_hpc; + uint64_t pci_hole64_size =3D 0; =20 /* Check whether RAM fits below 4G (leaving 1/2 GByte for IO memory * and 256 Mbytes for PCI Express Enhanced Configuration Access Mapping @@ -206,8 +207,15 @@ static void pc_q35_init(MachineState *machine) /* create pci host bus */ q35_host =3D Q35_HOST_DEVICE(qdev_new(TYPE_Q35_HOST_DEVICE)); =20 + if (pcmc->pci_enabled) { + pci_hole64_size =3D object_property_get_uint(OBJECT(q35_host), + PCI_HOST_PROP_PCI_HOLE6= 4_SIZE, + &error_abort); + } + /* allocate ram and load rom/bios */ - pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory); + pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory, + pci_hole64_size); =20 object_property_add_child(qdev_get_machine(), "q35", OBJECT(q35_host)); object_property_set_link(OBJECT(q35_host), MCH_HOST_PROP_RAM_MEM, --=20 MST From nobody Thu May 16 14:49:15 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=1658867659; cv=none; d=zohomail.com; s=zohoarc; b=XknYeYZfPgmU8+3i1bTAbdiexWPriniURGfyho6EKOqNv7+G4525YAyT7N7U0CdbTqFwb3SeFQGMHwWWPMluVVw/75vcvmrs5cEeHNv7Y1/WBtFW9tEgNXQ8Y3/80sJm+5A7vAT0YV1EsIZyMoYd6blNH/up03GzljlzuccJNNE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658867659; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MoGeQiAuFZ8Z23BNRj6nOmHSXjKjntgr2SuKM6ucXaE=; b=R+bcxMFr3Spy+g3PXn1Lg074RqdOnGugSnPTJTWLE71W3sRhKBpC0Bl9XZlVPCQaGKs19y8rzB6/EFbZmnwgwTGlcApvE6tXHQoLdxncLewe4su54KLsLlbKynHjIdgvd+uOW21ZzPBFGiNNcZZUFfoEBTsst71EeC0srCEr0C4= 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 1658867659602796.3111558100915; Tue, 26 Jul 2022 13:34:19 -0700 (PDT) Received: from localhost ([::1]:39216 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGRFy-0001ES-K3 for importer@patchew.org; Tue, 26 Jul 2022 16:34:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52460) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQL-0006bi-9f for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:24332) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQC-00052V-Cv for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:55 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-190-4jGweiDuOiaV5huRB6AzqQ-1; Tue, 26 Jul 2022 15:40:46 -0400 Received: by mail-wr1-f72.google.com with SMTP id n7-20020adfc607000000b0021a37d8f93aso2397893wrg.21 for ; Tue, 26 Jul 2022 12:40:46 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id q26-20020a056000137a00b0021e0147da47sm15126160wrz.96.2022.07.26.12.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864447; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=MoGeQiAuFZ8Z23BNRj6nOmHSXjKjntgr2SuKM6ucXaE=; b=Aq+s4ExHFyt6ok341fQr45dYcKw3Gv734YZJB8X3kgrbn+0vVcp7DL2JcviG3HdM/iuMLG vm4TIxHOoJF4e7KBgwo/u9lS2WW+bgRmEtXtebSW9TEFYwU16pWRWdnNonpjmL6Jdzhao/ QcMZNNLb7tWWyjxbDtvCvmIpj/V0yto= X-MC-Unique: 4jGweiDuOiaV5huRB6AzqQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=MoGeQiAuFZ8Z23BNRj6nOmHSXjKjntgr2SuKM6ucXaE=; b=dpkzPOOhATYbGlZna83HSlRPagrEo7bfAe+W0bB42xq8jt4cFZD7809y4wM2Pz8bm1 bxbkBo5bXrE5cuGhrIkKTRfXeYaRNiPTUITPWu1RH2K9bpu3Y+Mrotym4os6EqY+JFb6 LIuQGxMKmdqHIKURaJPqusjwzTw6odUkblZRrrxg+GeelCli9exlrdEdq9TSY2l1wdk2 ZtC/u++IIIjO28SBWASVpD7+bt6e49UAzn1jXdylj1MJJZUggTip9XE9d1TT+77ilGkd Ph6Bauwpd9apKn2lzFv6ELm+mpwGYRgRBlEk56Z366LnYFs0/qIwcHKjV7FBXq9UTQTx tUig== X-Gm-Message-State: AJIora8x5746Ea2adoDFWxl9WXkOhR0NvGbMB6R9nVGG8CF3nsQLzRaO tROkeHWU7oNzHPm+OvQEVM3jHHfVyJWuB7s4BK7b6BSc+Xp2naZiJN+xo5s0jo3wEJlDDSZ4guL 35fcC6g+3I4IJr3Vc0MaiTSvNnZiJ/VW5N+cs/ZJsxyqobosM4z2CDFQlfBl3 X-Received: by 2002:a05:600c:17d5:b0:3a3:576:21ba with SMTP id y21-20020a05600c17d500b003a3057621bamr490718wmo.176.1658864444939; Tue, 26 Jul 2022 12:40:44 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vdnUc9RHJLeetoEsW5MJdMWBjyK2nx96hhonaBNS6lBq/bhALf3TPexa4fOaVUvOKg6PkpOw== X-Received: by 2002:a05:600c:17d5:b0:3a3:576:21ba with SMTP id y21-20020a05600c17d500b003a3057621bamr490695wmo.176.1658864444660; Tue, 26 Jul 2022 12:40:44 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:42 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Igor Mammedov , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 08/16] i386/pc: factor out above-4g end to an helper Message-ID: <20220726193858.177462-9-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_HELO_TEMPERROR=0.01 autolearn=no 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658867660649100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins There's a couple of places that seem to duplicate this calculation of RAM size above the 4G boundary. Move all those to a helper function. Signed-off-by: Joao Martins Reviewed-by: Igor Mammedov Message-Id: <20220719170014.27028-5-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f4d5b25fdd..d1e20ccb27 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -814,6 +814,17 @@ void xen_load_linux(PCMachineState *pcms) #define PC_ROM_ALIGN 0x800 #define PC_ROM_SIZE (PC_ROM_MAX - PC_ROM_MIN_VGA) =20 +static hwaddr pc_above_4g_end(PCMachineState *pcms) +{ + X86MachineState *x86ms =3D X86_MACHINE(pcms); + + if (pcms->sgx_epc.size !=3D 0) { + return sgx_epc_above_4g_end(&pcms->sgx_epc); + } + + return x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; +} + void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, @@ -891,15 +902,8 @@ void pc_memory_init(PCMachineState *pcms, exit(EXIT_FAILURE); } =20 - if (pcms->sgx_epc.size !=3D 0) { - machine->device_memory->base =3D sgx_epc_above_4g_end(&pcms->s= gx_epc); - } else { - machine->device_memory->base =3D - x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; - } - machine->device_memory->base =3D - ROUND_UP(machine->device_memory->base, 1 * GiB); + ROUND_UP(pc_above_4g_end(pcms), 1 * GiB); =20 if (pcmc->enforce_aligned_dimm) { /* size device region assuming 1G page max alignment per slot = */ @@ -926,10 +930,8 @@ void pc_memory_init(PCMachineState *pcms, if (pcmc->has_reserved_memory && machine->device_memory->base) { cxl_base =3D machine->device_memory->base + memory_region_size(&machine->device_memory->mr); - } else if (pcms->sgx_epc.size !=3D 0) { - cxl_base =3D sgx_epc_above_4g_end(&pcms->sgx_epc); } else { - cxl_base =3D x86ms->above_4g_mem_start + x86ms->above_4g_mem_s= ize; + cxl_base =3D pc_above_4g_end(pcms); } =20 e820_add_entry(cxl_base, cxl_size, E820_RESERVED); @@ -1016,7 +1018,6 @@ uint64_t pc_pci_hole64_start(void) PCMachineState *pcms =3D PC_MACHINE(qdev_get_machine()); PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); MachineState *ms =3D MACHINE(pcms); - X86MachineState *x86ms =3D X86_MACHINE(pcms); uint64_t hole64_start =3D 0; =20 if (pcms->cxl_devices_state.host_mr.addr) { @@ -1034,10 +1035,8 @@ uint64_t pc_pci_hole64_start(void) if (!pcmc->broken_reserved_end) { hole64_start +=3D memory_region_size(&ms->device_memory->mr); } - } else if (pcms->sgx_epc.size !=3D 0) { - hole64_start =3D sgx_epc_above_4g_end(&pcms->sgx_epc); } else { - hole64_start =3D x86ms->above_4g_mem_start + x86ms->above_4g_mem_s= ize; + hole64_start =3D pc_above_4g_end(pcms); } =20 return ROUND_UP(hole64_start, 1 * GiB); --=20 MST From nobody Thu May 16 14:49:15 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=1658867552; cv=none; d=zohomail.com; s=zohoarc; b=CZrooN7rpaCUgVgdlRG++U99AtvXZ8KA1iOpUPnbEZb6dKbc+KYDS7ogpCKDVOCMP7lvmoLgX0DB0lYR66qNEhwVseGsQq0qg4j22iykail15GDz6MvOk/P41dkShzXiJTSrzVBG/CNx68UcJRLT99vofZota8fBxWRjOLdcwrw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658867552; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RbFJ4IjlKg0vtuwmb/PSemNKVmNugGtzWH7AuT1jKw4=; b=aQRzYVR4e0HBfjNe97mnKk/7xTIp0uTJa++kmUwdZOaaWRx3hXq84/qwvhAlsAvPYq+PzS6yJwa9jLXv26X74uy9DhuvMXeZrTg2Fzhp8iKrSKmOgF7GZr7JaYBzYbQK1T+/bdIDIve224AupeKwW2nXvJCmWDav8VsaV7Iia+c= 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 1658867552005385.1244691042617; Tue, 26 Jul 2022 13:32:32 -0700 (PDT) Received: from localhost ([::1]:36872 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGRED-0007xl-W4 for importer@patchew.org; Tue, 26 Jul 2022 16:32:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52420) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQG-0006TE-Iu for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:52 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:43569) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQE-00052k-TN for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:52 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-349-fj2cXy-wMuaOA3le85idaQ-1; Tue, 26 Jul 2022 15:40:48 -0400 Received: by mail-wm1-f70.google.com with SMTP id c17-20020a7bc011000000b003a2bfaf8d3dso8060177wmb.0 for ; Tue, 26 Jul 2022 12:40:48 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id h9-20020a5d4fc9000000b0021e6277bc50sm14661858wrw.36.2022.07.26.12.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864450; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=RbFJ4IjlKg0vtuwmb/PSemNKVmNugGtzWH7AuT1jKw4=; b=fnNiOMmDxFhRNdPBwm+37DbN2xPSdydMDsm++GT2/xVE1Fa/I5WJJpRtnRUX/HXh4zzRI+ D/1MNG4etCBqCf2tP+5vC5wynfGDhnbunwFUDzFpNp9+1TG2UzvVsnRLGtWoU2f82XVXn/ BFDOMP+anpGbLk4Hn74sFHVaRxNYxpA= X-MC-Unique: fj2cXy-wMuaOA3le85idaQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=RbFJ4IjlKg0vtuwmb/PSemNKVmNugGtzWH7AuT1jKw4=; b=zlyMCOjwcNqruvvMbK+F80LfgXgyGDB8I4NVFNV3ug+Grm5SnYjyJKNGyx/VeTlJaC a/zryrt0FXNF8cidvPSe0NK33rYso0hWF3SVJMdFlO3KVh2bi987W6apgexM0GgxDUiL 7umOH5o2DMCMvQj9i9ZSLGGCK+eNx8lMZ50KYtcvBrsQ8wcDuc7UsRrD2x57qwVXhMAg y2H4OMC8N1m/TpjQ9T7KnQprZPsg3AQ28ONTdJ3xLbFNQlspBawIUpduvPYUIJuYKKs+ 2PWJkt24VV/LzS362nSXrOfKx2T1C6O2xlz+A5oJyOn2RBWI5b9BfWuDfXQzd7Nxdhve R33Q== X-Gm-Message-State: AJIora+LWT70TiwKNbFC3VqOByOFY1dOTqyHUvfv1S1oesNiCQHxRZSc ZiSU6eEGmRF70B+acyIkz3yD3WjoUIUm4jCz/SC+c/kqLM2yueXehB/whIB/cVzERlumSOIWwAu B38DTLP081zug4fjU8mhkcJ4JW3HtY0xFKAM8RdDeWMAD1zeNCnxv3ORiJmUN X-Received: by 2002:a05:6000:16ce:b0:21e:8450:1b6a with SMTP id h14-20020a05600016ce00b0021e84501b6amr8840656wrf.372.1658864447323; Tue, 26 Jul 2022 12:40:47 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v4pcY379Jncl+Sl8NgElkWGRXUb7E6Vpe0bznRnSsIcRb6TdF518+ZHJnvIHd2GvyLwF8WbQ== X-Received: by 2002:a05:6000:16ce:b0:21e:8450:1b6a with SMTP id h14-20020a05600016ce00b0021e84501b6amr8840635wrf.372.1658864446864; Tue, 26 Jul 2022 12:40:46 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:44 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Jonathan Cameron , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 09/16] i386/pc: factor out cxl range end to helper Message-ID: <20220726193858.177462-10-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658867554407100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins Move calculation of CXL memory region end to separate helper. This is in preparation to a future change that removes CXL range dependency on the CXL memory region, with the goal of allowing pc_pci_hole64_start() to be called before any memory region are initialized. Cc: Jonathan Cameron Signed-off-by: Joao Martins Acked-by: Igor Mammedov Message-Id: <20220719170014.27028-6-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index d1e20ccb27..cb27309e76 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -825,6 +825,25 @@ static hwaddr pc_above_4g_end(PCMachineState *pcms) return x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; } =20 +static uint64_t pc_get_cxl_range_end(PCMachineState *pcms) +{ + uint64_t start =3D 0; + + if (pcms->cxl_devices_state.host_mr.addr) { + start =3D pcms->cxl_devices_state.host_mr.addr + + memory_region_size(&pcms->cxl_devices_state.host_mr); + if (pcms->cxl_devices_state.fixed_windows) { + GList *it; + for (it =3D pcms->cxl_devices_state.fixed_windows; it; it =3D = it->next) { + CXLFixedWindow *fw =3D it->data; + start =3D fw->mr.addr + memory_region_size(&fw->mr); + } + } + } + + return start; +} + void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, @@ -1020,16 +1039,8 @@ uint64_t pc_pci_hole64_start(void) MachineState *ms =3D MACHINE(pcms); uint64_t hole64_start =3D 0; =20 - if (pcms->cxl_devices_state.host_mr.addr) { - hole64_start =3D pcms->cxl_devices_state.host_mr.addr + - memory_region_size(&pcms->cxl_devices_state.host_mr); - if (pcms->cxl_devices_state.fixed_windows) { - GList *it; - for (it =3D pcms->cxl_devices_state.fixed_windows; it; it =3D = it->next) { - CXLFixedWindow *fw =3D it->data; - hole64_start =3D fw->mr.addr + memory_region_size(&fw->mr); - } - } + if (pcms->cxl_devices_state.is_enabled) { + hole64_start =3D pc_get_cxl_range_end(pcms); } else if (pcmc->has_reserved_memory && ms->device_memory->base) { hole64_start =3D ms->device_memory->base; if (!pcmc->broken_reserved_end) { --=20 MST From nobody Thu May 16 14:49:15 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=1658865538; cv=none; d=zohomail.com; s=zohoarc; b=KpOu80ZfLhGA19F1jM77QP2Izdq2oyNontQYmKbDnOzSSGd+gpiRwrMEnUSWiwGfqiDQpbeTs7PBJUX1qnN8c626OENEz9O1QhEvScI/MibUEzIKaz/Z7jqqeE/QKKtYg/K2bEvlYS4Zu7WdMz4zgemtrIpDWM58a4ysTTtAr+k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658865538; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LppvYmBYIc3J2UR5ly1bIdgZ+ZbkH9f8vVFSDz8MN2g=; b=QX3vd71Ql5wYGQL+SNgWn+toH5gXyWwpPk3sTsf672qKViFWQ7+fKbSSKv5vJpwgwC9vOIGHOtAWAw8eJ7jsGn6R2H6XxGAeqt1VVni6Ax2inWu1AhqcCdRwAJ+OTU0Zx2vQ3skXowmHAsK/76J+59cs7ccMLxo7gD2glE20Ra8= 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 1658865538852625.650655612148; Tue, 26 Jul 2022 12:58:58 -0700 (PDT) Received: from localhost ([::1]:56394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQhl-0003Y7-Ph for importer@patchew.org; Tue, 26 Jul 2022 15:58:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQL-0006bq-B9 for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:54638) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQI-00053G-Ly for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:56 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-647-EJ3lkLt-PLSHxTqrKQW24Q-1; Tue, 26 Jul 2022 15:40:50 -0400 Received: by mail-wm1-f70.google.com with SMTP id n30-20020a05600c501e00b003a3264465ebso982870wmr.1 for ; Tue, 26 Jul 2022 12:40:50 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id o27-20020a5d58db000000b0021d80f53324sm15047873wrf.7.2022.07.26.12.40.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864452; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=LppvYmBYIc3J2UR5ly1bIdgZ+ZbkH9f8vVFSDz8MN2g=; b=hbjOwhGLQDXeB9svywgtQxx40pjh4zEuvjZU9V7+EfGH6ufv3skG4x7H+VQql7hRaxBxGG s3id//WywjE6vgw/3CoK2kiGnbV0XAyIMOdfjz+byBWyhRNl4FI95boV280bvdko8EuF1q hC8SRgJIfRCeXewNO70ulLwgW+gMr8I= X-MC-Unique: EJ3lkLt-PLSHxTqrKQW24Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=LppvYmBYIc3J2UR5ly1bIdgZ+ZbkH9f8vVFSDz8MN2g=; b=s2ZS3PkLXEf34aRvZ1QDECozP98eBvArPDJZ/pUxU0wJP9ToHG6ETbcGdFRkovuFz2 2FlKe2pKzHvh7hWk3Xk4h56Rr0+dGP+pyAGcOdCvZr9E5hGZ9wdhPDp5kOUeVLQg1aq3 BvkctloIpTh4EJMbKATLxLKNaVx5zKXH725FZhLqwmmdO/wDrddGY1BZKVuu4SyhEW42 2Oo6irD2b11Pfu504KcikLfiQc8ljh/jBHgPJes0LpygMkASOjBZuTH4d3EP/Th3/wuQ /fmAIFx8vOrNhVU438bQpeYUMlMBLSzX5PnPyQwEFi3uyl6s6XWtmKppnw2UWJSeVk1i 525w== X-Gm-Message-State: AJIora8hUQKoM17tX8oo8fRMoQvM0xHQ52T+acnTJ7fAp3/A2R7gnU8o vlAgdUV9iE9LjyzGY6RmpcYb5tyc9w/K/CWYtw9IeYLatONSrYo8xF0yP/FBuQJiIYwEEKZrf5P E+r6LU0CM+eRAmUnoMFEzIke0EzWQYcgApWRIp9D6LkD+qWYwNV0ZcYqi0tOj X-Received: by 2002:adf:fd09:0:b0:21e:c912:151f with SMTP id e9-20020adffd09000000b0021ec912151fmr91560wrr.302.1658864449449; Tue, 26 Jul 2022 12:40:49 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vS/T5d2cVpJD6Nml4MxpUuHncOK9Zp0vukuF3t6aw4hes5yiethlii5G62svae1GvIok9drg== X-Received: by 2002:adf:fd09:0:b0:21e:c912:151f with SMTP id e9-20020adffd09000000b0021ec912151fmr91537wrr.302.1658864449180; Tue, 26 Jul 2022 12:40:49 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:47 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Jonathan Cameron , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 10/16] i386/pc: factor out cxl range start to helper Message-ID: <20220726193858.177462-11-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658865540744100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins Factor out the calculation of the base address of the memory region. It will be used later on for the cxl range end counterpart calculation and as well in pc_memory_init() CXL memory region initialization, thus avoiding duplication. Cc: Jonathan Cameron Signed-off-by: Joao Martins Acked-by: Igor Mammedov Message-Id: <20220719170014.27028-7-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index cb27309e76..9e1a067c41 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -825,6 +825,22 @@ static hwaddr pc_above_4g_end(PCMachineState *pcms) return x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; } =20 +static uint64_t pc_get_cxl_range_start(PCMachineState *pcms) +{ + PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); + MachineState *machine =3D MACHINE(pcms); + hwaddr cxl_base; + + if (pcmc->has_reserved_memory && machine->device_memory->base) { + cxl_base =3D machine->device_memory->base + + memory_region_size(&machine->device_memory->mr); + } else { + cxl_base =3D pc_above_4g_end(pcms); + } + + return cxl_base; +} + static uint64_t pc_get_cxl_range_end(PCMachineState *pcms) { uint64_t start =3D 0; @@ -946,13 +962,7 @@ void pc_memory_init(PCMachineState *pcms, MemoryRegion *mr =3D &pcms->cxl_devices_state.host_mr; hwaddr cxl_size =3D MiB; =20 - if (pcmc->has_reserved_memory && machine->device_memory->base) { - cxl_base =3D machine->device_memory->base - + memory_region_size(&machine->device_memory->mr); - } else { - cxl_base =3D pc_above_4g_end(pcms); - } - + cxl_base =3D pc_get_cxl_range_start(pcms); e820_add_entry(cxl_base, cxl_size, E820_RESERVED); memory_region_init(mr, OBJECT(machine), "cxl_host_reg", cxl_size); memory_region_add_subregion(system_memory, cxl_base, mr); --=20 MST From nobody Thu May 16 14:49:15 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=1658867842; cv=none; d=zohomail.com; s=zohoarc; b=BBY5Rf92kD6d/N2+ZJOM6tLomqBSVkRAulk2hg+qW/MB33kXSv5Qm6tgKA07XDWIOBQnMjPcWi8k7n3o1sZwDKJZJn52u0CuHxHy4Ng6VoqVf8YUj3OvgKHKbAOKeuDzk+JZci292HqQ+drZzTsTimTahEWjUutHdWmKncmVKbQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658867842; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zRD3eNODHvhKMSWjHVPxp/ZWAeCDc7dW3wSL1DOx364=; b=ehV0g3iQHVYOExI7L25iqA14RoE/42XBi8wdJ2sSP7W6wS+XdVOuPawQ2LWnZJaCnRRmzs3y/GRhnXvp98kt6+zkAwQ1UMd74oVMMK7tCqlVVTDrLM1uDaND49buzEc1nGyrGjU2hgYf4z2dUyaokIiLX0fcKQnD6pQUwNpYRD4= 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 1658867842264378.3752019448028; Tue, 26 Jul 2022 13:37:22 -0700 (PDT) Received: from localhost ([::1]:43044 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGRIu-00048a-HQ for importer@patchew.org; Tue, 26 Jul 2022 16:37:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQN-0006hp-9G for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:59 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:24938) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQL-00053k-Jz for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:40:58 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-614-8oeMV62lMfym5pwEH50Y1w-1; Tue, 26 Jul 2022 15:40:53 -0400 Received: by mail-wm1-f72.google.com with SMTP id i184-20020a1c3bc1000000b003a026f48333so8030028wma.4 for ; Tue, 26 Jul 2022 12:40:53 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id c23-20020a05600c4a1700b003a3170a7af9sm17493277wmp.4.2022.07.26.12.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864456; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=zRD3eNODHvhKMSWjHVPxp/ZWAeCDc7dW3wSL1DOx364=; b=G2EDTig4S/mDkVXzfzaRo36H9d2ERK7ete5XmbPBnE6cJ5XbiRzAvk/IOVoF3Ync5naF+x r5cIl8MVkBj6yT8DnIororhZgVwMVW6YZylxpVKPo9ib03om7NOgmjeab1yLvap3GTUT1c ORefitNUAiXvQ5WoMg9jb25Kg0ePybo= X-MC-Unique: 8oeMV62lMfym5pwEH50Y1w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=zRD3eNODHvhKMSWjHVPxp/ZWAeCDc7dW3wSL1DOx364=; b=QU+B1jM89ZQygsLWwbfUVe1T9llB4QeksUDaPPUEsKtH5lGI/oJsWoBkZLSfaTfoJZ 5R6bzw4SzMUn3aqU1Gi8CXy97uGL0RdgaBKdGHg0rbIG2IZgLAL+8euN6PNdoYfHOcki eJqjwYPtbvxeLmM2AbBF//m7WrvfyiQoa8IH0/5JxEd2YaXK2AV/T6ByoFAdW7Jl1L8U Re46D67Jy7yfvPzwpPIuBXM7hqGS7byeCvRSVQiQIIZGYNpaoPzcNNRy+s7QU0C9Vnzu f+GsHyw+0D6e/8HzbFYePwxRJIQdR7Y5x8iDwESIgLA8lgmN0c5kfIMqtP3tq4EgO6N+ kWTA== X-Gm-Message-State: AJIora98FOxlKidWyuIAN8PyPZXKNZbobPJdmZBdu2IXcx022InobqmN NybMJzhia6Im0JBoha2ibX5A1hvOd/dbzZYmSSdjcmkPO9DjvkHAgyia3r1eWrL/J9XptJBe6xz fL1XIQEx+rh4oVJwO8UpeOtn6Y+MIzGZRF+rkQYFyhfrcTaPKFtWctfDb9zkY X-Received: by 2002:a05:600c:4110:b0:3a3:33cd:3984 with SMTP id j16-20020a05600c411000b003a333cd3984mr502965wmi.128.1658864451904; Tue, 26 Jul 2022 12:40:51 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u56eiiD+vtpR6T392sG2r8SK3E7GiMkCu3blIKkzGWSWYPBG+8DCoTOTd/kMNEDU20yIcCdA== X-Received: by 2002:a05:600c:4110:b0:3a3:33cd:3984 with SMTP id j16-20020a05600c411000b003a333cd3984mr502947wmi.128.1658864451537; Tue, 26 Jul 2022 12:40:51 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:49 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Jonathan Cameron , Igor Mammedov , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 11/16] i386/pc: handle unitialized mr in pc_get_cxl_range_end() Message-ID: <20220726193858.177462-12-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658867844206100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins Remove pc_get_cxl_range_end() dependency on the CXL memory region, and replace with one that does not require the CXL host_mr to determine the start of CXL start. This in preparation to allow pc_pci_hole64_start() to be called early in pc_memory_init(), handle CXL memory region end when its underlying memory region isn't yet initialized. Cc: Jonathan Cameron Signed-off-by: Joao Martins Message-Id: <20220719170014.27028-8-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Acked-by: Igor Mammedov --- hw/i386/pc.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 9e1a067c41..611eb197da 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -843,17 +843,15 @@ static uint64_t pc_get_cxl_range_start(PCMachineState= *pcms) =20 static uint64_t pc_get_cxl_range_end(PCMachineState *pcms) { - uint64_t start =3D 0; + uint64_t start =3D pc_get_cxl_range_start(pcms) + MiB; =20 - if (pcms->cxl_devices_state.host_mr.addr) { - start =3D pcms->cxl_devices_state.host_mr.addr + - memory_region_size(&pcms->cxl_devices_state.host_mr); - if (pcms->cxl_devices_state.fixed_windows) { - GList *it; - for (it =3D pcms->cxl_devices_state.fixed_windows; it; it =3D = it->next) { - CXLFixedWindow *fw =3D it->data; - start =3D fw->mr.addr + memory_region_size(&fw->mr); - } + if (pcms->cxl_devices_state.fixed_windows) { + GList *it; + + start =3D ROUND_UP(start, 256 * MiB); + for (it =3D pcms->cxl_devices_state.fixed_windows; it; it =3D it->= next) { + CXLFixedWindow *fw =3D it->data; + start +=3D fw->size; } } =20 --=20 MST From nobody Thu May 16 14:49:15 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=1658865936; cv=none; d=zohomail.com; s=zohoarc; b=C6nBWYETa/tNP24xAfNKxklFmKesU94IallHQWc7tfrCNGlMhjXPwtQI4AG/5fS+3Kq0PykqxVO+nXqxm3R4C6y0thXd+A9ONMV5Wjs3ffhrqF0/hiEfcJ9O2KKWDq+8oBr0XQ6VMHNt/nUfqiRT6iwvHDpBtVv0Qc9fwkGsb4c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658865936; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eSDxuMr2yO/y9xlkkw2ZnyqCh3O55Tzi7ePwLA2HERQ=; b=eyscxO0saWMRv+aFoKwqPCVTagTduNo+h1zW/1e4YWY/BX3B/XwUAgZgZg63pWta1VBpM9vFc8I8huSiMqH8XvTsGYliqSdYDn+VpSnpcqPeQ4nF7ikx6oM/LTVpi//yVQjEECBC7f4Ruqv46b3MMH1EeArobE569FbFl2s5laM= 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 1658865936682611.4564968286273; Tue, 26 Jul 2022 13:05:36 -0700 (PDT) Received: from localhost ([::1]:34662 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQoB-0008LM-IC for importer@patchew.org; Tue, 26 Jul 2022 16:05:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52528) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQS-0006xZ-Ip for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:23633) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQQ-00055c-SF for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:04 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-352-TgILRSu-MPuoaf8EX5Jt9Q-1; Tue, 26 Jul 2022 15:40:55 -0400 Received: by mail-wm1-f72.google.com with SMTP id v24-20020a7bcb58000000b003a37681b861so620271wmj.9 for ; Tue, 26 Jul 2022 12:40:55 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id f18-20020a7bc8d2000000b003a327b98c0asm18252299wml.22.2022.07.26.12.40.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=eSDxuMr2yO/y9xlkkw2ZnyqCh3O55Tzi7ePwLA2HERQ=; b=f/6QqvFDwdnk34AOfDb7iCoAmyZoBgbf/edi3CfiQn2qpkydfhechuBCe7JGYOk0krFGZv KKW+uSs4NBVXHEGDSJow5y+jKShWdIl2pzKq1zFH1BVQfvsiXc1lumGCmDYkE3y5kVxE0K nb2sC2QOk/O2+VMyPtt2tg9xcFC0+TM= X-MC-Unique: TgILRSu-MPuoaf8EX5Jt9Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=eSDxuMr2yO/y9xlkkw2ZnyqCh3O55Tzi7ePwLA2HERQ=; b=cLAFY9M5JgFCtLw5UkmmLNgfwQOgMJxLJ3YkQTyhl9roLi7PteXJ7BfOjiRFn4xQYb 4bGQoSSz8r4j3nMIkXc3H3ePEr+H6yEdqAPXHqXh0sQ+yiK+hUQkabZrNMJp1K3acPwO xaFRUQ6vGuf6vGZR79dy2P2yHZCzXGcHPshUweiFNl0txKUG9rCfbIqatcHBi4UoNgXf WzhUkwOMjwcLrHuivBY2dD3xev9DANcRGE9jILas4U2dSQ69/8W1b8+p+ibsiVC+AS4x dZ2tS2NeZAKx2KypPqgVVe3LJD4yV+sZY+LdGPVMtqG+CahsPeBJ6jcIXvRMjaX/Gub1 sBXA== X-Gm-Message-State: AJIora+NxiaKIAPS3PKsomnVi5W/jNHH1Od6gp+icaYyH743s2OS5ExH mVjdONU6MzeSm4sLYVkjO4IoJHqve69t/nmtCkW+6FUmNggvQgyBAkwktq3INK0o0MbvHk4Dtyo gflUlGO491+PmvPdRKMV/3oOiblNeNFHQpFtY9tCh0qkvibG8UBpOyzVVqwVn X-Received: by 2002:adf:d84e:0:b0:21e:bdc0:2847 with SMTP id k14-20020adfd84e000000b0021ebdc02847mr1148072wrl.582.1658864454276; Tue, 26 Jul 2022 12:40:54 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tfYtUfV+HduJUBm1twTmFb9wm50p57L+ZKtrR1VmhetLjCFmB5fpyrXHEpfN6pb+5MYIfr4A== X-Received: by 2002:adf:d84e:0:b0:21e:bdc0:2847 with SMTP id k14-20020adfd84e000000b0021ebdc02847mr1148057wrl.582.1658864453957; Tue, 26 Jul 2022 12:40:53 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:51 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Jonathan Cameron , Igor Mammedov , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 12/16] i386/pc: factor out device_memory base/size to helper Message-ID: <20220726193858.177462-13-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658865937600100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins Move obtaining hole64_start from device_memory memory region base/size into an helper alongside correspondent getters in pc_memory_init() when the hotplug range is unitialized. While doing that remove the memory region based logic from this newly added helper. This is the final step that allows pc_pci_hole64_start() to be callable at the beginning of pc_memory_init() before any memory regions are initialized. Cc: Jonathan Cameron Signed-off-by: Joao Martins Acked-by: Igor Mammedov Message-Id: <20220719170014.27028-9-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 611eb197da..ebc27e4cb7 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -825,15 +825,36 @@ static hwaddr pc_above_4g_end(PCMachineState *pcms) return x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; } =20 -static uint64_t pc_get_cxl_range_start(PCMachineState *pcms) +static void pc_get_device_memory_range(PCMachineState *pcms, + hwaddr *base, + ram_addr_t *device_mem_size) { PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); MachineState *machine =3D MACHINE(pcms); - hwaddr cxl_base; + ram_addr_t size; + hwaddr addr; =20 - if (pcmc->has_reserved_memory && machine->device_memory->base) { - cxl_base =3D machine->device_memory->base - + memory_region_size(&machine->device_memory->mr); + size =3D machine->maxram_size - machine->ram_size; + addr =3D ROUND_UP(pc_above_4g_end(pcms), 1 * GiB); + + if (pcmc->enforce_aligned_dimm) { + /* size device region assuming 1G page max alignment per slot */ + size +=3D (1 * GiB) * machine->ram_slots; + } + + *base =3D addr; + *device_mem_size =3D size; +} + +static uint64_t pc_get_cxl_range_start(PCMachineState *pcms) +{ + PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); + hwaddr cxl_base; + ram_addr_t size; + + if (pcmc->has_reserved_memory) { + pc_get_device_memory_range(pcms, &cxl_base, &size); + cxl_base +=3D size; } else { cxl_base =3D pc_above_4g_end(pcms); } @@ -920,7 +941,7 @@ void pc_memory_init(PCMachineState *pcms, /* initialize device memory address space */ if (pcmc->has_reserved_memory && (machine->ram_size < machine->maxram_size)) { - ram_addr_t device_mem_size =3D machine->maxram_size - machine->ram= _size; + ram_addr_t device_mem_size; =20 if (machine->ram_slots > ACPI_MAX_RAM_SLOTS) { error_report("unsupported amount of memory slots: %"PRIu64, @@ -935,13 +956,7 @@ void pc_memory_init(PCMachineState *pcms, exit(EXIT_FAILURE); } =20 - machine->device_memory->base =3D - ROUND_UP(pc_above_4g_end(pcms), 1 * GiB); - - if (pcmc->enforce_aligned_dimm) { - /* size device region assuming 1G page max alignment per slot = */ - device_mem_size +=3D (1 * GiB) * machine->ram_slots; - } + pc_get_device_memory_range(pcms, &machine->device_memory->base, &d= evice_mem_size); =20 if ((machine->device_memory->base + device_mem_size) < device_mem_size) { @@ -1046,13 +1061,14 @@ uint64_t pc_pci_hole64_start(void) PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); MachineState *ms =3D MACHINE(pcms); uint64_t hole64_start =3D 0; + ram_addr_t size =3D 0; =20 if (pcms->cxl_devices_state.is_enabled) { hole64_start =3D pc_get_cxl_range_end(pcms); - } else if (pcmc->has_reserved_memory && ms->device_memory->base) { - hole64_start =3D ms->device_memory->base; + } else if (pcmc->has_reserved_memory && (ms->ram_size < ms->maxram_siz= e)) { + pc_get_device_memory_range(pcms, &hole64_start, &size); if (!pcmc->broken_reserved_end) { - hole64_start +=3D memory_region_size(&ms->device_memory->mr); + hole64_start +=3D size; } } else { hole64_start =3D pc_above_4g_end(pcms); --=20 MST From nobody Thu May 16 14:49:15 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=1658865545; cv=none; d=zohomail.com; s=zohoarc; b=h4BV/+8sZH2fk0wdH+KOM31fliJDQ2tBuoBNW4i+7nuCMirCgqGwW5+OONt0E7AXj3Nw2JANKQQSdiaCih3/629RPqrgEV9wHtEGfaTe96a6Rn2LMV2UHrMUwJzODG1n5HLogwa6J6Z84URxPuC/CbaTNgwh0eR7gqMC3LoVO9w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658865545; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0OE3WOnbj80jVhzsEcSnnThUB452X76K0rxqRQpD39Y=; b=bLmHZj33F29lFOL4vQ7tr/gB2Y3P+odnlQq87KCR9wSh/prmWQjsI7LTQAVuXkWqMJ66+HGf9P7dFMLiSCEdwaZj4kIzx8DPAj+ci3HK7GFU4rkKY4nEUtX0eySjwFY7asqcK2g4RH79rDLuiycL65KUm93ajRqB90NlNiCsz44= 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 1658865545704417.386569547912; Tue, 26 Jul 2022 12:59:05 -0700 (PDT) Received: from localhost ([::1]:56870 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQhs-0003ri-Mq for importer@patchew.org; Tue, 26 Jul 2022 15:59:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52502) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQQ-0006qc-HH for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:25074) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQO-00055S-VN for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:02 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-62-ZmSYtJBxNPCDWlx_oxEevQ-1; Tue, 26 Jul 2022 15:40:59 -0400 Received: by mail-wm1-f69.google.com with SMTP id v18-20020a05600c215200b003a2fea66b7cso5689658wml.4 for ; Tue, 26 Jul 2022 12:40:57 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id o2-20020a05600c510200b003a2d6f26babsm20044682wms.3.2022.07.26.12.40.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864460; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=0OE3WOnbj80jVhzsEcSnnThUB452X76K0rxqRQpD39Y=; b=AO7FpbcMq273N6FLzGKZMIM6dGgXuAwPacDbrr1wRsJ9uvB1LbCVaOOnk1ASpdwrtwSGoM lToO1WZXIMa4Jxi16gHZuNHbJtBCzPHZgE/3TpPfQuNtQV+2wK8rutJbC4tK6Iign6crBF JU6AZudcDSETQP5Vcwb3C68B4khhJVs= X-MC-Unique: ZmSYtJBxNPCDWlx_oxEevQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=0OE3WOnbj80jVhzsEcSnnThUB452X76K0rxqRQpD39Y=; b=yC0y7yNvCd/NlqgjI1H6ifrHFd0/TvZSpp/e5srf9Ju6qCkRK3Xwy0Y6SFEhiKATJJ s+PVTVONbIO1z6vhtVU+qZrsetKOswv8YzMNn0ytFEO7eusm2JA+z9KSRrXHyJtvHKns nCuy0odBVBDSq5OpCVxfTWykLY7yygVpdikpAs5A6KjS8iu5gf2CC/b9W5aGrjaWt9TY /CtaP04yYAn9QAK26jbq6f1JV7dXOhK4jBracMmqXLhshmeDLGDgVGUyU7GpgG+r+MkX s22Kx+WzI7l1vFWk5VcQc8wJDoEKOrsuNLey/U3tvKkqoI/85TAcB3FkD2AtShspZFwW NkLQ== X-Gm-Message-State: AJIora9gPe+59iVVHm+xq4zzF3lCGBDKJD+2m2J/9NDcwsHwBUIg/mgR DxR51OJoHbI0LRIb2ZruOgdvBJ6JKO3HVJwlet096Fp+faj8x1Guy8f71VMreHCgVnRcELamnvR gj7vkD45IDt4yntLSPvVB2n5qWQ+s3yAwFRu5PK8MUovjLiJsuG7XVZCVFKU0 X-Received: by 2002:adf:e652:0:b0:21d:6e43:3ec4 with SMTP id b18-20020adfe652000000b0021d6e433ec4mr12753248wrn.358.1658864456658; Tue, 26 Jul 2022 12:40:56 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vYveOIjUwsEIYmbQ3KIkgMWjSQN1oLJUYPgUgnbVCdbOubH7qFzJ7kqSczMgS3L2wrpvxerA== X-Received: by 2002:adf:e652:0:b0:21d:6e43:3ec4 with SMTP id b18-20020adfe652000000b0021d6e433ec4mr12753227wrn.358.1658864456259; Tue, 26 Jul 2022 12:40:56 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:54 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 13/16] i386/pc: bounds check phys-bits against max used GPA Message-ID: <20220726193858.177462-14-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658865546535100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins Calculate max *used* GPA against the CPU maximum possible address and error out if the former surprasses the latter. This ensures max used GPA is reacheable by configured phys-bits. Default phys-bits on Qemu is TCG_PHYS_ADDR_BITS (40) which is enough for the CPU to address 1Tb (0xff ffff ffff) or 1010G (0xfc ffff ffff) in AMD hosts with IOMMU. This is preparation for AMD guests with >1010G, where it will want relocate ram-above-4g to be after 1Tb instead of 4G. Signed-off-by: Joao Martins Acked-by: Igor Mammedov Message-Id: <20220719170014.27028-10-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index ebc27e4cb7..56d8c179ea 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -879,6 +879,18 @@ static uint64_t pc_get_cxl_range_end(PCMachineState *p= cms) return start; } =20 +static hwaddr pc_max_used_gpa(PCMachineState *pcms, uint64_t pci_hole64_si= ze) +{ + X86CPU *cpu =3D X86_CPU(first_cpu); + + /* 32-bit systems don't have hole64 thus return max CPU address */ + if (cpu->phys_bits <=3D 32) { + return ((hwaddr)1 << cpu->phys_bits) - 1; + } + + return pc_pci_hole64_start() + pci_hole64_size - 1; +} + void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, @@ -893,13 +905,28 @@ void pc_memory_init(PCMachineState *pcms, MachineClass *mc =3D MACHINE_GET_CLASS(machine); PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); X86MachineState *x86ms =3D X86_MACHINE(pcms); + hwaddr maxphysaddr, maxusedaddr; hwaddr cxl_base, cxl_resv_end =3D 0; + X86CPU *cpu =3D X86_CPU(first_cpu); =20 assert(machine->ram_size =3D=3D x86ms->below_4g_mem_size + x86ms->above_4g_mem_size); =20 linux_boot =3D (machine->kernel_filename !=3D NULL); =20 + /* + * phys-bits is required to be appropriately configured + * to make sure max used GPA is reachable. + */ + maxusedaddr =3D pc_max_used_gpa(pcms, pci_hole64_size); + maxphysaddr =3D ((hwaddr)1 << cpu->phys_bits) - 1; + if (maxphysaddr < maxusedaddr) { + error_report("Address space limit 0x%"PRIx64" < 0x%"PRIx64 + " phys-bits too low (%u)", + maxphysaddr, maxusedaddr, cpu->phys_bits); + exit(EXIT_FAILURE); + } + /* * Split single memory region and use aliases to address portions of i= t, * done for backwards compatibility with older qemus. --=20 MST From nobody Thu May 16 14:49:15 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=1658865953; cv=none; d=zohomail.com; s=zohoarc; b=mdvs0y4xy/c2gHbG+8GI1SVa45jlcL87haLL1cfHOY98jXDcXathCyNume9KschAnkkYZt8Mg7A8Qgtm3+uSSb598cct9eYv7OA3hnxIAgJ4l44s/6X+g8CmWHg/3v/Cz75r7nYcmFi9FuRsr+yKoboI5Fhu4lMLpIjOzmOpNC4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658865953; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6a3MW02k11wAmY93znZpNnBO7ZvESCIajRiQf6+imBs=; b=ARz/tx4zH4B6YpTyITU2GEX+v782I66+WnB5f2z7Tk+jreNWwdq770hlq1Buja26QBbmju4p/9w6+kEGaUHn8Yacx8BeMaQ4fNCYAW2cD91d/YfxsH0Qm4eZ+BPsH5DMpIUqBHs3Je22RQMAMQOlhxC0PKSZhwBTkF1b5iFNzMM= 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 1658865953847707.1424597355012; Tue, 26 Jul 2022 13:05:53 -0700 (PDT) Received: from localhost ([::1]:35224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQoS-0000SU-N7 for importer@patchew.org; Tue, 26 Jul 2022 16:05:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52526) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQS-0006w6-4B for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:29985) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQQ-00055W-8l for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:03 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-546-Co05Ou64PTW9HsZgTBjNCA-1; Tue, 26 Jul 2022 15:41:00 -0400 Received: by mail-wm1-f71.google.com with SMTP id k27-20020a05600c1c9b00b003a2fee19a80so10672424wms.1 for ; Tue, 26 Jul 2022 12:41:00 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id m184-20020a1c26c1000000b003a04722d745sm23188472wmm.23.2022.07.26.12.40.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:40:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864461; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=6a3MW02k11wAmY93znZpNnBO7ZvESCIajRiQf6+imBs=; b=f4tZh/OTTWl/z1Y3qN8mBFBwksnRuAMxgNk5MU017bCJ5aaQ0PdJfJnQRw9djUEuCkkmWI 4WrIJ97R3tYRd9jKufOpbGxT+w0VhUHp6mT95gmJb1nQRDdfBTo56TZojVctXpOA9IxozZ x8bRp8AEGbNnYngEEq5g6482in5qQK0= X-MC-Unique: Co05Ou64PTW9HsZgTBjNCA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=6a3MW02k11wAmY93znZpNnBO7ZvESCIajRiQf6+imBs=; b=5RVHmxyFoCs4voz+3+d3CeuX1nrn3iuu62BdWcSDrlNLneBioCKEpaDYYX/xzy9030 mszcbGN6b/C09NexNTT2Juw8965C7SkWA96Oiy096SJ+2lCqEjKAX6gbAeC3uyhU9Yf8 0UmmOCNWjXNr2GJgMCw9wyhHO8EzF6IRCmx+KTwOedW/jEeuwp9haEOfu5Q9dtmuuTnE PUDffcZAbMShrmDJLMYKY7UBuT+/BGnGKHfwCVpfpCQZndkLaIeYFTFi8JqZQAfdxaI8 baWRHeR9O8Ah2+aYBo3eFjhAgsblUKGp+5i7tnH6EoIoCCO/tSjjVtzvyMZs2CFox0rO rPEw== X-Gm-Message-State: AJIora8paMygiM+n52ICogTJ6UbGoFfx7U4jfBi4ojLty5hkKdMyf5oZ 0frjgxzUcGAE5FURR+iWYydvzO0L64SIhejdYSzjtwt0LjAJzgAWM1/390s1LpRY8/32xbLGD0O PW8kZxP/GGCKQFSeChHGiDeDArz+wBN2BrAPOS3px2joDfTfoFQBFfXf0PKA2 X-Received: by 2002:a05:6000:511:b0:21e:503e:d964 with SMTP id a17-20020a056000051100b0021e503ed964mr11678342wrf.306.1658864458913; Tue, 26 Jul 2022 12:40:58 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sTvOcXfPMg1//GjWCRj8o8HJuCl08L7U6Le0m3Sxb88mHjjvU9Gc20+wX4+3gGZNnb//BLDA== X-Received: by 2002:a05:6000:511:b0:21e:503e:d964 with SMTP id a17-20020a056000051100b0021e503ed964mr11678320wrf.306.1658864458549; Tue, 26 Jul 2022 12:40:58 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:56 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 14/16] i386/pc: relocate 4g start to 1T where applicable Message-ID: <20220726193858.177462-15-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658865955767100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins It is assumed that the whole GPA space is available to be DMA addressable, within a given address space limit, except for a tiny region before the 4G. Since Linux v5.4, VFIO validates whether the selected GPA is indeed valid i.e. not reserved by IOMMU on behalf of some specific devices or platform-defined restrictions, and thus failing the ioctl(VFIO_DMA_MAP) with -EINVAL. AMD systems with an IOMMU are examples of such platforms and particularly may only have these ranges as allowed: 0000000000000000 - 00000000fedfffff (0 .. 3.982G) 00000000fef00000 - 000000fcffffffff (3.983G .. 1011.9G) 0000010000000000 - ffffffffffffffff (1Tb .. 16Pb[*]) We already account for the 4G hole, albeit if the guest is big enough we will fail to allocate a guest with >1010G due to the ~12G hole at the 1Tb boundary, reserved for HyperTransport (HT). [*] there is another reserved region unrelated to HT that exists in the 256T boundary in Fam 17h according to Errata #1286, documeted also in "Open-Source Register Reference for AMD Family 17h Processors (PUB)" When creating the region above 4G, take into account that on AMD platforms the HyperTransport range is reserved and hence it cannot be used either as GPAs. On those cases rather than establishing the start of ram-above-4g to be 4G, relocate instead to 1Tb. See AMD IOMMU spec, section 2.1.2 "IOMMU Logical Topology", for more information on the underlying restriction of IOVAs. After accounting for the 1Tb hole on AMD hosts, mtree should look like: 0000000000000000-000000007fffffff (prio 0, i/o): alias ram-below-4g @pc.ram 0000000000000000-000000007fffffff 0000010000000000-000001ff7fffffff (prio 0, i/o): alias ram-above-4g @pc.ram 0000000080000000-000000ffffffffff If the relocation is done or the address space covers it, we also add the the reserved HT e820 range as reserved. Default phys-bits on Qemu is TCG_PHYS_ADDR_BITS (40) which is enough to address 1Tb (0xff ffff ffff). On AMD platforms, if a ram-above-4g relocation is attempted and the CPU wasn't configured with a big enough phys-bits, an error message will be printed due to the maxphysaddr vs maxusedaddr check previously added. Suggested-by: Igor Mammedov Signed-off-by: Joao Martins Acked-by: Igor Mammedov Message-Id: <20220719170014.27028-11-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 56d8c179ea..1c5c9e17c6 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -891,6 +891,40 @@ static hwaddr pc_max_used_gpa(PCMachineState *pcms, ui= nt64_t pci_hole64_size) return pc_pci_hole64_start() + pci_hole64_size - 1; } =20 +/* + * AMD systems with an IOMMU have an additional hole close to the + * 1Tb, which are special GPAs that cannot be DMA mapped. Depending + * on kernel version, VFIO may or may not let you DMA map those ranges. + * Starting Linux v5.4 we validate it, and can't create guests on AMD mach= ines + * with certain memory sizes. It's also wrong to use those IOVA ranges + * in detriment of leading to IOMMU INVALID_DEVICE_REQUEST or worse. + * The ranges reserved for Hyper-Transport are: + * + * FD_0000_0000h - FF_FFFF_FFFFh + * + * The ranges represent the following: + * + * Base Address Top Address Use + * + * FD_0000_0000h FD_F7FF_FFFFh Reserved interrupt address space + * FD_F800_0000h FD_F8FF_FFFFh Interrupt/EOI IntCtl + * FD_F900_0000h FD_F90F_FFFFh Legacy PIC IACK + * FD_F910_0000h FD_F91F_FFFFh System Management + * FD_F920_0000h FD_FAFF_FFFFh Reserved Page Tables + * FD_FB00_0000h FD_FBFF_FFFFh Address Translation + * FD_FC00_0000h FD_FDFF_FFFFh I/O Space + * FD_FE00_0000h FD_FFFF_FFFFh Configuration + * FE_0000_0000h FE_1FFF_FFFFh Extended Configuration/Device Messages + * FE_2000_0000h FF_FFFF_FFFFh Reserved + * + * See AMD IOMMU spec, section 2.1.2 "IOMMU Logical Topology", + * Table 3: Special Address Controls (GPA) for more information. + */ +#define AMD_HT_START 0xfd00000000UL +#define AMD_HT_END 0xffffffffffUL +#define AMD_ABOVE_1TB_START (AMD_HT_END + 1) +#define AMD_HT_SIZE (AMD_ABOVE_1TB_START - AMD_HT_START) + void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, @@ -914,6 +948,26 @@ void pc_memory_init(PCMachineState *pcms, =20 linux_boot =3D (machine->kernel_filename !=3D NULL); =20 + /* + * The HyperTransport range close to the 1T boundary is unique to AMD + * hosts with IOMMUs enabled. Restrict the ram-above-4g relocation + * to above 1T to AMD vCPUs only. + */ + if (IS_AMD_CPU(&cpu->env)) { + /* Bail out if max possible address does not cross HT range */ + if (pc_max_used_gpa(pcms, pci_hole64_size) >=3D AMD_HT_START) { + x86ms->above_4g_mem_start =3D AMD_ABOVE_1TB_START; + } + + /* + * Advertise the HT region if address space covers the reserved + * region or if we relocate. + */ + if (cpu->phys_bits >=3D 40) { + e820_add_entry(AMD_HT_START, AMD_HT_SIZE, E820_RESERVED); + } + } + /* * phys-bits is required to be appropriately configured * to make sure max used GPA is reachable. --=20 MST From nobody Thu May 16 14:49:15 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=1658866156; cv=none; d=zohomail.com; s=zohoarc; b=DODXC21xnZ0IS9n09eqQtVNZ/0WlHlb3O1WgYIV+e8JYTBhlCZlEp427eIFTneSc+C+i1vkyeYq/l+6qpYf4Pt1LNQ+zxy8l795njJY3cT7bXj8BXuZB/GkZTfYSDrv40oBlkXBax/LOstqCWot8sZ1nBIy/Y9JDnoG+qW2o9nM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658866156; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=V1IKCe7yIF2E/hPoISiqm0oVbyToOdynnJZQWYYPxCo=; b=PjMkc3VL9vTKlSk1WfZY02se3ujMOkPyXdHAt1vStLCOsZdznLm2jNUiZZHICAYSuj3kF93uW274MEUO/msvfunR11j0TMY74TvG0ixy/Mrm1tF3Tukzc/qT9mdIMQ8lML2v/2sAUS8KM97t9SqkTMkOggG1H5Sqq5OWGEGAskY= 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 165886615650530.35829873198145; Tue, 26 Jul 2022 13:09:16 -0700 (PDT) Received: from localhost ([::1]:41220 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQrj-0004nN-Ek for importer@patchew.org; Tue, 26 Jul 2022 16:09:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52558) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQW-00075f-Fj for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:51224) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQT-00055s-Jk for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:08 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-562-h7emPvgKPbe0yI0ZnFgQoQ-1; Tue, 26 Jul 2022 15:41:02 -0400 Received: by mail-wm1-f72.google.com with SMTP id k27-20020a05600c1c9b00b003a2fee19a80so10672461wms.1 for ; Tue, 26 Jul 2022 12:41:02 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id l3-20020a1c7903000000b003a320e6f011sm19980433wme.1.2022.07.26.12.40.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:41:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=V1IKCe7yIF2E/hPoISiqm0oVbyToOdynnJZQWYYPxCo=; b=Gu09TE4NrlRrMxPTuuLYRnHmcqX3VBldt+uwMnOyI1q7q4abG6zSARSlsKtPFQwDMUIYda FY+7NHJOdRq7emXSWUmc6gwWhGzDTjWoK8jcl3FAHF6Tr3p3kmHR4DJlyTZLJSD4eS2Koh dBB1U0hShbYc/cu8k/KSd2NXpNDDpvk= X-MC-Unique: h7emPvgKPbe0yI0ZnFgQoQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=V1IKCe7yIF2E/hPoISiqm0oVbyToOdynnJZQWYYPxCo=; b=7GvNe8maZm4eoHgzMNONtVwWkGliAQ63M1QEbjwAFFFhHzPKmEE2F4gMCrxGFeFVEl x2emmzAzdz1ho5sJUV2Eghm7eP3uBKQ2DSwAgtYU/B3YCtWjD/GN8lkkiqdvJnjqwIMF 0q2Zc83P8LC0gsE0KQdjphHr9N/EXuNXcgtDLI7eanHWv7zy38f3iR0cPCRBegxJ1cuu SCO/EZbI5lH9PaOK9RGokPs0vwoHHWXjq8YasAXaNDBWPkJJRzsnP1zZ0wJ6EC2JDgSf 02Hd0a7CLN1tcz2rOIBgRXeAlQNbFQ+Gl1tiUK5v2wOTUn6ntlXeRhWTWvcUAIrfvCeo joIw== X-Gm-Message-State: AJIora8/mvzEAOvMf4FbcHOIp6wh4wxcuEJ21yDKKYtmTsr8VdsFNn6o phXwlvFAWkzmOkru7JttEE+J95wv5czL3FzezO79ik3CJEryYqJL0JBzRo5Ug7gAXBrtOABSjFQ PXYbwQ0YkAjMfGTHbmxNUumVEcGGwAzum3MWkGsHhMj0/mMf2/0D+pKj5PlLj X-Received: by 2002:a05:6000:144f:b0:21d:a3cc:a6fa with SMTP id v15-20020a056000144f00b0021da3cca6famr11849264wrx.191.1658864461354; Tue, 26 Jul 2022 12:41:01 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sDP7z54pSBf0Nhy0UfGhgWgcZd3N4FgwAeD5CLGYbPbNAHqHF3fhK5T/rsgvRDPyFGqb0i4g== X-Received: by 2002:a05:6000:144f:b0:21d:a3cc:a6fa with SMTP id v15-20020a056000144f00b0021da3cca6famr11849243wrx.191.1658864460929; Tue, 26 Jul 2022 12:41:00 -0700 (PDT) Date: Tue, 26 Jul 2022 15:40:58 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Joao Martins , "Dr . David Alan Gilbert" , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 15/16] i386/pc: restrict AMD only enforcing of 1Tb hole to new machine type Message-ID: <20220726193858.177462-16-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@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.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658866157860100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Joao Martins The added enforcing is only relevant in the case of AMD where the range right before the 1TB is restricted and cannot be DMA mapped by the kernel consequently leading to IOMMU INVALID_DEVICE_REQUEST or possibly other kinds of IOMMU events in the AMD IOMMU. Although, there's a case where it may make sense to disable the IOVA relocation/validation when migrating from a non-amd-1tb-aware qemu to one that supports it. Relocating RAM regions to after the 1Tb hole has consequences for guest ABI because we are changing the memory mapping, so make sure that only new machine enforce but not older ones. Signed-off-by: Joao Martins Acked-by: Dr. David Alan Gilbert Acked-by: Igor Mammedov Message-Id: <20220719170014.27028-12-joao.m.martins@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/i386/pc.h | 1 + hw/i386/pc.c | 6 ++++-- hw/i386/pc_piix.c | 1 + hw/i386/pc_q35.c | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 01938fce4c..8435733bd6 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -118,6 +118,7 @@ struct PCMachineClass { bool has_reserved_memory; bool enforce_aligned_dimm; bool broken_reserved_end; + bool enforce_amd_1tb_hole; =20 /* generate legacy CPU hotplug AML */ bool legacy_cpu_hotplug; diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 1c5c9e17c6..7280c02ce3 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -951,9 +951,10 @@ void pc_memory_init(PCMachineState *pcms, /* * The HyperTransport range close to the 1T boundary is unique to AMD * hosts with IOMMUs enabled. Restrict the ram-above-4g relocation - * to above 1T to AMD vCPUs only. + * to above 1T to AMD vCPUs only. @enforce_amd_1tb_hole is only false = in + * older machine types (<=3D 7.0) for compatibility purposes. */ - if (IS_AMD_CPU(&cpu->env)) { + if (IS_AMD_CPU(&cpu->env) && pcmc->enforce_amd_1tb_hole) { /* Bail out if max possible address does not cross HT range */ if (pc_max_used_gpa(pcms, pci_hole64_size) >=3D AMD_HT_START) { x86ms->above_4g_mem_start =3D AMD_ABOVE_1TB_START; @@ -1902,6 +1903,7 @@ static void pc_machine_class_init(ObjectClass *oc, vo= id *data) pcmc->has_reserved_memory =3D true; pcmc->kvmclock_enabled =3D true; pcmc->enforce_aligned_dimm =3D true; + pcmc->enforce_amd_1tb_hole =3D true; /* BIOS ACPI tables: 128K. Other BIOS datastructures: less than 4K rep= orted * to be used at the moment, 32K should be enough for a while. */ pcmc->acpi_data_size =3D 0x20000 + 0x8000; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index aa191d405a..a5c65c1c35 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -451,6 +451,7 @@ static void pc_i440fx_7_0_machine_options(MachineClass = *m) m->alias =3D NULL; m->is_default =3D false; pcmc->legacy_no_rng_seed =3D true; + pcmc->enforce_amd_1tb_hole =3D false; compat_props_add(m->compat_props, hw_compat_7_0, hw_compat_7_0_len); compat_props_add(m->compat_props, pc_compat_7_0, pc_compat_7_0_len); } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 307910b33c..3a35193ff7 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -387,6 +387,7 @@ static void pc_q35_7_0_machine_options(MachineClass *m) pc_q35_7_1_machine_options(m); m->alias =3D NULL; pcmc->legacy_no_rng_seed =3D true; + pcmc->enforce_amd_1tb_hole =3D false; compat_props_add(m->compat_props, hw_compat_7_0, hw_compat_7_0_len); compat_props_add(m->compat_props, pc_compat_7_0, pc_compat_7_0_len); } --=20 MST From nobody Thu May 16 14:49:15 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=1658864891; cv=none; d=zohomail.com; s=zohoarc; b=Z82xQbtk0qRxe+Zr41lIHDQi8GBA+uLXIzpRGdxmin+A7OOWglIuF6hbOwiPr347WECFF1og3a2+27KCOC7U6DkJZ0Cs3jPvo9TqPIjDXsid81OgYbNFz8L/0Ka6Tpxc+pqb85ZA8F4VXD82/ZGCqFEuz6F23VT30hziLLCxHwY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658864891; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lcDZ+kvJCB8XhMtmG2zKvtJJoMu/uNhWnfYMk/wNzZ0=; b=P6m1OPU4bUcb3sBCSI9zmVU1cDkpEspf+PIsvkDNi0hOiDpHcpshmdgkdyndws9VwHQ30lvxcxePtYDpQVdho8vJysar4bhGNLBpKjkB0onfRa7DITQWsp5GzfQFL5tJ9kcejx67xihi0HZOrrbSuQFRwHZfvCE8uHj2HlVaqYs= 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 1658864891542489.44037328329694; Tue, 26 Jul 2022 12:48:11 -0700 (PDT) Received: from localhost ([::1]:36482 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oGQXK-0006Y8-IC for importer@patchew.org; Tue, 26 Jul 2022 15:48:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52564) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQX-00079B-CV for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:32180) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGQQV-000563-Di for qemu-devel@nongnu.org; Tue, 26 Jul 2022 15:41:09 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-179-Af-fJphZPYa6C0UAtYzzNA-1; Tue, 26 Jul 2022 15:41:04 -0400 Received: by mail-wm1-f69.google.com with SMTP id h65-20020a1c2144000000b003a30cae106cso10646682wmh.8 for ; Tue, 26 Jul 2022 12:41:04 -0700 (PDT) Received: from redhat.com ([2a06:c701:7424:0:3d16:86dc:de54:5671]) by smtp.gmail.com with ESMTPSA id o15-20020a05600c510f00b003a30fbde91dsm25264601wms.20.2022.07.26.12.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 12:41:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658864465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lcDZ+kvJCB8XhMtmG2zKvtJJoMu/uNhWnfYMk/wNzZ0=; b=SZyKBVZyW1Bt55w4rVhqJ12OeRnWD+QiW79GTdNdFJ4neyrzbp5llETyh7N1Qkj26BDEVI 1ERiAwSZfRKKrn5hOFHR/eUHYKZYWkWdUCpVexH3DJGYXDS2UlbonSpQ6802GE/FoLPbIj KNZzQX0PfaiXyt4grThxl/qR2r+hwaI= X-MC-Unique: Af-fJphZPYa6C0UAtYzzNA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=lcDZ+kvJCB8XhMtmG2zKvtJJoMu/uNhWnfYMk/wNzZ0=; b=YzOy1HrdrYk3K3Z3AgjnYnDHRqTiiWXy9BmJbwhNjT27smo196xX3Bj+siulhv56xe 9yft94PBALYByQ80aUmIHsUVsHccAYNaTySRKXFucgZ8OMpKkeOub7kqDcHhAShZEtIi QmIITTssVT0q1CvPBR7OwWsHLJqbKbfpSU/HHfkC4YUdb5zyPek3CuLBCJ/zcy7qr/rN AGFe0qzU5BQ5uhE8aZLfcllYEMG7Mxshf3TaZWiVp9AOfmxpT6MLV+tzEELhHDuWSmPF yeOQt9QITOF1AESYQ6jmnLWjaXBN/vzlUJlPbyveeoEI7Q7sE7ViU+7RD1byicW/HITq CK8Q== X-Gm-Message-State: AJIora+pc748I+3/AeLKkM5B1C2uEshAxdlqZhSqzZk3RzHt4fXFz4ME KMQA4sHsl8sgrOt7dehUSc8NzkOBV4TsvPJ2Wg0YL69lFF0/6nPbVrm9q40SjfmLMgtT4umXAfI ODCzSN8VgJSgjGNrM3lHeFZrAbXn9Gkb44GrUPZM/1756ZVQ5xFtVLk/Yxd5X X-Received: by 2002:a5d:4f82:0:b0:21e:b8b2:cbc3 with SMTP id d2-20020a5d4f82000000b0021eb8b2cbc3mr1650978wru.661.1658864463230; Tue, 26 Jul 2022 12:41:03 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vF6lwk7fGS5sVmjm+NSyovip5XgEy2rWFGFYkDwUGMcSb3XJK3Se2mQrF6qSk8J0+QiEsxnQ== X-Received: by 2002:a5d:4f82:0:b0:21e:b8b2:cbc3 with SMTP id d2-20020a5d4f82000000b0021eb8b2cbc3mr1650962wru.661.1658864462864; Tue, 26 Jul 2022 12:41:02 -0700 (PDT) Date: Tue, 26 Jul 2022 15:41:01 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jean-Philippe Brucker , Tina Zhang , Eric Auger Subject: [PULL 16/16] hw/virtio/virtio-iommu: Enforce power-of-two notify for both MAP and UNMAP Message-ID: <20220726193858.177462-17-mst@redhat.com> References: <20220726193858.177462-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220726193858.177462-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658864892700100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jean-Philippe Brucker Currently we only enforce power-of-two mappings (required by the QEMU notifier) for UNMAP requests. A MAP request not aligned on a power-of-two may be successfully handled by VFIO, and then the corresponding UNMAP notify will fail because it will attempt to split that mapping. Ensure MAP and UNMAP notifications are consistent. Fixes: dde3f08b5cab ("virtio-iommu: Handle non power of 2 range invalidatio= ns") Reported-by: Tina Zhang Signed-off-by: Jean-Philippe Brucker Message-Id: <20220718135636.338264-1-jean-philippe@linaro.org> Tested-by: Tina Zhang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio-iommu.c | 47 ++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 281152d338..62e07ec2e4 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -197,6 +197,32 @@ static gint interval_cmp(gconstpointer a, gconstpointe= r b, gpointer user_data) } } =20 +static void virtio_iommu_notify_map_unmap(IOMMUMemoryRegion *mr, + IOMMUTLBEvent *event, + hwaddr virt_start, hwaddr virt_e= nd) +{ + uint64_t delta =3D virt_end - virt_start; + + event->entry.iova =3D virt_start; + event->entry.addr_mask =3D delta; + + if (delta =3D=3D UINT64_MAX) { + memory_region_notify_iommu(mr, 0, *event); + } + + while (virt_start !=3D virt_end + 1) { + uint64_t mask =3D dma_aligned_pow2_mask(virt_start, virt_end, 64); + + event->entry.addr_mask =3D mask; + event->entry.iova =3D virt_start; + memory_region_notify_iommu(mr, 0, *event); + virt_start +=3D mask + 1; + if (event->entry.perm !=3D IOMMU_NONE) { + event->entry.translated_addr +=3D mask + 1; + } + } +} + static void virtio_iommu_notify_map(IOMMUMemoryRegion *mr, hwaddr virt_sta= rt, hwaddr virt_end, hwaddr paddr, uint32_t flags) @@ -215,19 +241,16 @@ static void virtio_iommu_notify_map(IOMMUMemoryRegion= *mr, hwaddr virt_start, =20 event.type =3D IOMMU_NOTIFIER_MAP; event.entry.target_as =3D &address_space_memory; - event.entry.addr_mask =3D virt_end - virt_start; - event.entry.iova =3D virt_start; event.entry.perm =3D perm; event.entry.translated_addr =3D paddr; =20 - memory_region_notify_iommu(mr, 0, event); + virtio_iommu_notify_map_unmap(mr, &event, virt_start, virt_end); } =20 static void virtio_iommu_notify_unmap(IOMMUMemoryRegion *mr, hwaddr virt_s= tart, hwaddr virt_end) { IOMMUTLBEvent event; - uint64_t delta =3D virt_end - virt_start; =20 if (!(mr->iommu_notify_flags & IOMMU_NOTIFIER_UNMAP)) { return; @@ -239,22 +262,8 @@ static void virtio_iommu_notify_unmap(IOMMUMemoryRegio= n *mr, hwaddr virt_start, event.entry.target_as =3D &address_space_memory; event.entry.perm =3D IOMMU_NONE; event.entry.translated_addr =3D 0; - event.entry.addr_mask =3D delta; - event.entry.iova =3D virt_start; =20 - if (delta =3D=3D UINT64_MAX) { - memory_region_notify_iommu(mr, 0, event); - } - - - while (virt_start !=3D virt_end + 1) { - uint64_t mask =3D dma_aligned_pow2_mask(virt_start, virt_end, 64); - - event.entry.addr_mask =3D mask; - event.entry.iova =3D virt_start; - memory_region_notify_iommu(mr, 0, event); - virt_start +=3D mask + 1; - } + virtio_iommu_notify_map_unmap(mr, &event, virt_start, virt_end); } =20 static gboolean virtio_iommu_notify_unmap_cb(gpointer key, gpointer value, --=20 MST