From patchwork Thu Sep 21 23:41:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 9965011 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 4DEBA601C2 for ; Thu, 21 Sep 2017 23:54:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F57A26E5D for ; Thu, 21 Sep 2017 23:54:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 342BC296FE; Thu, 21 Sep 2017 23:54:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8F64026E5D for ; Thu, 21 Sep 2017 23:54:05 +0000 (UTC) Received: from localhost ([::1]:56036 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dvBIC-0001yW-KA for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Sep 2017 19:54:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45882) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dvBAD-0004mM-Qv for qemu-devel@nongnu.org; Thu, 21 Sep 2017 19:45:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dvBA9-00026i-Oh for qemu-devel@nongnu.org; Thu, 21 Sep 2017 19:45:49 -0400 Received: from mail-sn1nam02on0045.outbound.protection.outlook.com ([104.47.36.45]:5872 helo=NAM02-SN1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dvBA9-00025f-GT for qemu-devel@nongnu.org; Thu, 21 Sep 2017 19:45:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=E5azjI6WlpQSnxq5/6CZpyUtawHThpq2PNJHtELgS/s=; b=b7j/nZ+HeYGZVH9fW2etWgvhcsTUKd7c3IqUBd3/k0KEdRz8tWAOxx+JtqiZwHuWIEfJbGRikkJXbLIyRg+LH+y3A4ATTy2sRZEDgnHziIakMrvaV2dgVcrn+YtNXFb2qPeoLo81KK674Liy5YiMjfMXXIkrVay5C7AHRxCNqAY= Received: from BLUPR0201CA0035.namprd02.prod.outlook.com (10.163.116.45) by BLUPR0201MB1922.namprd02.prod.outlook.com (10.162.239.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 21 Sep 2017 23:45:42 +0000 Received: from BL2NAM02FT014.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::207) by BLUPR0201CA0035.outlook.office365.com (2a01:111:e400:52e7::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.8 via Frontend Transport; Thu, 21 Sep 2017 23:45:42 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2NAM02FT014.mail.protection.outlook.com (10.152.76.154) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Thu, 21 Sep 2017 23:45:41 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1dvBA5-00044y-1j; Thu, 21 Sep 2017 16:45:41 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dvBA4-0006jX-U4; Thu, 21 Sep 2017 16:45:40 -0700 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8LNjVX7016700; Thu, 21 Sep 2017 16:45:31 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dvB9v-0006iC-Jz; Thu, 21 Sep 2017 16:45:31 -0700 From: Alistair Francis To: Date: Thu, 21 Sep 2017 16:41:50 -0700 Message-ID: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23342.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(2980300002)(438002)(199003)(189002)(5003940100001)(575784001)(2906002)(6666003)(4326008)(2351001)(39060400002)(9786002)(478600001)(47776003)(36386004)(33646002)(305945005)(356003)(8676002)(76176999)(551934003)(50986999)(8936002)(106466001)(81156014)(118296001)(50466002)(81166006)(36756003)(63266004)(316002)(48376002)(50226002)(16586007)(2950100002)(189998001)(6916009)(54906003)(5660300001)(77096006)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0201MB1922; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2NAM02FT014; 1:/MfQi52k2T3CnDFvu2Ok1Gs6BODKEULcCM8qFEpu1QY1xW2jZcv0DT4P3JXBkPWTElHKYoeW367WIojfHVsYe343wkM5nxPbPtDJ9rbcLa7IBuxm1QJmpiN9lWuWclfz MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fe356f06-8896-4ac2-36ca-08d5014adebb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(8251501002)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BLUPR0201MB1922; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0201MB1922; 3:X7XhuHI8h4vtHeUMtjfnrT7GmOv7eHh6NihCpytAOKlMQPmknDRuGMeLWrXnlOs4cpqSuD4m4YciwgYKmEGhP2GLgZpxBF0yh+S35p0Jd08HnpOf0AUT4+nGvi8nddl9KH9gEuVdaljQL8fLWUswldpy2P3N+dttxLb4xOC8dPuil33X5FHNdY8sJw2a+zyCeKN/HsskqIgNIzFk4xC5kM38lESOtsJmk7KfZFv3oAXT+bE4c/fhg7OVSCZimZvCAVrD9YZyfFIWx75p6dHmB7VO1XHu59ktbCniZYsvT3JGfkNwOFVG/VpqXCypBMMutOYeaKlgovc1fKVDLi7ev9IRlscHwWbVA26kWxnAzUI=; 25:p4jEPGltX7HU/hhJfM6F0u83ClDMDq/WCd8VaUIyYDLRhj4XhOGiuDfmAC70h29+MARb3Pgvj0BDYzpp1bafpTCB0XhbAph+1Rr7JovZpn06029RKcAuqaAdcZE2SfzY0qTBhTtQc8jr3PPVC/zGdYfGbkTeKs3WsRoEpJIeVdLDQ2UMkPqmWaZFL2nuEQklPRRpgtAEvoYa4YBHTA05S3Axcf251hTuhQ1s0Z9/793hi7LSanPBY4XRv+kSM5Saqqvbkgkn7QqDMHQv6dSJwNxDqrRymN8mqXl0Cp2PUHzAcjnDfZcNcQ1U+dpiQu0gFNJYTMYbSPCcc9rKksY06g== X-MS-TrafficTypeDiagnostic: BLUPR0201MB1922: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0201MB1922; 31:lIa/sC3I4r5oEpZSzynSkHyGjp4LR43GG3L1UCsTXOKpQ1NnaYRIxUURSfadSFZK8jckLD6kQx1KosD+Ht1Q33SLuL3HXbW/bHNkXNQq8z/VdNkjdWyhx4WfmAY1/4B2h+Am/raQqL2q91kuLOUUJvuNOkaRyLSlQw6pQUxAwDB/WQ+svt8FFumWxtTp0fYCBhjPg+uGbR7JqxuMsvkg0ihBBgBqdijj6QUNOz2/ktQ=; 20:PB+ipj3Oddnk/tmfBG9x8MmA1QBlAZqT2CY2Nn5UlMRDNHABJQ9w51BIRL5CFoElNtFRRN2qrsoizRL4/HMePd4WX6mQXBY3bMAw62ZVP2Xdi1uP1EFUxEJjgwRtoBPyIEY9k0dg45DkHZrracXLYnOrFpPSmaMvWTNjvFyrc0J34MPC/EQ7LxvMZdWGe+Z+Fnwy0hH8SoyjqFj9yAoku+W4JVt6HHU+VpGS+py4ZsmcRDlxK10dHf5KNefcJqE3Y8s3jvolR10mOs41E/TxWLxoBf/IOcSK0jIKfNykosx7NosypMZtAZYlKKPkfoAYrNTAsctJIClNw9N1OUf3nosqQqpUfZmjGw/UixkviEVlEIBFYcvwplXjY8YkuU4veRj8mBKLQU7AlD2bDev7CRyzanmJzVzvUZOdD3Qp8UgWZQUCf0IR+m6dg8+YoZWlADofVf9dkYZsoJyee9Swvh2G/gP0VTqEjUipE3CktR1LRA7zEMcucWQBw35AC4Pu X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93004095)(6055026)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0201MB1922; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0201MB1922; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0201MB1922; 4:9pmKyNF87+hbCNDC/cPZulDHnHxpveJnmJyQaiy6VZnVbPBQG4xzJJfCOE/VI8Rf0JqzG2bpaeq20XAoqxiLeLc0X4Rw0EasaS7RawStAjA9pehJswGqM7mBI/tjoJQbCZ+MtlSjCFfaQtrA2FQoqYgtvKXQitLMzdnNpFyni62cRZHSPkP97/mjXEvr6MS6WJLe5ct7fN6LBSyA9KfKIScRh/Yy3Y2S0a4aF7FgtmkDynlLn0QB05vUHgkDlxsRTJTbmtabu6xvjtbsTAc6SHhOcy45KOhwXiMXBmFCOmM= X-Forefront-PRVS: 04371797A5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0201MB1922; 23:CNyBiO+kdTk1WwFBq+rLttEoNgNalm2orG/zFpU?= =?us-ascii?Q?IRW5TJS0RRuNHAasuImBBxXKfIFaGDruywjDoFOWO2TQCG6jBeMPf4+SVoaH?= =?us-ascii?Q?qNTAOrMRUq4gciZuAgWf4X2L+s8/3fabS69YJo75A0ovDq4ef6H0go2Ya1Bz?= =?us-ascii?Q?9UWj3joVIfwiZtcgJP8tpZHV8nnXWhA+qfoxYTyn6emte/PZhiXkFrzd3kmb?= =?us-ascii?Q?tFV2tg1PxB7/6OzI4pWwUyBnFIdrmywDm5GN0bNWgNMPfnL3+2EJ6xRqzZP4?= =?us-ascii?Q?nv6ahc5r8U7pDRQJk5OCaNBAoG6Zf9/c1qzj7wDZzc17WkJaX5gc5XL5ebwu?= =?us-ascii?Q?O9V1h+VpHUGe/1xErcVMcLAl6pn7R+l7gKhhf1Ag3NqIwgosCmvG9Xqndtl9?= =?us-ascii?Q?IoSo3LSB7s7bbTGXszFkmO13DuvyNmXKOMQv7sf4wR6rOP2CNT1gb36VXK8w?= =?us-ascii?Q?v65BfX7QZTPozd1Ul/XnpmQANNWGCLSHom1rSCSJqOx0/BWgT+ZqcjGjSucH?= =?us-ascii?Q?cQJX4tVpgQDUoj1Ged6tKYF+21X2lB/3Wd+SWWiG4OBbgBOdSeegKbkDpg3F?= =?us-ascii?Q?DeK1/xc4dtPaTONKXdPRS38HmdgS8YqiFDJ52RIQuH/7r4eQeZNUe8iGRfMl?= =?us-ascii?Q?WG1lCl9+IWm69uf9NfRWmSlMqBjue0pqoJuyv7SW0JpyRF1EhoBGQcC3NVEC?= =?us-ascii?Q?fxdkecFcdmzorxI4VS5yCLMdU5bksXWPZ90bnPtyZfKwjF/nL+fcvsEsps21?= =?us-ascii?Q?882vUEZGuOAIMF3VYdgCRwAWFEqItNLQEtbZ8Oh5WNdwq8aaRi4NHuHVOECO?= =?us-ascii?Q?K+W+r0JFkZEpHuSpl1ZiQBFEv8vuNoS6JQoOSaDTFjWOmrJz/UQ4zEUG1hmb?= =?us-ascii?Q?p+F6HQhmuLFYndztxkHbSYhGXFnaH/RhC3pBSP8wtFH6nxgLO2p5yemQSAKw?= =?us-ascii?Q?UpuTiuJtWQbsDLO36Ic2Uaw51yCTxZ0VmmmCFtZZL0b7gkD6wvaYVniYdpBj?= =?us-ascii?Q?RABfATEB6ortG+CQ6nH52+Q9OOig6MY5tIhDcAUkk5vhwzQZ3fdUaRJTUE9K?= =?us-ascii?Q?vdQdMs40ceq3ZsVIRXlln7tSWv+6E?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0201MB1922; 6:ZDqH9NjWfYCMdJkWxodmKAHSSeK9JSDzNInFPAuyJ/p/SgwTTI7QINZOiIa51fcxbhdjQL9rxKn+kf2U+3R7lkp8vf35HJYIQI3HsuYh0FJjBK7pi8GPSZgVCEjR3oMu5JNAwsl5sRfyPaOh5aF+QZePji0d1pmJhiDiZMbDA2QemTrgLkV7H7oT3BpYPASuVq+Rn5+DPR9Y6EB0UmxLvbC7EARwCPC6H+AIm7iNbyRO2L1ZX9JxGn0KYUqmspsJB0cOtloVAf2eV8d6/jNBA3F/26prilhPHx0MNWtFTSLw39Rb8CkZDEw1wxsxoTB/l3oWw7l+KdAe+EFYq1aE2Q==; 5:TE1EIPOjaJEjVlqu5BOcLPZRGvrhoBR0/GJfqFMR11In9RXOS/gas2oeuJAwrIoevPtgVR7twAxpy2U81G8ycULIuFmg8uB7NntpTDRI95/Ldw64V6BSd/5gq7efKwS0tN/ndnoUDmrbXhff10kkWg==; 24:5BtzmYgejlOHuUvzYDsJOQwHBTuCnLN8rqeNGunbjaC3/Bt2SE1WE81C0RyE8mYkO6faR43U5PkM3Lkw3vcB24fgfX5wEpY8Kjwi9Fq3Fvw=; 7:VpkhE3P7pxjhv4lTErLQet26SLZ2ojRfTioBI91WBZk2Qu6vC6Y7r9r/BTVlE79oNCrZhgMk5hzBZrDLUEI2EaoXOtcGrFx3qIrfUVY7B+p3D4WHAIxDr78+GFpJ+qn2fLkEkI08YRcv4iuuqNX6odAR8dpSjJYfrYF09x0jvlkMZD9U9faY4w/QgC6R6T1nTK0vYy20rLBgPJI1xoesTcf/FCrqV+9pmxkKZIjEdOg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2017 23:45:41.5843 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0201MB1922 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.36.45 Subject: [Qemu-devel] [RFC v2 1/2] machine: Add a valid_cpu_types property X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcel@redhat.com, alistair23@gmail.com, imammedo@redhat.com, ehabkost@redhat.com, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Alistair Francis --- RFC v2: - Rebase on Igor's cpu_type work - Use object_class_dynamic_cast() - Use a NULL terminated cahr** list - Do the check before the machine_class init() is called hw/core/machine.c | 35 +++++++++++++++++++++++++++++++++++ include/hw/boards.h | 1 + 2 files changed, 36 insertions(+) diff --git a/hw/core/machine.c b/hw/core/machine.c index 80647edc2a..abebfabdb8 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -758,6 +758,41 @@ void machine_run_board_init(MachineState *machine) if (nb_numa_nodes) { machine_numa_finish_init(machine); } + + if (machine_class->valid_cpu_types && machine->cpu_type) { + int i; + + for (i = 0; machine_class->valid_cpu_types[i]; i++) { + ObjectClass *class = object_class_by_name(machine->cpu_type); + + if (!class) { + break; + } + + if (object_class_dynamic_cast(class, + machine_class->valid_cpu_types[i])) { + /* The user specificed CPU is in the valid field, we are + * good to go. + */ + goto done; + } + } + + /* The user specified CPU must not be a valid CPU, print a sane + * error + */ + error_report("Invalid CPU: %s", machine->cpu_type); + error_printf("The valid options are: %s", + machine_class->valid_cpu_types[0]); + for (i = 1; machine_class->valid_cpu_types[i]; i++) { + error_printf(", %s", machine_class->valid_cpu_types[i]); + } + error_printf("\n"); + + exit(1); + } + +done: machine_class->init(machine); } diff --git a/include/hw/boards.h b/include/hw/boards.h index 156e0a5701..191a5b3cd8 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -191,6 +191,7 @@ struct MachineClass { bool has_hotpluggable_cpus; bool ignore_memory_transaction_failures; int numa_mem_align_shift; + const char **valid_cpu_types; void (*numa_auto_assign_ram)(MachineClass *mc, NodeInfo *nodes, int nb_nodes, ram_addr_t size);