From patchwork Wed Mar 26 16:04:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 14030275 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A1006C3600B for ; Wed, 26 Mar 2025 16:05:02 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.928051.1330818 (Exim 4.92) (envelope-from ) id 1txTFM-0001hP-Qr; Wed, 26 Mar 2025 16:04:52 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 928051.1330818; Wed, 26 Mar 2025 16:04:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFM-0001hI-NT; Wed, 26 Mar 2025 16:04:52 +0000 Received: by outflank-mailman (input) for mailman id 928051; Wed, 26 Mar 2025 16:04:52 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFL-0001Sq-WB for xen-devel@lists.xenproject.org; Wed, 26 Mar 2025 16:04:52 +0000 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 0c831113-0a5c-11f0-9ea3-5ba50f476ded; Wed, 26 Mar 2025 17:04:51 +0100 (CET) Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id D3EB21F391; Wed, 26 Mar 2025 16:04:50 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 7F2B11374A; Wed, 26 Mar 2025 16:04:50 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id fPuLHaIl5Gf0aAAAD6G6ig (envelope-from ); Wed, 26 Mar 2025 16:04:50 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0c831113-0a5c-11f0-9ea3-5ba50f476ded DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005091; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=76i+/SKsEEHaJ6yk2WS1+eCvnz0Uet3AVyzi+W0nPmE=; b=lc7ISap1qr60d3IkB+rP89ZMQVVczERMCvfFTFvEUjZF1yFOBRPG9San4+Bwd5rhjQCrRU Eu4PTMeNtVGJTWBV6Xs+OYRjIGloU/TiuFsgHodS4NgT1aBdHCOf9tXokd0jXi4dHoeVFp WpgeZvTc76oUb4upmkHnc+2XEhWsQIY= Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=OBllyPoq DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005090; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=76i+/SKsEEHaJ6yk2WS1+eCvnz0Uet3AVyzi+W0nPmE=; b=OBllyPoqtfr36dk/GCUYk0V7W32FfU6lwoY1tm6wgGo4J33I08dBfiC7hjZFyCG1wUo5BS /jm3FB4C/L7aFvWpmX3xhhKS/QKnnROtYN6rBVqA3o7ZtTQbnY2JKvXX2oiZjNAv/Zu+0B PVtq9VKd75037lnxu4MJADIpJIm+WF8= From: Juergen Gross To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Oleksii Kurochko , Community Manager , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 1/6] SUPPORT.md: make Linux based stubdom fully supported Date: Wed, 26 Mar 2025 17:04:35 +0100 Message-ID: <20250326160442.19706-2-jgross@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250326160442.19706-1-jgross@suse.com> References: <20250326160442.19706-1-jgross@suse.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: D3EB21F391 X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[99.98%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; FUZZY_BLOCKED(0.00)[rspamd.com]; FREEMAIL_CC(0.00)[suse.com,gmail.com,xenproject.org,citrix.com,vates.tech,amd.com,xen.org,kernel.org]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:dkim,suse.com:mid,suse.com:email]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; RCPT_COUNT_SEVEN(0.00)[11]; TAGGED_RCPT(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; DKIM_TRACE(0.00)[suse.com:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org All patches needed for running with a Linux stubdom device model are in the tree and QubesOS is using and testing Linux stubdoms nowadays. Switch support from "Tech Preview" to "Supported". Signed-off-by: Juergen Gross --- CHANGELOG.md | 1 + SUPPORT.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a5919585d..b03e2c73d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [4.21.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD ### Changed + - Linux based device model stubdomains are now fully supported. ### Added - On x86: diff --git a/SUPPORT.md b/SUPPORT.md index 91cb6f8ed2..ed4412f0af 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -260,7 +260,7 @@ Go (golang) bindings for libxl Support for running qemu-xen device model in a linux stubdomain. - Status: Tech Preview + Status: Supported ## Xenstore From patchwork Wed Mar 26 16:04:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 14030277 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 91D16C36008 for ; Wed, 26 Mar 2025 16:05:09 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.928054.1330828 (Exim 4.92) (envelope-from ) id 1txTFU-000203-0t; Wed, 26 Mar 2025 16:05:00 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 928054.1330828; Wed, 26 Mar 2025 16:04:59 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFT-0001zr-UH; Wed, 26 Mar 2025 16:04:59 +0000 Received: by outflank-mailman (input) for mailman id 928054; Wed, 26 Mar 2025 16:04:59 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFT-0001z3-7m for xen-devel@lists.xenproject.org; Wed, 26 Mar 2025 16:04:59 +0000 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0ff4ea1f-0a5c-11f0-9ffa-bf95429c2676; Wed, 26 Mar 2025 17:04:57 +0100 (CET) Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 9A8431F395; Wed, 26 Mar 2025 16:04:56 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 454D71374A; Wed, 26 Mar 2025 16:04:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id dn9rD6gl5GcAaQAAD6G6ig (envelope-from ); Wed, 26 Mar 2025 16:04:56 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0ff4ea1f-0a5c-11f0-9ffa-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005096; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Kp8xZi9xPjedmkaz5KFhjbrGCNGIxQLdI0SJt0CLi8k=; b=SI0NVfPgKLFzhwR9mN8zDpVRTjc2taoCRHpcDj3sJwrwqdw+FgNvHv7+SxS5VaEd2LGcqY vuXuoMoHcVqLO2F45NZfIjPnpRVoVI1EvmZx5z3CnrXdx8PssC6Dn9ApZbSuWemKhon8la TkH7pJofjKrcVQFHkXNkDexftiUIGKs= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005096; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Kp8xZi9xPjedmkaz5KFhjbrGCNGIxQLdI0SJt0CLi8k=; b=SI0NVfPgKLFzhwR9mN8zDpVRTjc2taoCRHpcDj3sJwrwqdw+FgNvHv7+SxS5VaEd2LGcqY vuXuoMoHcVqLO2F45NZfIjPnpRVoVI1EvmZx5z3CnrXdx8PssC6Dn9ApZbSuWemKhon8la TkH7pJofjKrcVQFHkXNkDexftiUIGKs= From: Juergen Gross To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Anthony PERARD , Andrew Cooper , Michal Orzel , Jan Beulich , Julien Grall , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 2/6] docs: remove qemu-traditional support from documentation Date: Wed, 26 Mar 2025 17:04:36 +0100 Message-ID: <20250326160442.19706-3-jgross@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250326160442.19706-1-jgross@suse.com> References: <20250326160442.19706-1-jgross@suse.com> MIME-Version: 1.0 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_TRACE(0.00)[0:+]; FUZZY_BLOCKED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCVD_TLS_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCPT_COUNT_SEVEN(0.00)[9]; RCVD_COUNT_TWO(0.00)[2]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email] In preparation to no longer support qemu-traditional (including qemu-stubdom), remove it from documentation. Signed-off-by: Juergen Gross --- docs/man/xl-pci-configuration.5.pod | 4 +- docs/man/xl.cfg.5.pod.in | 46 +++------------- docs/misc/stubdom.txt | 52 ------------------- docs/misc/xenstore-paths.pandoc | 2 +- docs/process/branching-checklist.txt | 4 -- docs/process/release-technician-checklist.txt | 3 -- docs/process/xen-release-management.pandoc | 2 +- 7 files changed, 12 insertions(+), 101 deletions(-) diff --git a/docs/man/xl-pci-configuration.5.pod b/docs/man/xl-pci-configuration.5.pod index ec76f590b7..0691f06ad3 100644 --- a/docs/man/xl-pci-configuration.5.pod +++ b/docs/man/xl-pci-configuration.5.pod @@ -111,8 +111,8 @@ if this parameter is not specified. =item Description By default pciback only allows PV guests to write "known safe" values -into PCI configuration space, likewise QEMU (both qemu-xen and -qemu-xen-traditional) imposes the same constraint on HVM guests. +into PCI configuration space, likewise QEMU imposes the same constraint +on HVM guests. However, many devices require writes to other areas of the configuration space in order to operate properly. This option tells the backend (pciback or QEMU) to allow all writes to the PCI configuration space of this device by this diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in index 7339c44efd..ccf0c58895 100644 --- a/docs/man/xl.cfg.5.pod.in +++ b/docs/man/xl.cfg.5.pod.in @@ -895,12 +895,6 @@ is used. Specifies the path to the X authority file that should be used to connect to the X server when the B option is used. -=item B - -Enable OpenGL acceleration of the SDL display. Only effects machines -using B and only if the -device-model was compiled with OpenGL support. The default is 0 (disabled). - =item B Configure the keymap to use for the keyboard associated with this @@ -1215,17 +1209,14 @@ working graphics passthrough. See the XenVGAPassthroughTestedAdapters L wiki page for graphics cards currently supported by B. -B is currently supported both with the qemu-xen-traditional -device-model and upstream qemu-xen device-model. +B is currently supported with the upstream qemu-xen device-model. When given as a boolean the B option either disables graphics card passthrough or enables autodetection. When given as a string the B option describes the type of device to enable. Note that this behavior is only supported with the -upstream qemu-xen device-model. With qemu-xen-traditional IGD (Intel Graphics -Device) is always assumed and options other than autodetect or explicit IGD -will result in an error. +upstream qemu-xen device-model. Currently, valid values for the option are: @@ -1903,10 +1894,7 @@ it may be useful to request a different one, like UEFI. =item B -Loads ROMBIOS, a 16-bit x86 compatible BIOS. This is used by default -when B. This is the only BIOS -option supported when B. This is -the BIOS used by all previous Xen versions. +Loads ROMBIOS, a 16-bit x86 compatible BIOS. =item B @@ -1926,8 +1914,7 @@ Override the path to the blob to be used as BIOS. The blob provided here MUST be consistent with the B which you have specified. You should not normally need to specify this option. -This option does not have any effect if using B or -B. +This option does not have any effect if using B. =item B @@ -2516,15 +2503,10 @@ Sets the amount of RAM which the emulated video card will contain, which in turn limits the resolutions and bit depths which will be available. -When using the qemu-xen-traditional device-model, the default as well as -minimum amount of video RAM for stdvga is 8 MB, which is sufficient for e.g. -1600x1200 at 32bpp. For the upstream qemu-xen device-model, the default and -minimum is 16 MB. +When using stdvga, the default and minimum is 16 MB. -When using the emulated Cirrus graphics card (B) and the -qemu-xen-traditional device-model, the amount of video RAM is fixed at 4 MB, -which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen -device-model, the default and minimum is 8 MB. +When using the emulated Cirrus graphics card (B), the +default and minimum is 8 MB. For QXL vga, both the default and minimal are 128MB. If B is set less than 128MB, an error will be triggered. @@ -2590,12 +2572,6 @@ B manpage. The default is B. Specifies that the display should be presented via an X window (using Simple DirectMedia Layer). The default is (0) not enabled. -=item B - -Enable OpenGL acceleration of the SDL display. Only effects machines -using B and only if the -device-model was compiled with OpenGL support. Default is (0) false. - =item B Enable or disable the virtual graphics device. The default is to @@ -2925,11 +2901,6 @@ Valid values are: Use the device-model merged into the upstream QEMU project. This device-model is the default for Linux dom0. -=item B - -Use the device-model based upon the historical Xen fork of QEMU. -This device-model is still the default for NetBSD dom0. - =back It is recommended to accept the default value for new guests. If @@ -2949,8 +2920,7 @@ to specify this option. Override the path to the kernel image used as device-model stubdomain. The binary provided here MUST be consistent with the B which you have specified. -In case of B it is expected to be MiniOS-based stubdomain -image, in case of B it is expected to be Linux-based stubdomain +In case of B it is expected to be Linux-based stubdomain kernel. =item B diff --git a/docs/misc/stubdom.txt b/docs/misc/stubdom.txt index 64c220db20..cfcba4ba96 100644 --- a/docs/misc/stubdom.txt +++ b/docs/misc/stubdom.txt @@ -23,58 +23,6 @@ and https://wiki.xen.org/wiki/Device_Model_Stub_Domains for more information on device model stub domains -Toolstack to MiniOS ioemu stubdomain protocol ---------------------------------------------- - -This section describe communication protocol between toolstack and -qemu-traditional running in MiniOS stubdomain. The protocol include -expectations of both qemu and stubdomain itself. - -Setup (done by toolstack, expected by stubdomain): - - Block devices for target domain are connected as PV disks to stubdomain, - according to configuration order, starting with xvda - - Network devices for target domain are connected as PV nics to stubdomain, - according to configuration order, starting with 0 - - if graphics output is expected, VFB and VKB devices are set for stubdomain - (its backend is responsible for exposing them using appropriate protocol - like VNC or Spice) - - other target domain's devices are not connected at this point to stubdomain - (may be hot-plugged later) - - QEMU command line (space separated arguments) is stored in - /vm//image/dmargs xenstore path - - target domain id is stored in /local/domain//target xenstore path -?? - bios type is stored in /local/domain//hvmloader/bios - - stubdomain's console 0 is connected to qemu log file - - stubdomain's console 1 is connected to qemu save file (for saving state) - - stubdomain's console 2 is connected to qemu save file (for restoring state) - - next consoles are connected according to target guest's serial console configuration - -Startup: -1. PV stubdomain is started with ioemu-stubdom.gz kernel and no initrd -2. stubdomain initialize relevant devices -3. stubdomain signal readiness by writing "running" to /local/domain//device-model//state xenstore path -4. now stubdomain is considered running - -Runtime control (hotplug etc): -Toolstack can issue command through xenstore. The sequence is (from toolstack POV): -1. Write parameter to /local/domain//device-model//parameter. -2. Write command to /local/domain//device-model//command. -3. Wait for command result in /local/domain//device-model//state (command specific value). -4. Write "running" back to /local/domain//device-model//state. - -Defined commands: - - "pci-ins" - PCI hot plug, results: - - "pci-inserted" - success - - "pci-insert-failed" - failure - - "pci-rem" - PCI hot remove, results: - - "pci-removed" - success - - ?? - - "save" - save domain state to console 1, results: - - "paused" - success - - "continue" - resume domain execution, after loading state from console 2 (require -loadvm command argument), results: - - "running" - success - - Toolstack to Linux ioemu stubdomain protocol -------------------------------------------- diff --git a/docs/misc/xenstore-paths.pandoc b/docs/misc/xenstore-paths.pandoc index a604f6b1c6..583e977b65 100644 --- a/docs/misc/xenstore-paths.pandoc +++ b/docs/misc/xenstore-paths.pandoc @@ -634,7 +634,7 @@ Path in xenstore to the backend, normally Trustworthy copy of /local/domain/$DOMID/backend/$KIND/$DEVID/$NODE. -#### /libxl/$DOMID/dm-version ("qemu_xen"|"qemu_xen_traditional") = [n,INTERNAL] +#### /libxl/$DOMID/dm-version ("qemu_xen") = [n,INTERNAL] The device model version for a domain. diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt index 3dfa8ec257..9632888a56 100644 --- a/docs/process/branching-checklist.txt +++ b/docs/process/branching-checklist.txt @@ -14,8 +14,6 @@ ov=4.0 cd ~/git/qemu-xen.git git branch staging-$v staging git branch stable-$v master - cd ~/git/qemu-xen-traditional.git - git branch stable-$v master # make branch in libvirt ssh xen@xenbits.xen.org @@ -63,7 +61,6 @@ ov=4.0 cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads cp qemu-xen--master.patchbot-reported-heads qemu-xen--stable-$v.patchbot-reported-heads cp qemu-xen--staging.patchbot-reported-heads qemu-xen--staging-$v.patchbot-reported-heads - cp qemu-xen-traditional--master.patchbot-reported-heads qemu-xen-traditional--stable-$v.patchbot-reported-heads #emacs versions perl -i~ -pe 'next unless m/\b\Q'$ov'\E\b/; $x=$_; $x=~ s/\b\Q'$ov'\E\b/'$v'/g; print $x;' versions @@ -74,7 +71,6 @@ ov=4.0 Ensure references to qemu trees and Mini-OS in xen.git's Config.mk are updated. The variables and there content should be: * QEMU_UPSTREAM_REVISION: qemu-xen-X.Y.0 - * QEMU_TRADITIONAL_REVISION: xen-X.Y.0 * MINIOS_UPSTREAM_REVISION: xen-RELEASE-X.Y.0 Where X.Y is the release version (e.g. 4.17). diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt index 7bbe7c1489..64ed9fd5b2 100644 --- a/docs/process/release-technician-checklist.txt +++ b/docs/process/release-technician-checklist.txt @@ -32,8 +32,6 @@ t=RELEASE-$r git show # should show appropriate intended commit git-tag -u 'Xen.org Xen tree code signing' -m "Xen $v" xen-$v - git-push xenbits.xen.org:/home/xen/git/qemu-xen-traditional.git $s:stable-$x xen-$v - # consider making tag in minios, and updating xen.git Config.mk git checkout SOMETHING git show # should show appropriate intended commit @@ -58,7 +56,6 @@ t=RELEASE-$r * change xen-unstable Config.mk # QEMU_UPSTREAM_REVISION, -# QEMU_TRADITIONAL_REVISION # MINIOS_UPSTREAM_REVISION # (drop any references to the specific commits, e.g. date or title) * change SUPPORT.md heading version number; -unstable or -rc tag diff --git a/docs/process/xen-release-management.pandoc b/docs/process/xen-release-management.pandoc index 7826419dad..5da18f6da1 100644 --- a/docs/process/xen-release-management.pandoc +++ b/docs/process/xen-release-management.pandoc @@ -193,7 +193,7 @@ from the last RC: 1. Send out commit moratorium emails to committers@. -2. Check all the trees (mini-os, qemu-trad, qemu-xen, seabios, ovmf etc). +2. Check all the trees (mini-os, qemu-xen, seabios, ovmf etc). They have the correct commits and all security patches applied. There will be tools provided. From patchwork Wed Mar 26 16:04:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 14030279 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 151CBC3600B for ; Wed, 26 Mar 2025 16:05:19 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.928057.1330838 (Exim 4.92) (envelope-from ) id 1txTFa-0002KC-8g; Wed, 26 Mar 2025 16:05:06 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 928057.1330838; Wed, 26 Mar 2025 16:05:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFa-0002K5-5N; Wed, 26 Mar 2025 16:05:06 +0000 Received: by outflank-mailman (input) for mailman id 928057; Wed, 26 Mar 2025 16:05:05 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFY-0001z3-Qa for xen-devel@lists.xenproject.org; Wed, 26 Mar 2025 16:05:05 +0000 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 1344f2a4-0a5c-11f0-9ffa-bf95429c2676; Wed, 26 Mar 2025 17:05:02 +0100 (CET) Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 4E64A1F395; Wed, 26 Mar 2025 16:05:02 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id EE9091374A; Wed, 26 Mar 2025 16:05:01 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id hX/KOK0l5GcLaQAAD6G6ig (envelope-from ); Wed, 26 Mar 2025 16:05:01 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1344f2a4-0a5c-11f0-9ffa-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005102; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A9Vzi1allQ9buLvZV+s75luec1EITwrMFP5D308DP4o=; b=vKXpn+8oVd1QxRFP1ibxvXP/dICedW8T6NXuXHA/3oSg6UFBx3DSfcPjPLUe7+cm//q9FU dYqA+/plJ9xYyPZY/G+5aPzY2i2WM+dSpnuUYYkpwmRT4tiF3utQoeoC3nMkkBd/4sQCfC aUZmd9NjgPmsS89gqFlFO8pfU+0OF+s= Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=vKXpn+8o DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005102; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A9Vzi1allQ9buLvZV+s75luec1EITwrMFP5D308DP4o=; b=vKXpn+8oVd1QxRFP1ibxvXP/dICedW8T6NXuXHA/3oSg6UFBx3DSfcPjPLUe7+cm//q9FU dYqA+/plJ9xYyPZY/G+5aPzY2i2WM+dSpnuUYYkpwmRT4tiF3utQoeoC3nMkkBd/4sQCfC aUZmd9NjgPmsS89gqFlFO8pfU+0OF+s= From: Juergen Gross To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Jan Beulich , Andrew Cooper , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Anthony PERARD , Nick Rosbrook , George Dunlap , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= Subject: [PATCH 3/6] tools: remove support for running a guest with qemu-traditional Date: Wed, 26 Mar 2025 17:04:37 +0100 Message-ID: <20250326160442.19706-4-jgross@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250326160442.19706-1-jgross@suse.com> References: <20250326160442.19706-1-jgross@suse.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 4E64A1F395 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FUZZY_BLOCKED(0.00)[rspamd.com]; FREEMAIL_CC(0.00)[suse.com,citrix.com,vates.tech,gmail.com,xenproject.org,invisiblethingslab.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; RCPT_COUNT_SEVEN(0.00)[9]; DKIM_TRACE(0.00)[suse.com:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action Remove the code in tools for running a guest with qemu-traditional. This covers xl, libxl, libacpi, hvmloader and the related python and go bindings. Signed-off-by: Juergen Gross --- tools/firmware/hvmloader/pci.c | 19 +- tools/firmware/hvmloader/util.c | 9 +- tools/golang/xenlight/types.gen.go | 1 - tools/libacpi/mk_dsdt.c | 177 +++----------- tools/libs/light/libxl_create.c | 60 +---- tools/libs/light/libxl_disk.c | 7 - tools/libs/light/libxl_dm.c | 320 +------------------------- tools/libs/light/libxl_dom.c | 10 - tools/libs/light/libxl_dom_save.c | 140 ----------- tools/libs/light/libxl_dom_suspend.c | 65 ------ tools/libs/light/libxl_domain.c | 15 -- tools/libs/light/libxl_internal.c | 6 +- tools/libs/light/libxl_internal.h | 5 +- tools/libs/light/libxl_pci.c | 183 --------------- tools/libs/light/libxl_stream_write.c | 4 - tools/libs/light/libxl_types.idl | 1 - tools/python/xen/migration/libxl.py | 2 - tools/xl/xl_parse.c | 5 +- 18 files changed, 50 insertions(+), 979 deletions(-) diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c index c3c61ca060..414f73a266 100644 --- a/tools/firmware/hvmloader/pci.c +++ b/tools/firmware/hvmloader/pci.c @@ -108,24 +108,7 @@ void pci_setup(void) uint64_t mmio_hole_size = 0; const char *s; - /* - * Do we allow hvmloader to relocate guest memory in order to - * increase the size of the lowmem MMIO hole? Defaulting to 1 - * here will mean that non-libxl toolstacks (including xend and - * home-grown ones) means that those using qemu-xen will still - * experience the memory relocation bug described below; but it - * also means that those using qemu-traditional will *not* - * experience any change; and it also means that there is a - * work-around for those using qemu-xen, namely switching to - * qemu-traditional. - * - * If we defaulted to 0, and failing to resize the hole caused any - * problems with qemu-traditional, then there is no work-around. - * - * Since xend can only use qemu-traditional, I think this is the - * option that will have the least impact. - */ - bool allow_memory_relocate = 1; + bool allow_memory_relocate = 0; BUILD_BUG_ON((typeof(*pci_devfn_decode_type))PCI_COMMAND_IO != PCI_COMMAND_IO); diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c index 2d07ce1290..79c0e6bd4a 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -843,14 +843,7 @@ void hvmloader_acpi_build_tables(struct acpi_config *config, /* If the device model is specified switch to the corresponding tables */ s = xenstore_read("platform/device-model", ""); - if ( !strncmp(s, "qemu_xen_traditional", 21) ) - { - config->dsdt_anycpu = dsdt_anycpu; - config->dsdt_anycpu_len = dsdt_anycpu_len; - config->dsdt_15cpu = dsdt_15cpu; - config->dsdt_15cpu_len = dsdt_15cpu_len; - } - else if ( !strncmp(s, "qemu_xen", 9) ) + if ( !strncmp(s, "qemu_xen", 9) ) { config->dsdt_anycpu = dsdt_anycpu_qemu_xen; config->dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len; diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go index e7667f1ce3..02c4d8d123 100644 --- a/tools/golang/xenlight/types.gen.go +++ b/tools/golang/xenlight/types.gen.go @@ -70,7 +70,6 @@ ChannelConnectionSocket ChannelConnection = 2 type DeviceModelVersion int const( DeviceModelVersionUnknown DeviceModelVersion = 0 -DeviceModelVersionQemuXenTraditional DeviceModelVersion = 1 DeviceModelVersionQemuXen DeviceModelVersion = 2 ) diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c index 34f6753f61..396e3e01e2 100644 --- a/tools/libacpi/mk_dsdt.c +++ b/tools/libacpi/mk_dsdt.c @@ -19,7 +19,6 @@ static bool debug = false; typedef enum dm_version { QEMU_NONE, - QEMU_XEN_TRADITIONAL, QEMU_XEN, } dm_version; @@ -68,30 +67,6 @@ static void pop_block(void) printf("}\n"); } -#ifdef CONFIG_X86 -static void pci_hotplug_notify(unsigned int slt) -{ - stmt("Notify", "\\_SB.PCI0.S%02X, EVT", slt); -} - -static void decision_tree( - unsigned int s, unsigned int e, char *var, void (*leaf)(unsigned int)) -{ - if ( s == (e-1) ) - { - (*leaf)(s); - return; - } - - push_block("If", "And(%s, 0x%02x)", var, (e-s)/2); - decision_tree((s+e)/2, e, var, leaf); - pop_block(); - push_block("Else", NULL); - decision_tree(s, (s+e)/2, var, leaf); - pop_block(); -} -#endif - static struct option options[] = { { "maxcpu", 1, 0, 'c' }, #ifdef CONFIG_X86 @@ -105,7 +80,7 @@ int main(int argc, char **argv) { unsigned int cpu, max_cpus; #if defined(CONFIG_X86) - dm_version dm_version = QEMU_XEN_TRADITIONAL; + dm_version dm_version = QEMU_XEN; unsigned int slot, dev, intx, link; max_cpus = HVM_MAX_VCPUS; @@ -141,8 +116,6 @@ int main(int argc, char **argv) case 'q': if (strcmp(optarg, "qemu-xen") == 0) { dm_version = QEMU_XEN; - } else if (strcmp(optarg, "qemu-xen-traditional") == 0) { - dm_version = QEMU_XEN_TRADITIONAL; } else if (strcmp(optarg, "none") == 0) { dm_version = QEMU_NONE; } else { @@ -278,9 +251,7 @@ int main(int argc, char **argv) /* Define GPE control method. */ push_block("Scope", "\\_GPE"); - push_block("Method", - dm_version == QEMU_XEN_TRADITIONAL ? "_L%02d" : "_E%02d", - XEN_ACPI_GPE0_CPUHP_BIT); + push_block("Method", "_E%02d", XEN_ACPI_GPE0_CPUHP_BIT); stmt("\\_SB.PRSC ()", NULL); pop_block(); pop_block(); @@ -302,17 +273,10 @@ int main(int argc, char **argv) */ push_block("Device", "HP0"); { stmt("Name", "_HID, EISAID(\"PNP0C02\")"); - if (dm_version == QEMU_XEN_TRADITIONAL) { - stmt("Name", "_CRS, ResourceTemplate() {" - " IO (Decode16, 0x10c0, 0x10c0, 0x00, 0x82)" - " IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)" - "}"); - } else { - stmt("Name", "_CRS, ResourceTemplate() {" - " IO (Decode16, 0xae00, 0xae00, 0x00, 0x10)" - " IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)" - "}"); - } + stmt("Name", "_CRS, ResourceTemplate() {" + " IO (Decode16, 0xae00, 0xae00, 0x00, 0x10)" + " IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)" + "}"); } pop_block(); /*** PCI-ISA link definitions ***/ @@ -397,60 +361,27 @@ int main(int argc, char **argv) * QEMU provides a simple hotplug controller with some I/O to handle * the hotplug action and status, which is beyond the ACPI scope. */ - if (dm_version == QEMU_XEN_TRADITIONAL) { - for ( slot = 0; slot < 0x100; slot++ ) - { - push_block("Device", "S%02X", slot); - /* _ADR == dev:fn (16:16) */ - stmt("Name", "_ADR, 0x%08x", ((slot & ~7) << 13) | (slot & 7)); - /* _SUN == dev */ - stmt("Name", "_SUN, 0x%08x", slot >> 3); - push_block("Method", "_EJ0, 1"); - if (debug) - { - stmt("Store", "0x%02x, \\_GPE.DPT1", slot); - stmt("Store", "0x88, \\_GPE.DPT2"); - } - stmt("Store", "0x%02x, \\_GPE.PH%02X", /* eject */ - (slot & 1) ? 0x10 : 0x01, slot & ~1); - pop_block(); - push_block("Method", "_STA, 0"); - if (debug) - { - stmt("Store", "0x%02x, \\_GPE.DPT1", slot); - stmt("Store", "0x89, \\_GPE.DPT2"); - } - if ( slot & 1 ) - stmt("ShiftRight", "\\_GPE.PH%02X, 0x04, Local1", slot & ~1); - else - stmt("And", "\\_GPE.PH%02X, 0x0f, Local1", slot & ~1); - stmt("Return", "Local1"); /* IN status as the _STA */ - pop_block(); - pop_block(); - } - } else { - stmt("OperationRegion", "SEJ, SystemIO, 0xae08, 0x08"); - push_block("Field", "SEJ, DWordAcc, NoLock, WriteAsZeros"); - indent(); printf("B0EJ, 32,\n"); - indent(); printf("B0RM, 32,\n"); - pop_block(); + stmt("OperationRegion", "SEJ, SystemIO, 0xae08, 0x08"); + push_block("Field", "SEJ, DWordAcc, NoLock, WriteAsZeros"); + indent(); printf("B0EJ, 32,\n"); + indent(); printf("B0RM, 32,\n"); + pop_block(); - /* hotplug_slot */ - for (slot = 1; slot <= 31; slot++) { - push_block("Device", "S%i", slot); { - stmt("Name", "_ADR, %#06x0000", slot); - push_block("Method", "_EJ0,1"); { - stmt("Store", "%#010x, B0EJ", 1 << slot); - } pop_block(); - stmt("Name", "_SUN, %i", slot); - push_block("Method", "_STA, 0"); { - push_block("If", "And(B0RM, ShiftLeft(1, %i))", slot); - stmt("Return", "0xF"); - pop_block(); - stmt("Return", "0x0"); - } pop_block(); + /* hotplug_slot */ + for (slot = 1; slot <= 31; slot++) { + push_block("Device", "S%i", slot); { + stmt("Name", "_ADR, %#06x0000", slot); + push_block("Method", "_EJ0,1"); { + stmt("Store", "%#010x, B0EJ", 1 << slot); } pop_block(); - } + stmt("Name", "_SUN, %i", slot); + push_block("Method", "_STA, 0"); { + push_block("If", "And(B0RM, ShiftLeft(1, %i))", slot); + stmt("Return", "0xF"); + pop_block(); + stmt("Return", "0x0"); + } pop_block(); + } pop_block(); } pop_block(); @@ -460,26 +391,11 @@ int main(int argc, char **argv) /**** GPE start ****/ push_block("Scope", "\\_GPE"); - if (dm_version == QEMU_XEN_TRADITIONAL) { - stmt("OperationRegion", "PHP, SystemIO, 0x10c0, 0x82"); - - push_block("Field", "PHP, ByteAcc, NoLock, Preserve"); - indent(); printf("PSTA, 8,\n"); /* hotplug controller event reg */ - indent(); printf("PSTB, 8,\n"); /* hotplug controller slot reg */ - for ( slot = 0; slot < 0x100; slot += 2 ) - { - indent(); - /* Each hotplug control register manages a pair of pci functions. */ - printf("PH%02X, 8,\n", slot); - } - pop_block(); - } else { - stmt("OperationRegion", "PCST, SystemIO, 0xae00, 0x08"); - push_block("Field", "PCST, DWordAcc, NoLock, WriteAsZeros"); - indent(); printf("PCIU, 32,\n"); - indent(); printf("PCID, 32,\n"); - pop_block(); - } + stmt("OperationRegion", "PCST, SystemIO, 0xae00, 0x08"); + push_block("Field", "PCST, DWordAcc, NoLock, WriteAsZeros"); + indent(); printf("PCIU, 32,\n"); + indent(); printf("PCID, 32,\n"); + pop_block(); stmt("OperationRegion", "DG1, SystemIO, 0xb044, 0x04"); @@ -487,35 +403,16 @@ int main(int argc, char **argv) indent(); printf("DPT1, 8, DPT2, 8\n"); pop_block(); - if (dm_version == QEMU_XEN_TRADITIONAL) { - push_block("Method", "_L03, 0, Serialized"); - /* Detect slot and event (remove/add). */ - stmt("Name", "SLT, 0x0"); - stmt("Name", "EVT, 0x0"); - stmt("Store", "PSTA, Local1"); - stmt("And", "Local1, 0xf, EVT"); - stmt("Store", "PSTB, Local1"); /* XXX: Store (PSTB, SLT) ? */ - stmt("And", "Local1, 0xff, SLT"); - if (debug) - { - stmt("Store", "SLT, DPT1"); - stmt("Store", "EVT, DPT2"); - } - /* Decision tree */ - decision_tree(0x00, 0x100, "SLT", pci_hotplug_notify); + push_block("Method", "_E01"); + for (slot = 1; slot <= 31; slot++) { + push_block("If", "And(PCIU, ShiftLeft(1, %i))", slot); + stmt("Notify", "\\_SB.PCI0.S%i, 1", slot); pop_block(); - } else { - push_block("Method", "_E01"); - for (slot = 1; slot <= 31; slot++) { - push_block("If", "And(PCIU, ShiftLeft(1, %i))", slot); - stmt("Notify", "\\_SB.PCI0.S%i, 1", slot); - pop_block(); - push_block("If", "And(PCID, ShiftLeft(1, %i))", slot); - stmt("Notify", "\\_SB.PCI0.S%i, 3", slot); - pop_block(); - } + push_block("If", "And(PCID, ShiftLeft(1, %i))", slot); + stmt("Notify", "\\_SB.PCI0.S%i, 3", slot); pop_block(); } + pop_block(); pop_block(); /**** GPE end ****/ diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c index e03599ea99..9c56c4c9e5 100644 --- a/tools/libs/light/libxl_create.c +++ b/tools/libs/light/libxl_create.c @@ -100,12 +100,7 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, if (!b_info->device_model_version) { if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) { - if (libxl_defbool_val(b_info->device_model_stubdomain)) { - b_info->device_model_version = - LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL; - } else { - b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN; - } + b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN; } else { b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN; @@ -117,16 +112,8 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, dm = libxl__domain_device_model(gc, b_info); rc = access(dm, X_OK); if (rc < 0) { - /* qemu-xen unavailable, use qemu-xen-traditional */ - if (errno == ENOENT) { - LOGE(INFO, "qemu-xen is unavailable" - ", using qemu-xen-traditional instead"); - b_info->device_model_version = - LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL; - } else { - LOGE(ERROR, "qemu-xen access error"); - return ERROR_FAIL; - } + LOGE(ERROR, "qemu-xen access error"); + return ERROR_FAIL; } } } @@ -137,8 +124,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) { if (!b_info->u.hvm.bios) switch (b_info->device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - b_info->u.hvm.bios = LIBXL_BIOS_TYPE_ROMBIOS; break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: b_info->u.hvm.bios = LIBXL_BIOS_TYPE_SEABIOS; break; default: @@ -148,12 +133,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, /* Enforce BIOS<->Device Model version relationship */ switch (b_info->device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - if (b_info->u.hvm.bios != LIBXL_BIOS_TYPE_ROMBIOS) { - LOG(ERROR, "qemu-xen-traditional requires bios=rombios."); - return ERROR_INVAL; - } - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: if (b_info->u.hvm.bios == LIBXL_BIOS_TYPE_ROMBIOS) { LOG(ERROR, "qemu-xen does not support bios=rombios."); @@ -176,10 +155,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, libxl_defbool_val(b_info->device_model_stubdomain)) { if (!b_info->stubdomain_kernel) { switch (b_info->device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - b_info->stubdomain_kernel = - libxl__abs_path(NOGC, "ioemu-stubdom.gz", libxl__xenfirmwaredir_path()); - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: b_info->stubdomain_kernel = libxl__abs_path(NOGC, @@ -192,8 +167,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, } if (!b_info->stubdomain_ramdisk) { switch (b_info->device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: b_info->stubdomain_ramdisk = libxl__abs_path(NOGC, @@ -299,33 +272,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, b_info->u.hvm.hdtype = LIBXL_HDTYPE_IDE; switch (b_info->device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - switch (b_info->u.hvm.vga.kind) { - case LIBXL_VGA_INTERFACE_TYPE_NONE: - if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) - b_info->video_memkb = 0; - break; - case LIBXL_VGA_INTERFACE_TYPE_QXL: - LOG(ERROR,"qemu upstream required for qxl vga"); - return ERROR_INVAL; - break; - case LIBXL_VGA_INTERFACE_TYPE_STD: - if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) - b_info->video_memkb = 8 * 1024; - if (b_info->video_memkb < 8 * 1024) { - LOG(ERROR, "videoram must be at least 8 MB for STDVGA on QEMU_XEN_TRADITIONAL"); - return ERROR_INVAL; - } - break; - case LIBXL_VGA_INTERFACE_TYPE_CIRRUS: - default: - if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) - b_info->video_memkb = 4 * 1024; - if (b_info->video_memkb != 4 * 1024) - LOG(WARN, "ignoring videoram other than 4 MB for CIRRUS on QEMU_XEN_TRADITIONAL"); - break; - } - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: default: switch (b_info->u.hvm.vga.kind) { diff --git a/tools/libs/light/libxl_disk.c b/tools/libs/light/libxl_disk.c index 15055380c6..8cdf74ee8b 100644 --- a/tools/libs/light/libxl_disk.c +++ b/tools/libs/light/libxl_disk.c @@ -1007,13 +1007,6 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, disk->backend = LIBXL_DISK_BACKEND_PHY; } - if (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL && - stubdomid) { - LOGD(ERROR, domid, "cdrom-insert doesn't work for Mini-OS stubdoms"); - rc = ERROR_INVAL; - goto out; - } - disks = libxl__device_list(gc, &libxl__disk_devtype, cis->disk_domid, &num); for (i = 0; i < num; i++) { if (disks[i].is_cdrom && !strcmp(disk->vdev, disks[i].vdev)) diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c index b193a5dc37..4146ee0ea1 100644 --- a/tools/libs/light/libxl_dm.c +++ b/tools/libs/light/libxl_dm.c @@ -328,9 +328,6 @@ const char *libxl__domain_device_model(libxl__gc *gc, dm = libxl__strdup(gc, info->device_model); } else { switch (info->device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - dm = libxl__abs_path(gc, "qemu-dm", libxl__private_bindir_path()); - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: dm = qemu_xen_path(gc); break; @@ -670,272 +667,6 @@ static const char *dm_keymap(const libxl_domain_config *guest_config) return NULL; } -static int libxl__build_device_model_args_old(libxl__gc *gc, - const char *dm, int domid, - const libxl_domain_config *guest_config, - char ***args, char ***envs, - const libxl__domain_build_state *state) -{ - const libxl_domain_create_info *c_info = &guest_config->c_info; - const libxl_domain_build_info *b_info = &guest_config->b_info; - const libxl_device_nic *nics = guest_config->nics; - const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config); - const libxl_sdl_info *sdl = dm_sdl(guest_config); - const int num_nics = guest_config->num_nics; - const char *keymap = dm_keymap(guest_config); - int i; - flexarray_t *dm_args, *dm_envs; - dm_args = flexarray_make(gc, 16, 1); - dm_envs = flexarray_make(gc, 16, 1); - - assert(state->dm_monitor_fd == -1); - - flexarray_vappend(dm_args, dm, - "-d", GCSPRINTF("%d", domid), NULL); - - if (c_info->name) - flexarray_vappend(dm_args, "-domain-name", c_info->name, NULL); - - if (vnc) { - char *vncarg = NULL; - - flexarray_append(dm_args, "-vnc"); - - /* - * If vnc->listen is present and contains a :, and - * - vnc->display is 0, use vnc->listen - * - vnc->display is non-zero, be confused - * If vnc->listen is present but doesn't, use vnc->listen:vnc->display. - * If vnc->listen is not present, use 127.0.0.1:vnc->display - * (Remembering that vnc->display already defaults to 0.) - */ - if (vnc->listen) { - if (strchr(vnc->listen, ':') != NULL) { - if (vnc->display) { - LOGD(ERROR, domid, "vncdisplay set, vnclisten contains display"); - return ERROR_INVAL; - } - vncarg = vnc->listen; - } else { - vncarg = GCSPRINTF("%s:%d", vnc->listen, vnc->display); - } - } else - vncarg = GCSPRINTF("127.0.0.1:%d", vnc->display); - - if (vnc->passwd && vnc->passwd[0]) { - vncarg = GCSPRINTF("%s,password", vncarg); - } - - flexarray_append(dm_args, vncarg); - - if (libxl_defbool_val(vnc->findunused)) { - flexarray_append(dm_args, "-vncunused"); - } - } else if (!sdl) { - /* - * VNC is not enabled by default by qemu-xen-traditional, - * however skipping -vnc causes SDL to be - * (unexpectedly) enabled by default. If undesired, disable graphics at - * all. - */ - flexarray_append(dm_args, "-nographic"); - } - - if (sdl) { - flexarray_append(dm_args, "-sdl"); - if (!libxl_defbool_val(sdl->opengl)) { - flexarray_append(dm_args, "-disable-opengl"); - } - if (sdl->display) - flexarray_append_pair(dm_envs, "DISPLAY", sdl->display); - if (sdl->xauthority) - flexarray_append_pair(dm_envs, "XAUTHORITY", sdl->xauthority); - } - if (keymap) { - flexarray_vappend(dm_args, "-k", keymap, NULL); - } - if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) { - int ioemu_nics = 0; - int nr_set_cpus = 0; - char *s; - - flexarray_append_pair(dm_envs, "XEN_DOMAIN_ID", GCSPRINTF("%d", domid)); - - if (b_info->kernel) { - LOGD(ERROR, domid, "HVM direct kernel boot is not supported by " - "qemu-xen-traditional"); - return ERROR_INVAL; - } - - if (b_info->u.hvm.serial || b_info->u.hvm.serial_list) { - if ( b_info->u.hvm.serial && b_info->u.hvm.serial_list ) - { - LOGD(ERROR, domid, "Both serial and serial_list set"); - return ERROR_INVAL; - } - if (b_info->u.hvm.serial) { - flexarray_vappend(dm_args, - "-serial", b_info->u.hvm.serial, NULL); - } else if (b_info->u.hvm.serial_list) { - char **p; - for (p = b_info->u.hvm.serial_list; - *p; - p++) { - flexarray_vappend(dm_args, - "-serial", - *p, NULL); - } - } - } - - if (libxl_defbool_val(b_info->u.hvm.nographic) && (!sdl && !vnc)) { - flexarray_append(dm_args, "-nographic"); - } - - if (b_info->video_memkb) { - flexarray_vappend(dm_args, "-videoram", - GCSPRINTF("%d", libxl__sizekb_to_mb(b_info->video_memkb)), - NULL); - } - - switch (b_info->u.hvm.vga.kind) { - case LIBXL_VGA_INTERFACE_TYPE_STD: - flexarray_append(dm_args, "-std-vga"); - break; - case LIBXL_VGA_INTERFACE_TYPE_CIRRUS: - break; - case LIBXL_VGA_INTERFACE_TYPE_NONE: - flexarray_append_pair(dm_args, "-vga", "none"); - break; - case LIBXL_VGA_INTERFACE_TYPE_QXL: - break; - default: - LOGD(ERROR, domid, "Invalid emulated video card specified"); - return ERROR_INVAL; - } - - if (b_info->u.hvm.boot) { - flexarray_vappend(dm_args, "-boot", b_info->u.hvm.boot, NULL); - } - if (libxl_defbool_val(b_info->u.hvm.usb) - || b_info->u.hvm.usbdevice - || libxl_string_list_length(&b_info->u.hvm.usbdevice_list)) { - if (b_info->u.hvm.usbdevice - && libxl_string_list_length(&b_info->u.hvm.usbdevice_list)) { - LOGD(ERROR, domid, "Both usbdevice and usbdevice_list set"); - return ERROR_INVAL; - } - flexarray_append(dm_args, "-usb"); - if (b_info->u.hvm.usbdevice) { - flexarray_vappend(dm_args, - "-usbdevice", b_info->u.hvm.usbdevice, NULL); - } else if (b_info->u.hvm.usbdevice_list) { - char **p; - for (p = b_info->u.hvm.usbdevice_list; - *p; - p++) { - flexarray_vappend(dm_args, - "-usbdevice", - *p, NULL); - } - } - } - if (b_info->u.hvm.soundhw) { - flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL); - } - if (libxl__acpi_defbool_val(b_info)) { - flexarray_append(dm_args, "-acpi"); - } - if (b_info->max_vcpus > 1) { - flexarray_vappend(dm_args, "-vcpus", - GCSPRINTF("%d", b_info->max_vcpus), - NULL); - } - - nr_set_cpus = libxl_bitmap_count_set(&b_info->avail_vcpus); - s = libxl_bitmap_to_hex_string(CTX, &b_info->avail_vcpus); - flexarray_vappend(dm_args, "-vcpu_avail", - GCSPRINTF("%s", s), NULL); - free(s); - - for (i = 0; i < num_nics; i++) { - if (nics[i].nictype == LIBXL_NIC_TYPE_VIF_IOEMU) { - char *smac = GCSPRINTF( - LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nics[i].mac)); - const char *ifname = libxl__device_nic_devname(gc, - domid, nics[i].devid, - LIBXL_NIC_TYPE_VIF_IOEMU); - flexarray_vappend(dm_args, - "-net", - GCSPRINTF( - "nic,vlan=%d,macaddr=%s,model=%s", - nics[i].devid, smac, nics[i].model), - "-net", - GCSPRINTF( - "tap,vlan=%d,ifname=%s,bridge=%s," - "script=%s,downscript=%s", - nics[i].devid, ifname, nics[i].bridge, - libxl_tapif_script(gc), - libxl_tapif_script(gc)), - NULL); - ioemu_nics++; - } - } - /* If we have no emulated nics, tell qemu not to create any */ - if ( ioemu_nics == 0 ) { - flexarray_vappend(dm_args, "-net", "none", NULL); - } - if (libxl_defbool_val(b_info->u.hvm.gfx_passthru)) { - switch (b_info->u.hvm.gfx_passthru_kind) { - case LIBXL_GFX_PASSTHRU_KIND_DEFAULT: - case LIBXL_GFX_PASSTHRU_KIND_IGD: - flexarray_append(dm_args, "-gfx_passthru"); - break; - default: - LOGD(ERROR, domid, "unsupported gfx_passthru_kind."); - return ERROR_INVAL; - } - } - } else { - if (!sdl && !vnc) - flexarray_append(dm_args, "-nographic"); - } - - if (libxl_defbool_val(b_info->dm_restrict)) { - LOGD(ERROR, domid, - "dm_restrict not supported by qemu-xen-traditional"); - return ERROR_INVAL; - } - - if (state->saved_state) { - flexarray_vappend(dm_args, "-loadvm", state->saved_state, NULL); - } - for (i = 0; b_info->extra && b_info->extra[i] != NULL; i++) - flexarray_append(dm_args, b_info->extra[i]); - flexarray_append(dm_args, "-M"); - switch (b_info->type) { - case LIBXL_DOMAIN_TYPE_PVH: - case LIBXL_DOMAIN_TYPE_PV: - flexarray_append(dm_args, "xenpv"); - for (i = 0; b_info->extra_pv && b_info->extra_pv[i] != NULL; i++) - flexarray_append(dm_args, b_info->extra_pv[i]); - break; - case LIBXL_DOMAIN_TYPE_HVM: - flexarray_append(dm_args, "xenfv"); - for (i = 0; b_info->extra_hvm && b_info->extra_hvm[i] != NULL; i++) - flexarray_append(dm_args, b_info->extra_hvm[i]); - break; - default: - abort(); - } - flexarray_append(dm_args, NULL); - *args = (char **) flexarray_contents(dm_args); - flexarray_append(dm_envs, NULL); - if (envs) - *envs = (char **) flexarray_contents(dm_envs); - return 0; -} - static char *dm_spice_options(libxl__gc *gc, const libxl_spice_info *spice) { @@ -2062,11 +1793,6 @@ static int libxl__build_device_model_args(libxl__gc *gc, * and therefore will be passing a filename rather than a fd. */ { switch (guest_config->b_info.device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - return libxl__build_device_model_args_old(gc, dm, - guest_domid, guest_config, - args, envs, - state); case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: if (!libxl_defbool_val(guest_config->b_info.device_model_stubdomain)) { assert(dm_state_fd != NULL); @@ -2429,16 +2155,11 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss) "%s", libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios)); } - /* Disable relocating memory to make the MMIO hole larger - * unless we're running qemu-traditional and vNUMA is not - * configured. */ + /* Disable relocating memory to make the MMIO hole larger. */ libxl__xs_printf(gc, XBT_NULL, libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate", libxl__xs_get_dompath(gc, guest_domid)), - "%d", - guest_config->b_info.device_model_version - == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL && - !libxl__vnuma_configured(&guest_config->b_info)); + "0"); ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid); if (ret<0) { LOGED(ERROR, guest_domid, "setting target domain %d -> %d", @@ -3122,13 +2843,9 @@ static void device_model_launch(libxl__egc *egc, libxl_domain_config *guest_config = dmss->guest_config; const libxl_domain_create_info *c_info = &guest_config->c_info; const libxl_domain_build_info *b_info = &guest_config->b_info; - const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config); char *path; int logfile_w, null; char **args, **arg, **envs; - xs_transaction_t t; - char *vm_path; - char **pass_stuff; int dm_state_fd = -1; /* convenience aliases */ @@ -3162,26 +2879,16 @@ static void device_model_launch(libxl__egc *egc, libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/hvmloader/bios", path), "%s", libxl_bios_type_to_string(b_info->u.hvm.bios)); - /* Disable relocating memory to make the MMIO hole larger - * unless we're running qemu-traditional and vNUMA is not - * configured. */ + /* Disable relocating memory to make the MMIO hole larger. */ libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/hvmloader/allow-memory-relocate", path), - "%d", - b_info->device_model_version==LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL && - !libxl__vnuma_configured(b_info)); + "0"); free(path); } path = DEVICE_MODEL_XS_PATH(gc, LIBXL_TOOLSTACK_DOMID, domid, ""); xs_mkdir(ctx->xsh, XBT_NULL, path); - if (b_info->type == LIBXL_DOMAIN_TYPE_HVM && - b_info->device_model_version - == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL) - libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/disable_pf", path), - "%d", !libxl_defbool_val(b_info->u.hvm.xen_platform_pci)); - logfile_w = libxl__create_qemu_logfile(gc, GCSPRINTF("qemu-dm-%s", c_info->name)); if (logfile_w < 0) { @@ -3206,25 +2913,6 @@ static void device_model_launch(libxl__egc *egc, GCSPRINTF("%s/image/device-model-kill-uid", dom_path), "%s", state->dm_kill_uid); - if (vnc && vnc->passwd) { - /* This xenstore key will only be used by qemu-xen-traditionnal. - * The code to supply vncpasswd to qemu-xen is later. */ -retry_transaction: - /* Find uuid and the write the vnc password to xenstore for qemu. */ - t = xs_transaction_start(ctx->xsh); - vm_path = libxl__xs_read(gc,t,GCSPRINTF("%s/vm", dom_path)); - if (vm_path) { - /* Now write the vncpassword into it. */ - pass_stuff = libxl__calloc(gc, 3, sizeof(char *)); - pass_stuff[0] = "vncpasswd"; - pass_stuff[1] = vnc->passwd; - libxl__xs_writev(gc,t,vm_path,pass_stuff); - if (!xs_transaction_end(ctx->xsh, t, 0)) - if (errno == EAGAIN) - goto retry_transaction; - } - } - LOGD(DEBUG, domid, "Spawning device-model %s with arguments:", dm); for (arg = args; *arg; arg++) LOGD(DEBUG, domid, " %s", *arg); diff --git a/tools/libs/light/libxl_dom.c b/tools/libs/light/libxl_dom.c index 94fef37401..4d67b0d282 100644 --- a/tools/libs/light/libxl_dom.c +++ b/tools/libs/light/libxl_dom.c @@ -881,7 +881,6 @@ static int libxl__domain_firmware(libxl__gc *gc, switch (info->device_model_version) { case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: firmware = "hvmloader"; break; default: @@ -1212,15 +1211,6 @@ out: return rc; } -int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid, - const char *cmd) -{ - char *path = NULL; - uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid); - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/command"); - return libxl__xs_printf(gc, XBT_NULL, path, "%s", cmd); -} - /*==================== Miscellaneous ====================*/ char *libxl__uuid2string(libxl__gc *gc, const libxl_uuid uuid) diff --git a/tools/libs/light/libxl_dom_save.c b/tools/libs/light/libxl_dom_save.c index 32e3cb5a13..d64fd64f2e 100644 --- a/tools/libs/light/libxl_dom_save.c +++ b/tools/libs/light/libxl_dom_save.c @@ -28,19 +28,6 @@ static void domain_save_done(libxl__egc *egc, /*----- complicated callback, called by xc_domain_save -----*/ -/* - * We implement the other end of protocol for controlling qemu-dm's - * logdirty. There is no documentation for this protocol, but our - * counterparty's implementation is in - * qemu-xen-traditional.git:xenstore.c in the function - * xenstore_process_logdirty_event - */ - -static void domain_suspend_switch_qemu_xen_traditional_logdirty - (libxl__egc *egc, int domid, unsigned enable, - libxl__logdirty_switch *lds); -static void switch_logdirty_xswatch(libxl__egc *egc, libxl__ev_xswatch*, - const char *watch_path, const char *event_path); static void domain_suspend_switch_qemu_xen_logdirty (libxl__egc *egc, int domid, unsigned enable, libxl__logdirty_switch *lds); @@ -69,10 +56,6 @@ void libxl__domain_common_switch_qemu_logdirty(libxl__egc *egc, STATE_AO_GC(lds->ao); switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - domain_suspend_switch_qemu_xen_traditional_logdirty(egc, domid, enable, - lds); - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: domain_suspend_switch_qemu_xen_logdirty(egc, domid, enable, lds); break; @@ -83,129 +66,6 @@ void libxl__domain_common_switch_qemu_logdirty(libxl__egc *egc, } } -static void domain_suspend_switch_qemu_xen_traditional_logdirty - (libxl__egc *egc, int domid, unsigned enable, - libxl__logdirty_switch *lds) -{ - STATE_AO_GC(lds->ao); - int rc; - xs_transaction_t t = 0; - const char *got; - - if (!lds->cmd_path) { - uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid); - lds->cmd_path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, - "/logdirty/cmd"); - lds->ret_path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, - "/logdirty/ret"); - } - lds->cmd = enable ? "enable" : "disable"; - - rc = libxl__ev_xswatch_register(gc, &lds->watch, - switch_logdirty_xswatch, lds->ret_path); - if (rc) goto out; - - rc = libxl__ev_time_register_rel(ao, &lds->timeout, - switch_logdirty_timeout, 10*1000); - if (rc) goto out; - - for (;;) { - rc = libxl__xs_transaction_start(gc, &t); - if (rc) goto out; - - rc = libxl__xs_read_checked(gc, t, lds->cmd_path, &got); - if (rc) goto out; - - if (got) { - const char *got_ret; - rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got_ret); - if (rc) goto out; - - if (!got_ret || strcmp(got, got_ret)) { - LOGD(ERROR, domid, "controlling logdirty: qemu was already sent" - " command `%s' (xenstore path `%s') but result is `%s'", - got, lds->cmd_path, got_ret ? got_ret : ""); - rc = ERROR_FAIL; - goto out; - } - rc = libxl__xs_rm_checked(gc, t, lds->cmd_path); - if (rc) goto out; - } - - rc = libxl__xs_rm_checked(gc, t, lds->ret_path); - if (rc) goto out; - - rc = libxl__xs_write_checked(gc, t, lds->cmd_path, lds->cmd); - if (rc) goto out; - - rc = libxl__xs_transaction_commit(gc, &t); - if (!rc) break; - if (rc<0) goto out; - } - - /* OK, wait for some callback */ - return; - - out: - LOGD(ERROR, domid, "logdirty switch failed (rc=%d), abandoning suspend",rc); - libxl__xs_transaction_abort(gc, &t); - switch_logdirty_done(egc,lds,rc); -} - -static void switch_logdirty_xswatch(libxl__egc *egc, libxl__ev_xswatch *watch, - const char *watch_path, const char *event_path) -{ - libxl__logdirty_switch *lds = CONTAINER_OF(watch, *lds, watch); - STATE_AO_GC(lds->ao); - const char *got; - xs_transaction_t t = 0; - int rc; - - for (;;) { - rc = libxl__xs_transaction_start(gc, &t); - if (rc) goto out; - - rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got); - if (rc) goto out; - - if (!got) { - rc = +1; - goto out; - } - - if (strcmp(got, lds->cmd)) { - LOG(ERROR,"logdirty switch: sent command `%s' but got reply `%s'" - " (xenstore paths `%s' / `%s')", lds->cmd, got, - lds->cmd_path, lds->ret_path); - rc = ERROR_FAIL; - goto out; - } - - rc = libxl__xs_rm_checked(gc, t, lds->cmd_path); - if (rc) goto out; - - rc = libxl__xs_rm_checked(gc, t, lds->ret_path); - if (rc) goto out; - - rc = libxl__xs_transaction_commit(gc, &t); - if (!rc) break; - if (rc<0) goto out; - } - - out: - /* rc < 0: error - * rc == 0: ok, we are done - * rc == +1: need to keep waiting - */ - libxl__xs_transaction_abort(gc, &t); - - if (rc <= 0) { - if (rc < 0) - LOG(ERROR,"logdirty switch: failed (rc=%d)",rc); - switch_logdirty_done(egc,lds,rc); - } -} - static void domain_suspend_switch_qemu_xen_logdirty (libxl__egc *egc, int domid, unsigned enable, libxl__logdirty_switch *lds) diff --git a/tools/libs/light/libxl_dom_suspend.c b/tools/libs/light/libxl_dom_suspend.c index 6091a5f3f6..f0a74fc82c 100644 --- a/tools/libs/light/libxl_dom_suspend.c +++ b/tools/libs/light/libxl_dom_suspend.c @@ -85,15 +85,8 @@ void libxl__domain_suspend_device_model(libxl__egc *egc, STATE_AO_GC(dsps->ao); int rc = 0; uint32_t const domid = dsps->domid; - const char *const filename = dsps->dm_savefile; switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: { - LOGD(DEBUG, domid, "Saving device model state to %s", filename); - libxl__qemu_traditional_cmd(gc, domid, "save"); - libxl__wait_for_device_model_deprecated(gc, domid, "paused", NULL, NULL, NULL); - break; - } case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: /* calls dsps->callback_device_model_done when done */ libxl__qmp_suspend_save(egc, dsps); /* must be last */ @@ -420,21 +413,7 @@ static void domain_suspend_callback_common_done(libxl__egc *egc, int libxl__domain_resume_device_model_deprecated(libxl__gc *gc, uint32_t domid) { - const char *path, *state; - switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: { - uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid); - - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state"); - state = libxl__xs_read(gc, XBT_NULL, path); - if (state != NULL && !strcmp(state, "paused")) { - libxl__qemu_traditional_cmd(gc, domid, "continue"); - libxl__wait_for_device_model_deprecated(gc, domid, "running", - NULL, NULL, NULL); - } - break; - } case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: if (libxl__qmp_resume(gc, domid)) return ERROR_FAIL; @@ -493,8 +472,6 @@ static void dm_resume_dispose(libxl__gc *gc, libxl__ev_xswatch_deregister(gc, &dmrs->watch); } -static void dm_resume_xswatch_cb(libxl__egc *egc, - libxl__ev_xswatch *, const char *watch_path, const char *); static void dm_resume_qmp_done(libxl__egc *egc, libxl__ev_qmp *qmp, const libxl__json_object *, int rc); static void dm_resume_timeout(libxl__egc *egc, @@ -521,27 +498,6 @@ void libxl__dm_resume(libxl__egc *egc, if (rc) goto out; switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: { - uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid); - const char *path, *state; - - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state"); - rc = libxl__xs_read_checked(gc, XBT_NULL, path, &state); - if (rc) goto out; - if (!state || strcmp(state, "paused")) { - /* already running */ - rc = 0; - goto out; - } - - rc = libxl__qemu_traditional_cmd(gc, domid, "continue"); - if (rc) goto out; - rc = libxl__ev_xswatch_register(gc, &dmrs->watch, - dm_resume_xswatch_cb, - path); - if (rc) goto out; - break; - } case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: qmp->ao = dmrs->ao; qmp->domid = domid; @@ -561,27 +517,6 @@ out: dm_resume_done(egc, dmrs, rc); } -static void dm_resume_xswatch_cb(libxl__egc *egc, - libxl__ev_xswatch *xsw, - const char *watch_path, - const char *event_path) -{ - EGC_GC; - libxl__dm_resume_state *dmrs = CONTAINER_OF(xsw, *dmrs, watch); - int rc; - const char *value; - - rc = libxl__xs_read_checked(gc, XBT_NULL, watch_path, &value); - if (rc) goto out; - - if (!value || strcmp(value, "running")) - return; - - rc = 0; -out: - dm_resume_done(egc, dmrs, rc); -} - static void dm_resume_qmp_done(libxl__egc *egc, libxl__ev_qmp *qmp, const libxl__json_object *response, diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c index 6751fc785f..dd2e5e9a19 100644 --- a/tools/libs/light/libxl_domain.c +++ b/tools/libs/light/libxl_domain.c @@ -1877,8 +1877,6 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t domid, switch (libxl__domain_type(gc, domid)) { case LIBXL_DOMAIN_TYPE_HVM: switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: rc = libxl__ev_time_register_rel(ao, &svos->timeout, set_vcpuonline_timeout, @@ -2116,7 +2114,6 @@ static void domain_s3_resume(libxl__ao *ao, libxl__egc *egc, int domid) AO_GC; libxl__ev_qmp *qmp; int rc = 0; - int r; GCNEW(qmp); libxl__ev_qmp_init(qmp); @@ -2128,14 +2125,6 @@ static void domain_s3_resume(libxl__ao *ao, libxl__egc *egc, int domid) switch (libxl__domain_type(gc, domid)) { case LIBXL_DOMAIN_TYPE_HVM: switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - r = xc_hvm_param_set(CTX->xch, domid, HVM_PARAM_ACPI_S_STATE, 0); - if (r) { - LOGED(ERROR, domid, "Send trigger '%s' failed", - libxl_trigger_to_string(LIBXL_TRIGGER_S3RESUME)); - rc = ERROR_FAIL; - } - break; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: rc = libxl__ev_qmp_send(egc, qmp, "system_wakeup", NULL); if (rc) goto out; @@ -2481,10 +2470,6 @@ static void retrieve_domain_configuration_end(libxl__egc *egc, case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: libxl_bitmap_copy(CTX, map, &rdcs->qemuu_cpus); break; - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - rc = libxl__update_avail_vcpus_xenstore(gc, domid, - max_vcpus, map); - break; default: abort(); } diff --git a/tools/libs/light/libxl_internal.c b/tools/libs/light/libxl_internal.c index c95624933f..2941ca0bbd 100644 --- a/tools/libs/light/libxl_internal.c +++ b/tools/libs/light/libxl_internal.c @@ -387,11 +387,9 @@ int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid) path = libxl__xs_libxl_path(gc, domid); path = GCSPRINTF("%s/dm-version", path); dm_version = libxl__xs_read(gc, XBT_NULL, path); - if (!dm_version) { - return LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL; - } - if (libxl_device_model_version_from_string(dm_version, &value) < 0) { + if (!dm_version || + libxl_device_model_version_from_string(dm_version, &value) < 0) { LOGD(ERROR, domid, "fatal: %s contain a wrong value (%s)", path, dm_version); return -1; } diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h index cfac8e18b6..4b4a566378 100644 --- a/tools/libs/light/libxl_internal.h +++ b/tools/libs/light/libxl_internal.h @@ -1423,8 +1423,6 @@ _hidden int libxl__build_hvm(libxl__gc *gc, uint32_t domid, libxl_domain_config *d_config, libxl__domain_build_state *state); -_hidden int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid, - const char *cmd); _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid, const char *old_name, const char *new_name, xs_transaction_t trans); @@ -2318,8 +2316,7 @@ _hidden char *libxl__json_object_to_json(libxl__gc *gc, #define JSON(o) \ (libxl__json_object_to_json(gc, (o)) ? : "") - /* Based on /local/domain/$domid/dm-version xenstore key - * default is qemu xen traditional */ + /* Based on /local/domain/$domid/dm-version xenstore key */ _hidden int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid); static inline diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c index 1647fd6f47..8c5f914435 100644 --- a/tools/libs/light/libxl_pci.c +++ b/tools/libs/light/libxl_pci.c @@ -1020,82 +1020,6 @@ static int pci_multifunction_check(libxl__gc *gc, libxl_device_pci *pci, unsigne return 0; } -static int pci_ins_check(libxl__gc *gc, uint32_t domid, const char *state, void *priv) -{ - char *orig_state = priv; - - if ( !strcmp(state, "pci-insert-failed") ) - return -1; - if ( !strcmp(state, "pci-inserted") ) - return 0; - if ( !strcmp(state, orig_state) ) - return 1; - - return 1; -} - -static int qemu_pci_add_xenstore(libxl__gc *gc, uint32_t domid, - libxl_device_pci *pci) -{ - libxl_ctx *ctx = libxl__gc_owner(gc); - int rc = 0; - char *path; - char *state, *vdevfn; - uint32_t dm_domid; - - dm_domid = libxl_get_stubdom_id(CTX, domid); - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state"); - state = libxl__xs_read(gc, XBT_NULL, path); - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter"); - if (pci->vdevfn) { - libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF_VDEVFN","PCI_OPTIONS, - pci->domain, pci->bus, pci->dev, - pci->func, pci->vdevfn, pci->msitranslate, - pci->power_mgmt); - } else { - libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF","PCI_OPTIONS, - pci->domain, pci->bus, pci->dev, - pci->func, pci->msitranslate, pci->power_mgmt); - } - - libxl__qemu_traditional_cmd(gc, domid, "pci-ins"); - rc = libxl__wait_for_device_model_deprecated(gc, domid, NULL, NULL, - pci_ins_check, state); - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter"); - vdevfn = libxl__xs_read(gc, XBT_NULL, path); - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state"); - if ( rc < 0 ) - LOGD(ERROR, domid, "qemu refused to add device: %s", vdevfn); - else if ( sscanf(vdevfn, "0x%x", &pci->vdevfn) != 1 ) { - LOGD(ERROR, domid, "wrong format for the vdevfn: '%s'", vdevfn); - rc = -1; - } - xs_write(ctx->xsh, XBT_NULL, path, state, strlen(state)); - - return rc; -} - -static int check_qemu_running(libxl__gc *gc, - libxl_domid domid, - libxl__xswait_state *xswa, - int rc, - const char *state) -{ - if (rc) { - if (rc == ERROR_TIMEDOUT) { - LOGD(ERROR, domid, "%s not ready", xswa->what); - } - goto out; - } - - if (!state || strcmp(state, "running")) - return ERROR_NOT_READY; - -out: - libxl__xswait_stop(gc, xswa); - return rc; -} - typedef struct pci_add_state { /* filled by user of do_pci_add */ libxl__ao_device *aodev; @@ -1116,8 +1040,6 @@ typedef struct pci_add_state { int retries; } pci_add_state; -static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc, - libxl__xswait_state *xswa, int rc, const char *state); static void pci_add_qmp_device_add(libxl__egc *, pci_add_state *); static void pci_add_qmp_device_add_cb(libxl__egc *, libxl__ev_qmp *, const libxl__json_object *, int rc); @@ -1153,16 +1075,6 @@ static void do_pci_add(libxl__egc *egc, if (type == LIBXL_DOMAIN_TYPE_HVM) { switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - pas->xswait.ao = ao; - pas->xswait.what = "Device Model"; - pas->xswait.path = DEVICE_MODEL_XS_PATH(gc, - libxl_get_stubdom_id(CTX, domid), domid, "/state"); - pas->xswait.timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000; - pas->xswait.callback = pci_add_qemu_trad_watch_state_cb; - rc = libxl__xswait_start(gc, &pas->xswait); - if (rc) goto out; - return; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: rc = libxl__ev_time_register_rel(ao, &pas->timeout, pci_add_timeout, @@ -1183,29 +1095,6 @@ out: pci_add_dm_done(egc, pas, rc); /* must be last */ } -static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc, - libxl__xswait_state *xswa, - int rc, - const char *state) -{ - pci_add_state *pas = CONTAINER_OF(xswa, *pas, xswait); - STATE_AO_GC(pas->aodev->ao); - - /* Convenience aliases */ - libxl_domid domid = pas->domid; - libxl_device_pci *pci = &pas->pci; - - rc = check_qemu_running(gc, domid, xswa, rc, state); - if (rc == ERROR_NOT_READY) - return; - if (rc) - goto out; - - rc = qemu_pci_add_xenstore(gc, domid, pci); -out: - pci_add_dm_done(egc, pas, rc); /* must be last */ -} - static void pci_add_qmp_device_add(libxl__egc *egc, pci_add_state *pas) { STATE_AO_GC(pas->aodev->ao); @@ -1877,42 +1766,6 @@ static void add_pcis_done(libxl__egc *egc, libxl__multidev *multidev, aodev->callback(egc, aodev); } -static int qemu_pci_remove_xenstore(libxl__gc *gc, uint32_t domid, - libxl_device_pci *pci, int force) -{ - libxl_ctx *ctx = libxl__gc_owner(gc); - char *state; - char *path; - uint32_t dm_domid; - - dm_domid = libxl_get_stubdom_id(CTX, domid); - - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state"); - state = libxl__xs_read(gc, XBT_NULL, path); - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter"); - libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF, pci->domain, - pci->bus, pci->dev, pci->func); - - /* Remove all functions at once atomically by only signalling - * device-model for function 0 */ - if ( !force && (pci->vdevfn & 0x7) == 0 ) { - libxl__qemu_traditional_cmd(gc, domid, "pci-rem"); - if (libxl__wait_for_device_model_deprecated(gc, domid, "pci-removed", - NULL, NULL, NULL) < 0) { - LOGD(ERROR, domid, "Device Model didn't respond in time"); - /* This depends on guest operating system acknowledging the - * SCI, if it doesn't respond in time then we may wish to - * force the removal. - */ - return ERROR_FAIL; - } - } - path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state"); - xs_write(ctx->xsh, XBT_NULL, path, state, strlen(state)); - - return 0; -} - typedef struct pci_remove_state { libxl__ao_device *aodev; libxl_domid domid; @@ -1935,8 +1788,6 @@ static void libxl__device_pci_remove_common(libxl__egc *egc, static void device_pci_remove_common_next(libxl__egc *egc, pci_remove_state *prs, int rc); -static void pci_remove_qemu_trad_watch_state_cb(libxl__egc *egc, - libxl__xswait_state *xswa, int rc, const char *state); static void pci_remove_qmp_device_del(libxl__egc *egc, pci_remove_state *prs); static void pci_remove_qmp_device_del_cb(libxl__egc *egc, @@ -1982,16 +1833,6 @@ static void do_pci_remove(libxl__egc *egc, pci_remove_state *prs) if (type == LIBXL_DOMAIN_TYPE_HVM) { prs->hvm = true; switch (libxl__device_model_version_running(gc, domid)) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - prs->xswait.ao = ao; - prs->xswait.what = "Device Model"; - prs->xswait.path = DEVICE_MODEL_XS_PATH(gc, - libxl_get_stubdom_id(CTX, domid), domid, "/state"); - prs->xswait.timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000; - prs->xswait.callback = pci_remove_qemu_trad_watch_state_cb; - rc = libxl__xswait_start(gc, &prs->xswait); - if (rc) goto out_fail; - return; case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: pci_remove_qmp_device_del(egc, prs); /* must be last */ return; @@ -2005,30 +1846,6 @@ out_fail: pci_remove_detached(egc, prs, rc); /* must be last */ } -static void pci_remove_qemu_trad_watch_state_cb(libxl__egc *egc, - libxl__xswait_state *xswa, - int rc, - const char *state) -{ - pci_remove_state *prs = CONTAINER_OF(xswa, *prs, xswait); - STATE_AO_GC(prs->aodev->ao); - - /* Convenience aliases */ - libxl_domid domid = prs->domid; - libxl_device_pci *const pci = &prs->pci; - - rc = check_qemu_running(gc, domid, xswa, rc, state); - if (rc == ERROR_NOT_READY) - return; - if (rc) - goto out; - - rc = qemu_pci_remove_xenstore(gc, domid, pci, prs->force); - -out: - pci_remove_detached(egc, prs, rc); -} - static void pci_remove_qmp_device_del(libxl__egc *egc, pci_remove_state *prs) { diff --git a/tools/libs/light/libxl_stream_write.c b/tools/libs/light/libxl_stream_write.c index 634f3240d1..98d44597a7 100644 --- a/tools/libs/light/libxl_stream_write.c +++ b/tools/libs/light/libxl_stream_write.c @@ -252,10 +252,6 @@ void libxl__stream_write_start(libxl__egc *egc, stream->device_model_version = libxl__device_model_version_running(gc, dss->domid); switch (stream->device_model_version) { - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: - stream->emu_sub_hdr.id = EMULATOR_QEMU_TRADITIONAL; - break; - case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: stream->emu_sub_hdr.id = EMULATOR_QEMU_UPSTREAM; break; diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl index bd4b8721ff..682bc1bd64 100644 --- a/tools/libs/light/libxl_types.idl +++ b/tools/libs/light/libxl_types.idl @@ -104,7 +104,6 @@ libxl_channel_connection = Enumeration("channel_connection", [ libxl_device_model_version = Enumeration("device_model_version", [ (0, "UNKNOWN"), - (1, "QEMU_XEN_TRADITIONAL"), # Historical qemu-xen device model (qemu-dm) (2, "QEMU_XEN"), # Upstream based qemu-xen device model ]) diff --git a/tools/python/xen/migration/libxl.py b/tools/python/xen/migration/libxl.py index 5dcb50fe02..dc5c7ac355 100644 --- a/tools/python/xen/migration/libxl.py +++ b/tools/python/xen/migration/libxl.py @@ -51,12 +51,10 @@ rec_type_to_str = { EMULATOR_HEADER_FORMAT = "II" EMULATOR_ID_unknown = 0x00000000 -EMULATOR_ID_qemu_trad = 0x00000001 EMULATOR_ID_qemu_upstream = 0x00000002 emulator_id_to_str = { EMULATOR_ID_unknown : "Unknown", - EMULATOR_ID_qemu_trad : "Qemu Traditional", EMULATOR_ID_qemu_upstream : "Qemu Upstream", } diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c index 089a88935a..219e924779 100644 --- a/tools/xl/xl_parse.c +++ b/tools/xl/xl_parse.c @@ -2733,10 +2733,7 @@ skip_usbdev: xlu_cfg_replace_string (config, "device_model_override", &b_info->device_model, 0); if (!xlu_cfg_get_string (config, "device_model_version", &buf, 0)) { - if (!strcmp(buf, "qemu-xen-traditional")) { - b_info->device_model_version - = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL; - } else if (!strcmp(buf, "qemu-xen")) { + if (!strcmp(buf, "qemu-xen")) { b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN; } else { From patchwork Wed Mar 26 16:04:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 14030278 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B5AC2C36008 for ; Wed, 26 Mar 2025 16:05:20 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.928062.1330848 (Exim 4.92) (envelope-from ) id 1txTFg-0002jQ-LI; Wed, 26 Mar 2025 16:05:12 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 928062.1330848; Wed, 26 Mar 2025 16:05:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFg-0002jH-HK; Wed, 26 Mar 2025 16:05:12 +0000 Received: by outflank-mailman (input) for mailman id 928062; Wed, 26 Mar 2025 16:05:10 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFe-0001z3-L4 for xen-devel@lists.xenproject.org; Wed, 26 Mar 2025 16:05:10 +0000 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 16d6864b-0a5c-11f0-9ffa-bf95429c2676; Wed, 26 Mar 2025 17:05:08 +0100 (CET) Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1F3001F395; Wed, 26 Mar 2025 16:05:08 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id AEFD21374A; Wed, 26 Mar 2025 16:05:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 9mRCKbMl5GcgaQAAD6G6ig (envelope-from ); Wed, 26 Mar 2025 16:05:07 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 16d6864b-0a5c-11f0-9ffa-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005108; h=from:from:reply-to: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=wo7/7gJlfb6rg7ehV94OB+q9oJzLgzT/XzrTBr8sNpE=; b=a09RH0ULJsXIHbHkSjAyWVjHKYvlm4tZwauqlGgw5GvFyQTc2/7dHn6j+0zWjPvL4J1SHP vV3bOwVw2+1f2A5d3jeSAizrwG2zk8byjN/Jv7ALpTZhqyQpg4x6cA+C/WwFJ5ZSGuJGx4 76RaLcn7G25+T2c8ZMhMCsmDYJPQfus= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005108; h=from:from:reply-to: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=wo7/7gJlfb6rg7ehV94OB+q9oJzLgzT/XzrTBr8sNpE=; b=a09RH0ULJsXIHbHkSjAyWVjHKYvlm4tZwauqlGgw5GvFyQTc2/7dHn6j+0zWjPvL4J1SHP vV3bOwVw2+1f2A5d3jeSAizrwG2zk8byjN/Jv7ALpTZhqyQpg4x6cA+C/WwFJ5ZSGuJGx4 76RaLcn7G25+T2c8ZMhMCsmDYJPQfus= From: Juergen Gross To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Stefano Stabellini , Oleksii Kurochko , Community Manager , Samuel Thibault Subject: [PATCH 4/6] tools: remove qemu-traditional Date: Wed, 26 Mar 2025 17:04:38 +0100 Message-ID: <20250326160442.19706-5-jgross@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250326160442.19706-1-jgross@suse.com> References: <20250326160442.19706-1-jgross@suse.com> MIME-Version: 1.0 X-Spamd-Result: default: False [-1.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_TWELVE(0.00)[12]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; FROM_HAS_DN(0.00)[]; FREEMAIL_CC(0.00)[suse.com,citrix.com,vates.tech,amd.com,xen.org,kernel.org,gmail.com,xenproject.org,ens-lyon.org]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; DBL_BLOCKED_OPENRESOLVER(0.00)[stubdompath.sh:url,invisiblethingslab.com:email,xenstorepvh-minios-config.mk:url,support.md:url,changelog.md:url,vates.tech:email,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo,xenproject.org:url,ioemu-minios-config.mk:url,keepachangelog.com:url,xen.org:url,config.mk:url] Remove qemu traditional from the tree. Signed-off-by: Juergen Gross --- .gitignore | 3 -- CHANGELOG.md | 1 + Config.mk | 24 ----------- INSTALL | 12 ------ MAINTAINERS | 4 -- README | 2 +- SUPPORT.md | 16 ------- config/Tools.mk.in | 1 - stubdom/Makefile | 84 +------------------------------------ stubdom/configure | 90 ---------------------------------------- stubdom/configure.ac | 15 ------- stubdom/ioemu-minios.cfg | 6 --- tools/Makefile | 58 -------------------------- tools/Rules.mk | 3 -- tools/config.h.in | 3 -- tools/configure | 40 ++---------------- tools/configure.ac | 21 +--------- 17 files changed, 9 insertions(+), 374 deletions(-) delete mode 100644 stubdom/ioemu-minios.cfg diff --git a/.gitignore b/.gitignore index 53f5df0003..ccc0bebee6 100644 --- a/.gitignore +++ b/.gitignore @@ -255,9 +255,6 @@ LibVNCServer* tools/qemu-xen-dir-remote tools/qemu-xen-dir -tools/qemu-xen-traditional-dir-remote -tools/qemu-xen-traditional-dir - tools/firmware/seabios-dir-remote tools/firmware/seabios-dir diff --git a/CHANGELOG.md b/CHANGELOG.md index b03e2c73d7..d530b1d95b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) capability usage is not yet supported on PVH dom0). ### Removed + - Support of qemu-traditional has been removed. ## [4.20.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0) - 2025-03-05 diff --git a/Config.mk b/Config.mk index 8a73f3da62..435bc93c0d 100644 --- a/Config.mk +++ b/Config.mk @@ -208,22 +208,12 @@ XEN_EXTFILES_URL ?= https://xenbits.xen.org/xen-extfiles # Where to look for inlined subtrees (for example, from a tarball) QEMU_UPSTREAM_INTREE ?= $(XEN_ROOT)/tools/qemu-xen -QEMU_TRADITIONAL_INTREE ?= $(XEN_ROOT)/tools/qemu-xen-traditional # Handle legacy options ifneq (,$(SEABIOS_UPSTREAM_TAG)) SEABIOS_UPSTREAM_REVISION ?= $(SEABIOS_UPSTREAM_TAG) endif -ifneq (,$(QEMU_REMOTE)) -QEMU_TRADITIONAL_URL ?= $(QEMU_REMOTE) -endif -ifneq (,$(CONFIG_QEMU)) -QEMU_TRADITIONAL_LOC ?= $(CONFIG_QEMU) -endif -ifneq (,$(QEMU_TAG)) -QEMU_TRADITIONAL_REVISION ?= $(QEMU_TAG) -endif OVMF_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/ovmf.git OVMF_UPSTREAM_REVISION ?= ba91d0292e593df8528b66f99c1b0b14fadc8e16 @@ -239,20 +229,6 @@ SEABIOS_UPSTREAM_REVISION ?= rel-1.16.3 ETHERBOOT_NICS ?= rtl8139 8086100e - -QEMU_TRADITIONAL_URL ?= https://xenbits.xen.org/git-http/qemu-xen-traditional.git -QEMU_TRADITIONAL_REVISION ?= 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 -# Wed Jul 15 10:01:40 2020 +0100 -# qemu-trad: remove Xen path dependencies - -# Specify which qemu-dm to use. This may be `ioemu' to use the old -# Mercurial in-tree version, or a local directory, or a git URL. -# QEMU_UPSTREAM_LOC ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git - -# Defaults for subtree locations -QEMU_TRADITIONAL_LOC ?= $(call or,$(wildcard $(QEMU_TRADITIONAL_INTREE)),\ - $(QEMU_TRADITIONAL_URL)) - QEMU_UPSTREAM_LOC ?= $(call or,$(wildcard $(QEMU_UPSTREAM_INTREE)),\ $(QEMU_UPSTREAM_URL)) diff --git a/INSTALL b/INSTALL index 88c1464816..786e3da996 100644 --- a/INSTALL +++ b/INSTALL @@ -113,15 +113,6 @@ Build a private copy of SeaBIOS. Use the given SeaBIOS binary instead of compiling a private copy. --with-system-seabios=PATH -Build the old qemu used by xm/xend. This is required if existing domUs -should be migrated to this host, or if existing domU snapshots should be -started with this version of the tools. Only if all domUs used the new -upstream qemu during initial start it is safe to disable this option. -The old qemu requires rombios, which can be disable along with -qemu-traditional. - --enable-qemu-traditional - --enable-rombios - The libxl toolstack uses the upstream qemu per default. A private copy will be built. If desired this private copy can be configured with additional options passed to its configure script. @@ -245,7 +236,6 @@ locations. XEN_EXTFILES_URL= OVMF_UPSTREAM_URL= QEMU_UPSTREAM_URL= -QEMU_TRADITIONAL_URL= SEABIOS_UPSTREAM_URL= MINIOS_UPSTREAM_URL= @@ -253,7 +243,6 @@ Using additional CFLAGS to build tools which will run in dom0 is required when building distro packages. These variables can be used to pass RPM_OPT_FLAGS. EXTRA_CFLAGS_XEN_TOOLS= -EXTRA_CFLAGS_QEMU_TRADITIONAL= EXTRA_CFLAGS_QEMU_XEN= Additional CFLAGS may be supplied to the build of the hypervisor by @@ -340,7 +329,6 @@ sudo make install BOOT_DIR=/ood/path/boot EFI_DIR=/odd/path/efi export WGET=$(type -P false) export GIT=$(type -P false) export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS" -export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS" export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS" %configure \ --with-initddir=%{_initddir} diff --git a/MAINTAINERS b/MAINTAINERS index c11b82eca9..7d1b3b8641 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -466,10 +466,6 @@ M: Marek Marczykowski-Górecki S: Supported F: tools/python -QEMU-DM -S: Supported -T: git https://xenbits.xenproject.org/git-http/qemu-xen-traditional.git - QEMU UPSTREAM M: Stefano Stabellini M: Anthony Perard diff --git a/README b/README index be90be3910..6ee58f7b35 100644 --- a/README +++ b/README @@ -80,7 +80,7 @@ disabled at compile time: libnl-3-dev, etc). Required if network buffering is desired when using Remus with libxl. See docs/README.remus for detailed information. - * 16-bit x86 assembler, loader and compiler for qemu-traditional / rombios + * 16-bit x86 assembler, loader and compiler for rombios (dev86 rpm or bin86 & bcc debs) * Development install of liblzma for rombios * Development install of libbz2, liblzma, liblzo2, and libzstd for DomU diff --git a/SUPPORT.md b/SUPPORT.md index ed4412f0af..39cb1ddee1 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -995,21 +995,6 @@ See the section **Blkback** for image formats supported by QEMU. Status: Supported, not security supported -### qemu-xen-traditional ### - -The Xen Project provides an old version of qemu with modifications -which enable use as a device model stub domain. The old version is -normally selected by default only in a stub dm configuration, but it -can be requested explicitly in other configurations, for example in -`xl` with `device_model_version="QEMU_XEN_TRADITIONAL"`. - - Status, Device Model Stub Domains: Supported, with caveats - Status, as host process device model: No security support, not recommended - -qemu-xen-traditional is security supported only for those available -devices which are supported for mainstream QEMU (see above), with -trusted driver domains (see Device Model Stub Domains). - ## Virtual Firmware ### x86/HVM iPXE @@ -1028,7 +1013,6 @@ as the guest itself. Booting a guest via guest BIOS firmware Status, SeaBIOS (qemu-xen): Supported - Status, ROMBIOS (qemu-xen-traditional): Supported ### x86/HVM OVMF diff --git a/config/Tools.mk.in b/config/Tools.mk.in index 37c071961e..463ab75965 100644 --- a/config/Tools.mk.in +++ b/config/Tools.mk.in @@ -43,7 +43,6 @@ CONFIG_OVMF := @ovmf@ CONFIG_ROMBIOS := @rombios@ CONFIG_SEABIOS := @seabios@ CONFIG_IPXE := @ipxe@ -CONFIG_QEMU_TRAD := @qemu_traditional@ CONFIG_QEMU_XEN := @qemu_xen@ CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@ CONFIG_LIBNL := @libnl@ diff --git a/stubdom/Makefile b/stubdom/Makefile index 724ce40365..82fc1e90f8 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -7,7 +7,6 @@ export PKG_CONFIG_DIR = $(CURDIR)/pkg-config # Remove flags which are meant for tools, e.g. "-m64" export EXTRA_CFLAGS_XEN_TOOLS= -export EXTRA_CFLAGS_QEMU_TRADITIONAL= export stubdom=y export debug=y @@ -267,43 +266,6 @@ cross-tpmemu: $(TPMEMU_STAMPFILE) .PHONY: $(CROSS_ROOT) $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci -QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi) - -ifneq ($(filter ioemu,$(STUBDOM_TARGETS)),) -IOEMU_LINKFARM_TARGET := ioemu/linkfarm.stamp -endif - -ifeq ($(QEMU_ROOT),.) -$(XEN_ROOT)/tools/qemu-xen-traditional-dir: - $(MAKE) DESTDIR= -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find - -ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir - mkdir -p ioemu - set -e; \ - $(buildmakevars2shellvars); \ - cd ioemu; \ - src="$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src; \ - (cd $$src && find * -type d \ - $(addprefix ! -path , '*-softmmu*' '*-linux-user*') -print) \ - | xargs mkdir -p; \ - (cd $$src && find * ! -type l -type f $(addprefix ! -path , \ - '*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen \ - '*.html' '*.pod' '*-softmmu*' '*-linux-user*' \ - )) >linkfarm.stamp.tmp; \ - cmp -s linkfarm.stamp.tmp linkfarm.stamp && \ - rm linkfarm.stamp.tmp || { \ - mv linkfarm.stamp.tmp linkfarm.stamp; \ - cat linkfarm.stamp | while read f; \ - do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done; \ - } -else -export QEMU_ROOT - -ioemu/linkfarm.stamp: - mkdir -p ioemu - touch ioemu/linkfarm.stamp -endif - ####### # libraries under tools/libs ####### @@ -380,29 +342,6 @@ $(TARGETS_MINIOS): mini-os-%: mkdir -p $@/$$i ; \ done -####### -# ioemu -####### - -ioemu-minios.gen.cfg: APP_LIBS = evtchn gnttab ctrl guest -ioemu-minios.gen.cfg: ioemu-minios.cfg Makefile - $(GEN_config) >$@ - -ioemu-minios-config.mk: ioemu-minios.gen.cfg - MINIOS_CONFIG="$(CURDIR)/$<" CONFIG_FILE="$(CURDIR)/$@" $(MAKE) DESTDIR= -C $(MINI_OS) config - -.PHONY: ioemu -ioemu: cross-zlib cross-libpci libxenguest ioemu-minios-config.mk - [ -f ioemu/config-host.mak ] || \ - ( $(buildmakevars2shellvars); \ - cd ioemu ; \ - LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \ - TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) $(shell cat ioemu-minios-config.mk)" \ - TARGET_CFLAGS="$(TARGET_CFLAGS)" \ - TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ - $(QEMU_ROOT)/xen-setup-stubdom ) - $(MAKE) DESTDIR= -C ioemu -f $(QEMU_ROOT)/Makefile - ### # C ### @@ -496,11 +435,6 @@ xenstorepvh: $(CROSS_ROOT) xenstorepvh-minios-config.mk # minios ######## -.PHONY: ioemu-stubdom -ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a -ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxenguest ioemu - DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.gen.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)" - .PHONY: c-stubdom c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxenguest c DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a @@ -544,13 +478,6 @@ else install: $(STUBDOMPATH) endif -install-ioemu: ioemu-stubdom - $(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC_BIN)" - $(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC_BIN)" - $(INSTALL_DATA) stubdompath.sh "$(DESTDIR)$(LIBEXEC_BIN)" - $(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)" - $(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz" - install-grub: pv-grub $(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)" $(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz" @@ -593,11 +520,6 @@ else uninstall: endif -uninstall-ioemu: - rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdom-dm - rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdompath.sh - rm -f $(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz - uninstall-grub: rm -f $(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz @@ -617,11 +539,10 @@ uninstall-vtpmmgr: # clean ####### -# Only clean the libxc/ioemu/mini-os part +# Only clean the libxc/mini-os part .PHONY: clean clean: $(foreach lib,$(STUB_LIBS),clean-libxen$(lib)) clean: - rm -fr mini-os-$(XEN_TARGET_ARCH)-ioemu rm -fr mini-os-$(XEN_TARGET_ARCH)-c rm -fr mini-os-$(XEN_TARGET_ARCH)-grub rm -fr mini-os-$(XEN_TARGET_ARCH)-xenstore @@ -636,7 +557,6 @@ clean: rm -f *-minios-config.mk rm -f *.gen.cfg rm -fr pkg-config - -[ ! -d ioemu ] || $(MAKE) DESTDIR= -C ioemu clean -[ ! -d xenstore ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstore clean -[ ! -d xenstorepvh ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstorepvh clean @@ -647,7 +567,7 @@ crossclean: clean rm -fr newlib-$(XEN_TARGET_ARCH) rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH) rm -fr libs-$(XEN_TARGET_ARCH) - rm -fr ioemu xenstore xenstorepvh + rm -fr xenstore xenstorepvh rm -fr gmp-$(XEN_TARGET_ARCH) rm -fr polarssl-$(XEN_TARGET_ARCH) rm -fr tpm_emulator-$(XEN_TARGET_ARCH) diff --git a/stubdom/configure b/stubdom/configure index 08cacf764c..503516b304 100755 --- a/stubdom/configure +++ b/stubdom/configure @@ -622,7 +622,6 @@ STUBDOM_UNINSTALL STUBDOM_INSTALL STUBDOM_BUILD STUBDOM_TARGETS -ioemu vtpmmgr vtpm TPMEMU_VERSION @@ -713,14 +712,12 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking -enable_ioemu_stubdom enable_c_stubdom enable_pv_grub enable_xenstore_stubdom enable_xenstorepvh_stubdom enable_vtpm_stubdom enable_vtpmmgr_stubdom -enable_qemu_traditional enable_debug enable_extfiles ' @@ -1363,7 +1360,6 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-ioemu-stubdom Build and install ioemu-stubdom --enable-c-stubdom Build and install c-stubdom (default is DISABLED) --enable-pv-grub Build and install pv-grub (default is DISABLED) --disable-xenstore-stubdom @@ -2411,40 +2407,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Enable/disable stub domains -# Check whether --enable-ioemu-stubdom was given. -if test ${enable_ioemu_stubdom+y} -then : - enableval=$enable_ioemu_stubdom; - -if test "x$enableval" = "xyes" -then : - - -ioemu=y -STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu" -STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom" -STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu" -STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu" - - -else $as_nop - -if test "x$enableval" = "xno" -then : - - -ioemu=n - - -fi - -fi - - -fi - - - # Check whether --enable-c-stubdom was given. if test ${enable_c_stubdom+y} then : @@ -2685,36 +2647,6 @@ fi -# Check whether --enable-qemu-traditional was given. -if test ${enable_qemu_traditional+y} -then : - enableval=$enable_qemu_traditional; -fi - -if test "x$enable_qemu_traditional" = "xyes" -then : - - qemu_traditional=y -else $as_nop - - qemu_traditional=n - -fi -if test "x$ioemu" = "x" -then : - - ioemu=$qemu_traditional - -fi -echo "x$ioemu$qemu_traditional" -if test "x$ioemu$qemu_traditional" = "xyn" -then : - - as_fn_error $? "IOEMU stubdomain requires qemu-traditional" "$LINENO" 5 - -fi - - # Check whether --enable-debug was given. if test ${enable_debug+y} then : @@ -4358,28 +4290,6 @@ fi -if test "x$ioemu" = "xy" || test "x$ioemu" = "x" -then : - - -ioemu=y -STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu" -STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom" -STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu" -STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu" - - -else $as_nop - - -ioemu=n - - -fi - - - - diff --git a/stubdom/configure.ac b/stubdom/configure.ac index fc736c0387..f07b08c5b3 100644 --- a/stubdom/configure.ac +++ b/stubdom/configure.ac @@ -18,7 +18,6 @@ m4_include([../m4/depends.m4]) m4_include([../m4/fetcher.m4]) # Enable/disable stub domains -AX_STUBDOM_CONDITIONAL([ioemu-stubdom], [ioemu]) AX_STUBDOM_DEFAULT_DISABLE([c-stubdom], [c]) AX_STUBDOM_DEFAULT_DISABLE([pv-grub], [grub]) AX_STUBDOM_DEFAULT_ENABLE([xenstore-stubdom], [xenstore]) @@ -26,19 +25,6 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstorepvh-stubdom], [xenstorepvh]) AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm]) AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr]) -AC_ARG_ENABLE([qemu-traditional]) -AS_IF([test "x$enable_qemu_traditional" = "xyes"], [ - qemu_traditional=y],[ - qemu_traditional=n -]) -AS_IF([test "x$ioemu" = "x"], [ - ioemu=$qemu_traditional -]) -echo "x$ioemu$qemu_traditional" -AS_IF([test "x$ioemu$qemu_traditional" = "xyn"], [ - AC_MSG_ERROR(IOEMU stubdomain requires qemu-traditional) -]) - AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of stubdom]) AX_ARG_DEFAULT_ENABLE([extfiles], [Use xen extfiles repository for libraries]) @@ -69,7 +55,6 @@ AX_STUBDOM_AUTO_DEPENDS([vtpmmgr], [vtpm]) #Conditionally enable these stubdoms based on the presense of dependencies AX_STUBDOM_CONDITIONAL_FINISH([vtpm-stubdom], [vtpm]) AX_STUBDOM_CONDITIONAL_FINISH([vtpmmgr-stubdom], [vtpmmgr]) -AX_STUBDOM_CONDITIONAL_FINISH([ioemu-stubdom], [ioemu]) AX_STUBDOM_FINISH AC_OUTPUT() diff --git a/stubdom/ioemu-minios.cfg b/stubdom/ioemu-minios.cfg deleted file mode 100644 index 6153ae05f8..0000000000 --- a/stubdom/ioemu-minios.cfg +++ /dev/null @@ -1,6 +0,0 @@ -CONFIG_LIBC=y -CONFIG_LWIP=y -CONFIG_START_NETWORK=n -CONFIG_QEMU_XS_ARGS=y -CONFIG_PCIFRONT=y -XEN_INTERFACE_VERSION=__XEN_LATEST_INTERFACE_VERSION__ diff --git a/tools/Makefile b/tools/Makefile index e9e1cda305..6ecf7c0da8 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -24,7 +24,6 @@ SUBDIRS-$(CONFIG_Linux) += vchan # do not recurse in to a dir we are about to delete ifneq "$(MAKECMDGOALS)" "distclean" -SUBDIRS-$(CONFIG_QEMU_TRAD) += qemu-xen-traditional-dir SUBDIRS-$(CONFIG_QEMU_XEN) += qemu-xen-dir endif @@ -79,7 +78,6 @@ clean: subdirs-clean .PHONY: distclean distclean: subdirs-distclean clean - rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote rm -rf qemu-xen-dir qemu-xen-dir-remote qemu-xen-build rm -rf ../config/Tools.mk config.h config.log config.status \ config.cache autom4te.cache @@ -97,11 +95,6 @@ QEMU_UPSTREAM_RPATH := -Wl,-rpath,$(LIBEXEC_LIB) IOEMU_EXTRA_LDFLAGS := endif -QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi) -ifneq ($(QEMU_ROOT),.) -export QEMU_ROOT -endif - # Targets for external trees: # ${target}-dir-find # See if the directory exists and check it out if not. @@ -136,54 +129,6 @@ endif # ${TARGET}_LOC # The ultimate location of the source (either a local dir or remote URL) -# External target: qemu-xen-traditional -qemu-xen-traditional-dir-find: - set -ex; \ - if test -d $(QEMU_TRADITIONAL_LOC); then \ - mkdir -p qemu-xen-traditional-dir; \ - else \ - export GIT=$(GIT); \ - $(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_TRADITIONAL_LOC) $(QEMU_TRADITIONAL_REVISION) qemu-xen-traditional-dir; \ - fi - -.PHONY: qemu-xen-traditional-dir-force-update -qemu-xen-traditional-dir-force-update: qemu-xen-traditional-dir-find - set -ex; \ - if [ "$(QEMU_TRADITIONAL_REVISION)" ]; then \ - cd qemu-xen-traditional-dir-remote; \ - $(GIT) fetch origin; \ - $(GIT) reset --hard $(QEMU_TRADITIONAL_REVISION); \ - fi - -qemu-traditional-recurse = \ - set -e; \ - $(buildmakevars2shellvars); \ - export CONFIG_BLKTAP1=n; \ - export BUILDING_QEMU_TRAD=y; \ - cd qemu-xen-traditional-dir; \ - $(1) - -subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find - $(call qemu-traditional-recurse,\ - $(QEMU_ROOT)/xen-setup \ - --extra-cflags="-D__XEN_TOOLS__ $(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \ - $(IOEMU_EXTRA_LDFLAGS) \ - --cpu=$(IOEMU_CPU_ARCH) \ - $(IOEMU_CONFIGURE_CROSS); \ - $(MAKE) all \ - ) - -subdir-install-qemu-xen-traditional-dir: subdir-all-qemu-xen-traditional-dir - $(call qemu-traditional-recurse,$(MAKE) install) - -subdir-clean-qemu-xen-traditional-dir: - set -e; if test -d qemu-xen-traditional-dir/.; then \ - $(MAKE) -C qemu-xen-traditional-dir clean; \ - fi -subdir-uninstall-qemu-xen-traditional-dir: - rm -f $(D)$(bindir)/qemu-nbd* - rm -f $(D)$(bindir)/qemu-img* - # External target: qemu-xen qemu-xen-dir-find: if test -d $(QEMU_UPSTREAM_LOC) ; then \ @@ -276,9 +221,6 @@ subtree-force-update: ifeq ($(CONFIG_QEMU_XEN),y) $(MAKE) qemu-xen-dir-force-update endif -ifeq ($(CONFIG_QEMU_TRAD),y) - $(MAKE) qemu-xen-traditional-dir-force-update -endif ifeq ($(CONFIG_X86),y) $(MAKE) -C firmware subtree-force-update endif diff --git a/tools/Rules.mk b/tools/Rules.mk index 6bd636709f..725c3c32e9 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -134,12 +134,9 @@ endif CFLAGS_libxenlight += $(CFLAGS_libxenctrl) -# Don't add -Werror if we are used by qemu-trad build system. -ifndef BUILDING_QEMU_TRAD ifeq ($(CONFIG_WERROR),y) CFLAGS += -Werror endif -endif ifeq ($(debug),y) # Use -Og if available, -O0 otherwise diff --git a/tools/config.h.in b/tools/config.h.in index 0bab3cb136..fe2a94cfc4 100644 --- a/tools/config.h.in +++ b/tools/config.h.in @@ -42,9 +42,6 @@ /* pygrub enabled */ #undef HAVE_PYGRUB -/* Qemu traditional enabled */ -#undef HAVE_QEMU_TRADITIONAL - /* ROMBIOS enabled */ #undef HAVE_ROMBIOS diff --git a/tools/configure b/tools/configure index e1f6ea6bf5..dbf6c72f86 100755 --- a/tools/configure +++ b/tools/configure @@ -726,7 +726,6 @@ BCC LD86 AS86 ipxe -qemu_traditional LINUX_BACKEND_MODULES pygrub golang @@ -835,7 +834,6 @@ enable_seabios enable_golang enable_pygrub with_linux_backend_modules -enable_qemu_traditional enable_ipxe with_system_ipxe enable_rombios @@ -1518,13 +1516,10 @@ Optional Features: --disable-seabios Disable SeaBIOS (default is ENABLED) --disable-golang Disable Go tools (default is ENABLED) --disable-pygrub Disable pygrub (default is ENABLED) - --enable-qemu-traditional - Enable qemu traditional device model, (DEFAULT is - off) --enable-ipxe Enable in-tree IPXE, (DEFAULT is off, see also --with-system-ipxe) - --enable-rombios Enable ROMBIOS, (DEFAULT is on if qemu-traditional - or ipxe is enabled, otherwise off) + --enable-rombios Enable ROMBIOS, (DEFAULT is on if ipxe is enabled, + otherwise off) --enable-libfsimage Enable libfsimage, (DEFAULT is on if pygrub is enabled, otherwise off) --enable-systemd Enable systemd support (default is DISABLED) @@ -4838,45 +4833,16 @@ fi LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`" -# Check whether --enable-qemu-traditional was given. -if test ${enable_qemu_traditional+y} -then : - enableval=$enable_qemu_traditional; -fi - -if test "x$enable_qemu_traditional" = "xyes" -then : - - -printf "%s\n" "#define HAVE_QEMU_TRADITIONAL 1" >>confdefs.h - - qemu_traditional=y -else $as_nop - - qemu_traditional=n - -fi - - # Check whether --enable-ipxe was given. if test ${enable_ipxe+y} then : enableval=$enable_ipxe; -else $as_nop - - if test "x$enable_qemu_traditional" = "xyes" -then : - - enable_ipxe="yes" - else $as_nop enable_ipxe="no" fi -fi - if test "x$enable_ipxe" = "xno" then : ipxe=n @@ -4912,7 +4878,7 @@ then : enableval=$enable_rombios; else $as_nop - if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes" + if test "x$enable_ipxe" = "xyes" then : enable_rombios="yes" diff --git a/tools/configure.ac b/tools/configure.ac index 0dd6d747ab..dada1c3b15 100644 --- a/tools/configure.ac +++ b/tools/configure.ac @@ -121,25 +121,11 @@ esac]) LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`" AC_SUBST(LINUX_BACKEND_MODULES) -AC_ARG_ENABLE([qemu-traditional], - AS_HELP_STRING([--enable-qemu-traditional], - [Enable qemu traditional device model, (DEFAULT is off)])) -AS_IF([test "x$enable_qemu_traditional" = "xyes"], [ -AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled]) - qemu_traditional=y],[ - qemu_traditional=n -]) -AC_SUBST(qemu_traditional) - AC_ARG_ENABLE([ipxe], AS_HELP_STRING([--enable-ipxe], [Enable in-tree IPXE, (DEFAULT is off, see also --with-system-ipxe)]),,[ - AS_IF([test "x$enable_qemu_traditional" = "xyes"], [ - enable_ipxe="yes" - ], [ enable_ipxe="no" - ]) ]) AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y]) AC_ARG_WITH([system-ipxe], @@ -162,18 +148,15 @@ AC_SUBST(ipxe) AC_ARG_ENABLE([rombios], AS_HELP_STRING([--enable-rombios], - [Enable ROMBIOS, (DEFAULT is on if qemu-traditional or ipxe is enabled, + [Enable ROMBIOS, (DEFAULT is on if ipxe is enabled, otherwise off)]),,[ - AS_IF([test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"], [ + AS_IF([test "x$enable_ipxe" = "xyes"], [ enable_rombios="yes" ], [ enable_rombios="no" ]) ]) AS_IF([test "x$enable_rombios" = "xyes"], [ - dnl as86, ld86, and bcc are only required when building rombios. They - dnl are only needed when the host system is x86 but that check is done - dnl for us above when checking if we should build with qemu-traditional. AX_PATH_PROG_OR_FAIL([AS86], [as86]) AX_PATH_PROG_OR_FAIL([LD86], [ld86]) AX_PATH_PROG_OR_FAIL([BCC], [bcc]) From patchwork Wed Mar 26 16:04:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 14030280 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1CC05C36008 for ; Wed, 26 Mar 2025 16:05:29 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.928065.1330858 (Exim 4.92) (envelope-from ) id 1txTFl-00036X-3t; Wed, 26 Mar 2025 16:05:17 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 928065.1330858; Wed, 26 Mar 2025 16:05:17 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFk-00036L-W2; Wed, 26 Mar 2025 16:05:16 +0000 Received: by outflank-mailman (input) for mailman id 928065; Wed, 26 Mar 2025 16:05:15 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFj-0001z3-RK for xen-devel@lists.xenproject.org; Wed, 26 Mar 2025 16:05:15 +0000 Received: from smtp-out2.suse.de (smtp-out2.suse.de [2a07:de40:b251:101:10:150:64:2]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 1a183626-0a5c-11f0-9ffa-bf95429c2676; Wed, 26 Mar 2025 17:05:14 +0100 (CET) Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id AAA4C1F445; Wed, 26 Mar 2025 16:05:13 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 86C521374A; Wed, 26 Mar 2025 16:05:13 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id PoFnH7kl5GclaQAAD6G6ig (envelope-from ); Wed, 26 Mar 2025 16:05:13 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1a183626-0a5c-11f0-9ffa-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005113; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EAHvy3F2eUaT2duqNqIKRTDIIwRGgy4VzLxx0NXdzNY=; b=cKb6LuIIUmlvDjXtiOcCobdrQYwOJ0F9W06FK3Nu9OkFmmEAJ0ehCyOz6QJmRIrkXVeuCu ir4Ce9KhjzNjGlpuFkpGVDrHq21KeYlTOwkn45Qrom+QIpV7id8m3Uk7D5aOCe1wu7zr7G V1l9lEMXebGSkAzXuky/SLj0XC1MGQE= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005113; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EAHvy3F2eUaT2duqNqIKRTDIIwRGgy4VzLxx0NXdzNY=; b=cKb6LuIIUmlvDjXtiOcCobdrQYwOJ0F9W06FK3Nu9OkFmmEAJ0ehCyOz6QJmRIrkXVeuCu ir4Ce9KhjzNjGlpuFkpGVDrHq21KeYlTOwkn45Qrom+QIpV7id8m3Uk7D5aOCe1wu7zr7G V1l9lEMXebGSkAzXuky/SLj0XC1MGQE= From: Juergen Gross To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Samuel Thibault Subject: [PATCH 5/6] stubdom: remove ancient stubdom-dm script Date: Wed, 26 Mar 2025 17:04:39 +0100 Message-ID: <20250326160442.19706-6-jgross@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250326160442.19706-1-jgross@suse.com> References: <20250326160442.19706-1-jgross@suse.com> MIME-Version: 1.0 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:email,suse.com:mid]; RCVD_TLS_ALL(0.00)[] The stubdom-dm script is still using "xm" instead of "xl", so it is probably unused since more than 10 years now. Signed-off-by: Juergen Gross --- stubdom/stubdom-dm | 182 --------------------------------------------- 1 file changed, 182 deletions(-) delete mode 100644 stubdom/stubdom-dm diff --git a/stubdom/stubdom-dm b/stubdom/stubdom-dm deleted file mode 100644 index 05d07ac0d1..0000000000 --- a/stubdom/stubdom-dm +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/bash -# -# Copyright 2007-2008 Samuel Thibault -# -# dm script around stubdomains. -# - -DIR=`dirname $0` -. "${DIR}/stubdompath.sh" -stubdom_configdir="${XEN_CONFIG_DIR}/stubdoms" - -# To fit xterms nicely -height=339 - -# Parse arguments - -domid= -domname= -vncviewer=0 -vncpid= -extra= -sdl=0 -opengl=1 -vnc=0 -vncunused=0 -while [ "$#" -gt 0 ]; -do - if [ "$#" -ge 2 ]; - then - case "$1" in - -d) - domid=$2; - extra="$extra -d $domid"; - shift - ;; - -domain-name) - domname=$2; - shift - ;; - -vnc) - vnc=1 - op=${2%,*} - ip=${op%:*}; - vnc_port=${op#*:}; - shift - ;; - -vncunused) - vncunused=1 - shift - ;; - -loadvm) - extra="$extra -loadvm $2"; - shift - ;; - -k) - keymap=$2 - shift - ;; - -serial) - serial="$2" - shift - ;; - -monitor) - monitor="$2" - shift - ;; - esac - fi - case "$1" in - -vncviewer) vncviewer=1 ;; - -sdl) sdl=1 ;; - -disable-opengl) opengl=0 ;; - esac - shift -done - -[ -z "$domid" ] && { echo "couldn't find domain ID" ; exit 1; } -[ -z "$domname" ] && { echo "couldn't find domain name" ; exit 1; } - -# Termination handler - -term() { - [ -n "$vncpid" ] && kill -9 $vncpid - rm -f /tmp/domname-dm - rm ${stubdom_configdir}/$domname-dm - exit 0 -} - -trap term SIGHUP - -############ -# stubdomain -# Wait for any previous stubdom to terminate -while xm list | grep -w $domname-dm -do - sleep 1 -done - -# Generate stubdom config file -mkdir -p ${stubdom_configdir} &>/dev/null -echo "#This file is autogenerated, edit $domname instead!" > ${stubdom_configdir}/$domname-dm -echo "kernel = '${XENFIRMWAREDIR}/ioemu-stubdom.gz'" >> ${stubdom_configdir}/$domname-dm - -vfb="sdl=$sdl, opengl=$opengl" -test "$DISPLAY" && vfb="$vfb, display=$DISPLAY" -test "$XAUTHORITY" && vfb="$vfb, xauthority=$XAUTHORITY" -test $vnc != 0 && vfb="$vfb, vnc=$vnc, vncdisplay=$vnc_port, vnclisten=$ip, vncunused=$vncunused" -vncpasswd=`xenstore-read /local/domain/0/backend/vfb/$domid/0/vncpasswd 2>/dev/null` -test "$vncpasswd" && vfb="$vfb, vncpasswd=$vncpasswd" -test "$keymap" && vfb="$vfb, keymap=$keymap" -test "$monitor" && vfb="$vfb, monitor=$monitor" -test "$serial" && vfb="$vfb, serial=$serial" -echo "vfb = ['$vfb']" >> ${stubdom_configdir}/$domname-dm - -echo -n "disk = [ " >> ${stubdom_configdir}/$domname-dm -j=0 -for i in `xenstore-ls /local/domain/$domid/device/vbd | grep 'backend =' | awk '{print $3}'` -do - i=${i%\"} - i=${i#\"} - vbd_mode=`xenstore-read $i/mode` - vbd_disk=`xenstore-read $i/params` - vbd_type=`xenstore-read $i/type` - vbd_dev=`xenstore-read $i/dev` - vbd_front=`xenstore-read $i/frontend` - vbd_devtype=`xenstore-read $vbd_front/device-type` - if [ $j -ne 0 ] - then - echo -n "," >> ${stubdom_configdir}/$domname-dm - fi - echo -n "'$vbd_type:$vbd_disk,$vbd_dev:$vbd_devtype,$vbd_mode'" >> ${stubdom_configdir}/$domname-dm - j=$(( $j + 1 )) -done -echo " ] " >> ${stubdom_configdir}/$domname-dm -echo -n "vif = [ " >> ${stubdom_configdir}/$domname-dm -j=0 -for i in `xenstore-ls /local/domain/$domid/device/vif | grep 'backend =' | awk '{print $3}'` -do - i=${i%\"} - i=${i#\"} - vif_mac=`xenstore-read $i/mac` - vif_bridge=`xenstore-read $i/bridge` - if [ $j -ne 0 ] - then - echo -n "," >> ${stubdom_configdir}/$domname-dm - fi - echo -n "'mac=$vif_mac" >> ${stubdom_configdir}/$domname-dm - if [ "$vif_bridge" ] - then - echo -n ",bridge=$vif_bridge'" >> ${stubdom_configdir}/$domname-dm - else - echo -n "'" >> ${stubdom_configdir}/$domname-dm - fi - j=$(( $j + 1 )) -done -echo " ] " >> ${stubdom_configdir}/$domname-dm - -mkfifo /tmp/$domname-dm -xm create -c ${stubdom_configdir}/$domname-dm target=$domid memory=32 extra="$extra" < /tmp/$domname-dm & -exec 4>/tmp/$domname-dm - - -########### -# vncviewer -if [ "$vncviewer" = 1 ] -then - # Wait for vnc server to appear - while ! vnc_port=`xenstore-read /local/domain/$domid/console/vnc-port` - do - # Check that the stubdom job is still alive - kill -0 $consolepid || term - sleep 1 - done - - vncviewer $ip:$vnc_port & - vncpid=$! -fi - -# wait for SIGHUP or stubdom termination -wait - -term From patchwork Wed Mar 26 16:04:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 14030283 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 68912C36008 for ; Wed, 26 Mar 2025 16:12:19 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.928109.1330878 (Exim 4.92) (envelope-from ) id 1txTMQ-0006vV-0r; Wed, 26 Mar 2025 16:12:10 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 928109.1330878; Wed, 26 Mar 2025 16:12:09 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTMP-0006vN-Te; Wed, 26 Mar 2025 16:12:09 +0000 Received: by outflank-mailman (input) for mailman id 928109; Wed, 26 Mar 2025 16:12:08 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txTFp-0001z3-KL for xen-devel@lists.xenproject.org; Wed, 26 Mar 2025 16:05:21 +0000 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 1d74f11e-0a5c-11f0-9ffa-bf95429c2676; Wed, 26 Mar 2025 17:05:19 +0100 (CET) Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 6963121175; Wed, 26 Mar 2025 16:05:19 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 15A521374A; Wed, 26 Mar 2025 16:05:19 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 62zSA78l5GcsaQAAD6G6ig (envelope-from ); Wed, 26 Mar 2025 16:05:19 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1d74f11e-0a5c-11f0-9ffa-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005119; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Z9A+fu0CkA24A42L4jKEcCYh+ApxXI6+jMZ38aW5FWI=; b=YWI4DgwUPVoFj5zC265JUgQjHUdPLC3PcTzLWDPdNzU8pcPy1mEH9h2nd+A+at2wK6Ugn/ ykU6fmaiI4OXDsWGu6S2RQK4xVi9UfatlLIMWeE6HGzfCdNwMW6kujpprqghFSflf1OdQG g/VrIksYi1kdIhHQkwtI124UysAJBc4= Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=YWI4DgwU DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1743005119; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Z9A+fu0CkA24A42L4jKEcCYh+ApxXI6+jMZ38aW5FWI=; b=YWI4DgwUPVoFj5zC265JUgQjHUdPLC3PcTzLWDPdNzU8pcPy1mEH9h2nd+A+at2wK6Ugn/ ykU6fmaiI4OXDsWGu6S2RQK4xVi9UfatlLIMWeE6HGzfCdNwMW6kujpprqghFSflf1OdQG g/VrIksYi1kdIhHQkwtI124UysAJBc4= From: Juergen Gross To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 6/6] build: don't require full tools build for building stubdoms Date: Wed, 26 Mar 2025 17:04:40 +0100 Message-ID: <20250326160442.19706-7-jgross@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250326160442.19706-1-jgross@suse.com> References: <20250326160442.19706-1-jgross@suse.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 6963121175 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; RCVD_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCPT_COUNT_SEVEN(0.00)[9]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]; RCVD_TLS_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; DKIM_TRACE(0.00)[suse.com:+] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action With the drop of qemu-traditional "make stubdom" no longer requires "make tools" to have finished. It is enough to add "install-tools-public-headers" as a prereq of "install-stubdom". Signed-off-by: Juergen Gross --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c9d80a6dc6..67b71ac3d4 100644 --- a/Makefile +++ b/Makefile @@ -147,7 +147,7 @@ install-tools: install-tools-public-headers $(MAKE) -C tools install .PHONY: install-stubdom -install-stubdom: mini-os-dir install-tools +install-stubdom: mini-os-dir install-tools-public-headers $(MAKE) -C stubdom install ifeq (x86_64,$(XEN_TARGET_ARCH)) XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub-if-enabled