public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Chuck Lever <cel@kernel.org>, Daniel Gomez <da.gomez@kruces.com>,
	kdevops@lists.linux.dev
Cc: Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v2 14/33] Kconfig: Convert the 9p option to a choice menu
Date: Sun, 27 Jul 2025 18:14:14 -0700	[thread overview]
Message-ID: <20250728011434.3197091-15-mcgrof@kernel.org> (raw)
In-Reply-To: <20250728011434.3197091-1-mcgrof@kernel.org>

From: Chuck Lever <chuck.lever@oracle.com>

I'm about to add a third method for building the kernel that
excludes the use of 9p. As a pre-requisite to that change, wrap the
two existing options with a choice menu, since they are exclusive
of each other.

This introduces a boolean for non-9p build configurations, to be
used in subsequent patches.

No behavior change is expected.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 workflows/linux/Kconfig  | 55 +++++++++++++++++++++++++++++-----------
 workflows/linux/Makefile |  1 -
 2 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/workflows/linux/Kconfig b/workflows/linux/Kconfig
index 183ac777..e198005c 100644
--- a/workflows/linux/Kconfig
+++ b/workflows/linux/Kconfig
@@ -31,27 +31,52 @@ config BOOTLINUX_PURE_IOMAP
 	bool "Use a kernel configuration which disables buffer heads"
 	default HAVE_SUPPORTS_PURE_IOMAP
 	depends on BOOTLINUX_HAS_PURE_IOMAP_CONFIG
-	help
-	  This will let you choose use 9p to build Linux. What this does is
 
 endif # HAVE_SUPPORTS_PURE_IOMAP
 
+choice
+	prompt "Kernel build location"
+	default BOOTLINUX_TARGETS
+	help
+	  Choose where you want to compile the test kernel. The help
+	  for the choices below explain how each alternative works.
+
+config BOOTLINUX_TARGETS
+	bool "Target nodes"
+	output yaml
+	help
+	  Choosing this option clones and builds the test kernel on
+	  each target node, then installs the test kernel and
+	  reboots each target node. These actions are triggered by
+	  using "make linux".
+
+	  This choice is best when the target node configuration is
+	  vastly different than the controller node's configuration.
+	  It is the only choice available when the target nodes
+	  reside in the cloud.
+
 config BOOTLINUX_9P
-	bool "Use 9p to build Linux"
+	bool "Controller node"
+	output yaml
 	depends on LIBVIRT && !GUESTFS_LACKS_9P
-	default LIBVIRT
 	help
-	  This will let you choose use 9p to build Linux. What this does is
-	  use your localhost to git clone Linux under the assumption your
-	  host is more powerful than the guests you are going to instantiate.
-	  The localhost then will be used to build Linux using all threads
-	  possible. The installation of Linux on the guest is done only with
-	  the install target, the guest gets read-only access to the host's
-	  path where Linux is closed using 9p.
-
-	  You should not have to modify any default 9p settings except maybe
-	  where your localhost path for your git tree is. You should keep
-	  the other settings as-is unless you know what you are doing.
+	  Choosing this option clones and builds the test kernel on
+	  the Ansible controller node. Once the test kernel is
+	  built, the target nodes access the controller node's build
+	  directory via 9p to install the test kernel, then each
+	  target node is rebooted into the new kernel. These actions
+	  are triggered by using "make linux".
+
+	  This is quick and efficient (since the kernel is built only
+	  once, and the build has access to all compute resources on
+	  the controller node). The source tree and compiled artifacts
+	  are not removed when the test runners are destroyed, so
+	  subsequent builds can be fast.
+
+	  However, 9p is available only when using a local
+	  virtualization method such as libvirt.
+
+endchoice
 
 if BOOTLINUX_9P
 
diff --git a/workflows/linux/Makefile b/workflows/linux/Makefile
index f68c0905..f5bc6490 100644
--- a/workflows/linux/Makefile
+++ b/workflows/linux/Makefile
@@ -42,7 +42,6 @@ endif
 
 LINUX_CLONE_DEFAULT_TYPE := linux-clone-clients
 ifeq (y,$(CONFIG_BOOTLINUX_9P))
-BOOTLINUX_ARGS	+= bootlinux_9p=True
 BOOTLINUX_ARGS	+= bootlinux_9p_host_path='$(subst ",,$(CONFIG_BOOTLINUX_9P_HOST_PATH))'
 BOOTLINUX_ARGS	+= bootlinux_9p_msize='$(subst ",,$(CONFIG_BOOTLINUX_9P_MSIZE))'
 BOOTLINUX_ARGS	+= bootlinux_9p_fsdev='$(subst ",,$(CONFIG_BOOTLINUX_9P_FSDEV))'
-- 
2.47.2


  parent reply	other threads:[~2025-07-28  1:14 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-28  1:14 [PATCH v2 00/33] remove vagrant and bootlinux shape up Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 01/33] vagrant: remove entire vagrant configuration directory Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 02/33] kconfigs: fix Kconfig references after vagrant removal Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 03/33] scripts: remove Vagrant-specific scripts and Makefiles Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 04/33] playbooks: remove Vagrant-specific playbooks and roles Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 05/33] gitignore: remove Vagrant-specific ignore patterns Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 06/33] docs: remove Vagrant-specific documentation files Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 07/33] Remove all remaining Vagrant references from codebase Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 08/33] terraform: Clean up the destroy tasks Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 09/33] Switch to the cloud.terraform.terraform module Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 10/33] terraform: Make use of the new "terraform_output" module Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 11/33] terraform: Move "wait_for_connection" out of the terraform playbook Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 12/33] terraform: Remove "delegate_to: localhost" Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 13/33] terraform: Replace scripts/status_terraform.sh Luis Chamberlain
2025-07-28  1:14 ` Luis Chamberlain [this message]
2025-07-28  1:14 ` [PATCH v2 15/33] bootlinux: fix making 9p default if using libvirt Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 16/33] bootlinux: Relocate tasks that select a kernel .config Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 17/33] bootlinux: Simplify tasks that select the kernel .config to build Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 18/33] bootlinux: Select the kernel .config earlier Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 19/33] bootlinux: Move 9p build tasks to a subrole Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 20/33] bootlinux: Move tasks for building on target nodes " Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 21/33] bootlinux: Clean up a grub set-up task Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 22/33] bootlinux: Harden update-grub/install.yml Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 23/33] Add a guest/instance for building the test kernel Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 24/33] bootlinux: Add a new builder choice Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 25/33] workflows: Add a kconfig setting for installing kernels via package Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 26/33] bootlinux: Enclose tasks to find kernel release name in a block: Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 27/33] bootlinux: Pick up kernel release info for pre-built packages Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 28/33] bootlinux: Install pre-built kernels from packages Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 29/33] bootlinux: Add an option to build with clang instead of gcc Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 30/33] Makefile: add make style for style checking Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 31/33] CLAUDE.md: new workflow guide for hosts and nodes Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 32/33] CLAUDE.md: add don't BS rules Luis Chamberlain
2025-07-28  1:14 ` [PATCH v2 33/33] gen_nodes/gen_hosts: avoid usage of fs_config_path on task names Luis Chamberlain
2025-07-29 20:07 ` [PATCH v2 00/33] remove vagrant and bootlinux shape up Luis Chamberlain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250728011434.3197091-15-mcgrof@kernel.org \
    --to=mcgrof@kernel.org \
    --cc=cel@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=da.gomez@kruces.com \
    --cc=kdevops@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox