From nobody Mon Feb 9 09:33:54 2026 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1579763698; cv=none; d=zohomail.com; s=zohoarc; b=JjFVAoV7sULLoUjtMuSM2W+GpODu77rYcq5WBIs6MT2JXkk/zodZwoYZ9itLLIN9t7+Vjz66HLknYGcyzatBPhJo9eWDYP0ugI73wKtEO491df47pEfmVFqCae3BOt5+t12qwb4Fed/cU6lWxOH2+6/aNB2ZJn8nAo5C0Mueot8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579763698; h=Content-Type:Content-Transfer-Encoding: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=/cZSw7eZYA9nW+mh3jM5ZF40fdaxfgONBvpYjIhz74s=; b=i7uUwcwFGiSqF98T25HPfFN38kLzcF8YXazcN1RkRGsTBWyhpos7ApfSkqu0aLylbFH2s8K8tWpKW3wscdNdp0ikrpLDEfT1zsM+rJkoPHhP/vV2NT2hHkfjyVy+e7uFjDJqIdb+Nes1yZ/iWkEE4vlpabYFw0FzNrVmahqlIAA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1579763698953608.0493353742903; Wed, 22 Jan 2020 23:14:58 -0800 (PST) Received: from localhost ([::1]:52064 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuWhd-0002QP-CG for importer@patchew.org; Thu, 23 Jan 2020 02:14:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:37325) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuWdM-00060e-9o for qemu-devel@nongnu.org; Thu, 23 Jan 2020 02:10:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuWdL-00081T-0P for qemu-devel@nongnu.org; Thu, 23 Jan 2020 02:10:32 -0500 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:25816 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iuWdK-000816-T6 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 02:10:30 -0500 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-29-tjCQnRK2PFWGHJX1Q0dcNg-1; Thu, 23 Jan 2020 02:10:28 -0500 Received: by mail-wr1-f71.google.com with SMTP id u12so1298036wrt.15 for ; Wed, 22 Jan 2020 23:10:28 -0800 (PST) Received: from redhat.com (bzq-79-176-0-156.red.bezeqint.net. [79.176.0.156]) by smtp.gmail.com with ESMTPSA id g9sm1785074wro.67.2020.01.22.23.10.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2020 23:10:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579763430; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/cZSw7eZYA9nW+mh3jM5ZF40fdaxfgONBvpYjIhz74s=; b=R/RYeIlGW03YiRuxa/TFEOEJ4+ZGHX+evseO4o8y/Kr46VM0suUTJ8i+ximREsM0qqx64O T/FwkwMfBKxQ3+nX+Wj+Syuk8Q3hKrgt8uJuu0jwSpwmyXoV4XYD2EFFsfwqApfULldkMv anhZ3feQvebRKaN9uBz3yIhMS2CojRg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=mG4C1N5iHUE7eCiLg4lfrsmbX/tB8VxXvzlNPjmYI5U=; b=kmKnH7KvJxZV31wfqpbPLEYPsXFXcnJ8eXXd4baUbe4qWg+irwPShwzzcRHx8jnWK+ 31JeEcahrEBZFnLIv1cYwBBn1ZuRv6QqJRwHVrQxhgIp8KnflvuakliZATh78D4fDBkl lJ7qtmMHqsRlmYtmC6uBRtc3HLReMqYxJBrblMOo5Gz5dQVr60M1h7bv3+qKCZb+QqUO ktirHVBcuvECzA7KE8lK0ORbuCAk9FE8UrW56Akany6zqr21Gz0GgvY1TvbRIXEJZ2e5 Z4XiawFR+hdvs2AKPle2Ow+6NGSbvcX8pvTiX+z1S7PiXmwssikudpYoGim9g/C8AIpn JDzg== X-Gm-Message-State: APjAAAXiOtGhbpHnxeE4JUCxsGes+FX6qhZe+jqMMVlo0XYNZ/XvJl22 xL2CwLXjSGuVd+w88AOesjIIplEpLhIlxrYy9GvGsIENNCWPjqnA3UfXnuZAhrhIqbbLWChfKrL oCJ8g3wKFTnt+6Tg= X-Received: by 2002:a05:600c:2050:: with SMTP id p16mr2426153wmg.176.1579763427114; Wed, 22 Jan 2020 23:10:27 -0800 (PST) X-Google-Smtp-Source: APXvYqyHHHJubxE5lOoxtfMKsUHvN4O6KcszTMSQ5pFOujnyIQNmZuNdoQ131iNTXwGI4IcrF5viJw== X-Received: by 2002:a05:600c:2050:: with SMTP id p16mr2426128wmg.176.1579763426886; Wed, 22 Jan 2020 23:10:26 -0800 (PST) Date: Thu, 23 Jan 2020 02:10:24 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Subject: [PULL v3 06/18] acpi: cpuhp: introduce 'Command data 2' field Message-ID: <20200123070913.626488-7-mst@redhat.com> References: <20200123070913.626488-1-mst@redhat.com> MIME-Version: 1.0 In-Reply-To: <20200123070913.626488-1-mst@redhat.com> X-Mailer: git-send-email 2.24.1.751.gd10ce2899c X-Mutt-Fcc: =sent X-MC-Unique: tjCQnRK2PFWGHJX1Q0dcNg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 207.211.31.81 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Laszlo Ersek , Igor Mammedov Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Igor Mammedov No functional change in practice, patch only aims to properly document (in spec and code) intended usage of the reserved space. The new field is to be used for 2 purposes: - detection of modern CPU hotplug interface using CPHP_GET_NEXT_CPU_WITH_EVENT_CMD command. procedure will be described in follow up patch: "acpi: cpuhp: spec: add typical usecases" - for returning upper 32 bits of architecture specific CPU ID, for new CPHP_GET_CPU_ID_CMD command added by follow up patch: "acpi: cpuhp: add CPHP_GET_CPU_ID_CMD command" Change is backward compatible with 4.2 and older machines, as field was unconditionally reserved and always returned 0x0 if modern CPU hotplug interface was enabled. Signed-off-by: Igor Mammedov Message-Id: <1575896942-331151-8-git-send-email-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Laszlo Ersek --- docs/specs/acpi_cpu_hotplug.txt | 5 ++++- hw/acpi/cpu.c | 11 +++++++++++ hw/acpi/trace-events | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/specs/acpi_cpu_hotplug.txt b/docs/specs/acpi_cpu_hotplug.= txt index 8fb9ad22e6..9879f9ef7e 100644 --- a/docs/specs/acpi_cpu_hotplug.txt +++ b/docs/specs/acpi_cpu_hotplug.txt @@ -44,7 +44,10 @@ keeps the current value. =20 read access: offset: - [0x0-0x3] reserved + [0x0-0x3] Command data 2: (DWORD access) + if value last stored in 'Command field': + 0: reads as 0x0 + other values: reserved [0x4] CPU device status fields: (1 byte access) bits: 0: Device is enabled and may be used by guest diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c index 87f30a31d7..d475c06953 100644 --- a/hw/acpi/cpu.c +++ b/hw/acpi/cpu.c @@ -12,6 +12,7 @@ #define ACPI_CPU_FLAGS_OFFSET_RW 4 #define ACPI_CPU_CMD_OFFSET_WR 5 #define ACPI_CPU_CMD_DATA_OFFSET_RW 8 +#define ACPI_CPU_CMD_DATA2_OFFSET_R 0 =20 enum { CPHP_GET_NEXT_CPU_WITH_EVENT_CMD =3D 0, @@ -79,6 +80,16 @@ static uint64_t cpu_hotplug_rd(void *opaque, hwaddr addr= , unsigned size) } trace_cpuhp_acpi_read_cmd_data(cpu_st->selector, val); break; + case ACPI_CPU_CMD_DATA2_OFFSET_R: + switch (cpu_st->command) { + case CPHP_GET_NEXT_CPU_WITH_EVENT_CMD: + val =3D 0; + break; + default: + break; + } + trace_cpuhp_acpi_read_cmd_data2(cpu_st->selector, val); + break; default: break; } diff --git a/hw/acpi/trace-events b/hw/acpi/trace-events index 96b8273297..afbc77de1c 100644 --- a/hw/acpi/trace-events +++ b/hw/acpi/trace-events @@ -23,6 +23,7 @@ cpuhp_acpi_read_flags(uint32_t idx, uint8_t flags) "idx[0= x%"PRIx32"] flags: 0x%" cpuhp_acpi_write_idx(uint32_t idx) "set active cpu idx: 0x%"PRIx32 cpuhp_acpi_write_cmd(uint32_t idx, uint8_t cmd) "idx[0x%"PRIx32"] cmd: 0x%= "PRIx8 cpuhp_acpi_read_cmd_data(uint32_t idx, uint32_t data) "idx[0x%"PRIx32"] da= ta: 0x%"PRIx32 +cpuhp_acpi_read_cmd_data2(uint32_t idx, uint32_t data) "idx[0x%"PRIx32"] d= ata: 0x%"PRIx32 cpuhp_acpi_cpu_has_events(uint32_t idx, bool ins, bool rm) "idx[0x%"PRIx32= "] inserting: %d, removing: %d" cpuhp_acpi_clear_inserting_evt(uint32_t idx) "idx[0x%"PRIx32"]" cpuhp_acpi_clear_remove_evt(uint32_t idx) "idx[0x%"PRIx32"]" --=20 MST