On Fri, 2024-10-18 at 18:45 -0500, Bjorn Helgaas wrote:
> On Wed, Oct 16, 2024 at 10:53:16AM +0200, Philipp Stanner wrote:
> > On Wed, 2024-10-16 at 10:43 +0200, Heiner Kallweit wrote:
> > > On 16.10.2024 08:57, Philipp Stanner wrote:
> > > > On Tue, 2024-10-15 at 13:53 -0600, Alex Williamson wrote
With all consumers of module_map converted, remove usage of it
by the microcode loading logic.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v5:
- dropped unnecessary parens
---
xen/arch/x86/cpu/microcode/core.c| 20
xen/arch/x86/include/as
With construct_dom0 consuming struct boot_domain, continue passing the
structure down to dom0_construct_pv.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v5:
- reverted back *v d->vcpu[0]
---
xen/arch/x86/dom0_build.c | 2 +-
xen/arch/x86/include/asm/d
This changes both the kernel and ramdisk parameters over to struct
boot_module.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v6:
- removed unnecessary indentation changes
---
xen/arch/x86/dom0_build.c | 3 +--
xen/arch/x86/hvm/dom0_build.c | 9
Add a char pointer field, cmdline, to struct boot_module to hold the address
pointed to by the string field of struct mod. This removes the need to use the
early_mod field to get to the dom0 kernel command line.
Signed-off-by: Daniel P. Smith
---
Changes since v5:
- changed boot_module element cm
This commit changes create_dom0 to no longer take the individual components and
take struct boot_info instead. Internally, it is changed to locate the kernel
and ramdisk details from struct boot_info.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v5:
- change headro
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v5:
- coding style changes
---
xen/arch/x86/setup.c | 14 --
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 0f8fb3c572c6..87b118cdcf1e 10064
This commit introduces the start and size fields to struct boot_module and
assigns their value during boot_info construction.
The EFI entry point is a special case, as the EFI file loading boot service may
load a file beyond the 4G barrier. As a result, to make the address fit in the
32bit integer
This changes the type for the initrd parameter of dom0_construct_pv to be struct
boot_module. This conversion requires several adjustments throughout
dom0_construct_pv
to account for the type change. Removes the usage of early_mod field for
ramdisk module.
Signed-off-by: Daniel P. Smith
Reviewe
The variable initial_images is used for tracking the boot modules passed in by
the boot loader. Convert to a struct boot_module and adjust the code that uses
it accordingly.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v5:
- coding style changes
---
xen/arch/x86/s
Use struct boot_module fields, start and size, when calculating the relocation
address and size. It also ensures that early_mod references are kept in sync.
Signed-off-by: Daniel P. Smith
---
Changes since v6:
- introduce local s and l refs for start and size, shortening the lines while
correct
This changes both the kernel and ramdisk parameters over to struct boot_module.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
xen/arch/x86/hvm/dom0_build.c | 25 -
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/xen/arch/x86/hvm/dom0_build
This changes the type for the image parameter of dom0_construct_pv to be struct
boot_module. Removing the usage of early_mod field for kernel module.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v6:
- removed unnecessary indentation changes
Changes since v5:
- rep
Convert the microcode loading functions to take struct boot_info, and then
using struct boot_module to map and check for microcode. To keep the changes
focused, continue using the struct mod to hold the reference to the microcode
that is used by the late microcode logic.
To support loading the mic
Any direct usages of module_t have been transitioned, remove the remaining
references to the mod field. This also removes any external use of
bootstrap_map(), dropping from setup.h and making it static.
Signed-off-by: Daniel P. Smith
---
Changes since v6:
- drop efi exclusion check for module mem
Allow the tracking of when a boot module has been consumed by a handler in the
hypervisor independent of when it is claimed. The instances where the
hypervisor does nothing beyond claiming, the dom0 kernel, dom0 ramdisk, and a
placeholder for itself, are updated as being consumed at the time of bei
This eliminates usage of early_mod by discard_initial_images
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
xen/arch/x86/setup.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 87b118cdcf1e..67e72459170a 1
Store a reference to the created domain in struct boot_domain.
Signed-off-by: Daniel P. Smith
---
Changes since v5:
- moved back to using variable *d to hold domain reference locally
---
xen/arch/x86/include/asm/bootdomain.h | 3 +++
xen/arch/x86/setup.c | 4 +++-
2 files change
To track if the microcode boot module was loaded, a copy of the boot module is
kept. The size element of this copy is set to zero as the indicator that the
microcode was loaded. A side effect is that the modules have to be rescanned to
find the boot module post-relocation, so the cache copy can be
Remove the use of struct mod to hold the reference for the microcode,
converting the code to work with a struct boot_module.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
xen/arch/x86/cpu/microcode/core.c | 29 ++---
1 file changed, 14 insertions(+), 15 d
Move kextra into struct boot_info, thus no longer needed to be passed as a
parameter to create_dom0.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
xen/arch/x86/include/asm/bootinfo.h | 1 +
xen/arch/x86/setup.c| 12 ++--
2 files changed, 7 insertions(+),
The existing startup code employs various ad-hoc state tracking about certain
boot module types by each area of the code. A boot module flags bitfield is
added to enable tracking these different states. The first state to be
transition by this commit is module relocation.
Signed-off-by: Daniel P.
Populate the start and size fields for the Xen entry when populating them in
the reserved module_t entry.
Signed-off-by: Daniel P. Smith
---
Changes since v6:
- apply correct conversion of assignment to mod_start
- rewrite commit message to reflect code change
Changes since v5:
- corrected conve
A struct boot_domain now encapsulates the domain reference, kernel, ramdisk,
and command line for the domain being constructed. As a result of this
encapsulation, construct_dom0 can now take a single struct boot_domain instead
of these four parameters.
Signed-off-by: Daniel P. Smith
---
Changes s
With construct_dom0 consuming struct boot_domain, continue passing the
structure down to dom0_construct_pvh.
Signed-off-by: Daniel P. Smith
---
Changes since v5:
- revert back to using *d as local reference for struct domain
---
xen/arch/x86/dom0_build.c | 2 +-
xen/arch/x86/hvm/dom0
The Boot Modules for Hyperlaunch series is an effort to split out preliminary
changes necessary for the introduction of the Hyperlaunch domain builder
logic. These preliminary changes revolve around introducing the struct
boot_module and struct boot_domain structures. This includes converting the
d
Add a domid field to struct boot_domain to hold the assigned domain id for the
domain. During initialization, ensure all instances of struct boot_domain have
the invalid domid to ensure that the domid must be set either by convention or
configuration.
Signed-off-by: Daniel P. Smith
Reviewed-by: J
With all references to mod field removed, remove the mod field from struct
boot_module.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
xen/arch/x86/include/asm/bootinfo.h | 4
xen/arch/x86/setup.c| 3 ---
2 files changed, 7 deletions(-)
diff --git a/xen/arch
To begin moving toward allowing the hypervisor to construct more than one
domain at boot, a container is needed for a domain's build information.
Introduce a new header, , that contains the initial
struct boot_domain that encapsulate the build information for a domain.
No functional change intend
Add a container for the "cooked" command line for a domain.
Signed-off-by: Daniel P. Smith
---
xen/arch/x86/include/asm/bootdomain.h | 4
xen/arch/x86/setup.c | 18 --
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/xen/arch/x86/include/asm
The construct_dom0 function is converted to consume struct boot_module
instances for the kernel and ramdisk. With this change, it is no longer
necessary for the internal use of struct mod by create_dom0, so they are
changed to struct boot_module.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v5:
- adjust comment to coding style
---
xen/arch/x86/setup.c | 2 +-
xen/include/xsm/xsm.h | 9 +++--
xen/xsm/xsm_core.c| 6 ++
xen/xsm/xsm_policy.c | 4 +---
4 files changed, 7 insertions(+), 14 deletions
The ramdisk loading is the last user of module_map, remove
its usage and any remaining remnants of module_map.
Signed-off-by: Daniel P. Smith
---
Changes since v5:
- set excessive module check down to MAX_NR_BOOTMODS
---
xen/arch/x86/setup.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletion
Locate the first unclaimed struct boot_module and mark it as ramdisk. If there
are any remaining unclaimed struct boot_module instances, report to the
console. In the change, the new boot module iterator is used to find the
initrd index, which returns a signed int. Switch initrdidx from unsigned to
Iterate through the unclaimed boot modules to see if any are an XSM FLASK
policy. If one is located, mark it as an xsm policy.
To assist with looking up the index of the xsm policy in the boot module array,
an iterator is provided.
Signed-off-by: Daniel P. Smith
---
Changes since v6:
- converted
To allow a slow conversion of x86 over to struct boot_module, start with
replacing all references to module_t mod, only in setup.c, to the mod element
of struct boot_module. These serves twofold, first to allow the incremental
transition from module_t fields to struct boot_module fields. The second
The purpose of struct boot_module is to encapsulate the state of boot module as
it is processed by Xen. Locating boot module state struct boot_module reduces
the number of global variables as well as the number of state variables that
must be passed around. It also lays the groundwork for hyperlaun
This will introduce a new struct boot_module to provide a rich state
representation around modules provided by the boot loader. Support is for 64
boot modules, one held in reserve for Xen, and up to 63 can be provided by the
boot loader. The array of struct boot_modules will be accessible via a
ref
This commit introduces module types of xen, kernel, and ramdisk to allow boot
module detect code to tag the purpose of a boot module. This reduces the need
for hard coded order assumptions and global variables to be used by consumers
of boot modules, such as domain construction.
Signed-off-by: Dan
To start transitioning consider_modules() over to struct boot_module, begin
with taking the array of struct boot_modules but use the temporary struct
element mod.
No functional change intended.
Signed-off-by: Daniel P. Smith
Reviewed-by: Jason Andryuk
---
Changes since v5:
- drop unnecessary ty
The pull request you sent on Sun, 20 Oct 2024 12:05:33 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
> for-linus-6.12a-rc4-tag
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/a5ee44c8297803efd36cd0c773d72687afdd7500
Thank you!
--
Deet-doot-dot,
flight 188309 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/188309/
Failures :-/ but no regressions.
Tests which are failing intermittently (not blocking):
test-armhf-armhf-xl-qcow220 leak-check/check fail in 188308 pass in 188309
test-armhf-armhf-xl-arndale 10
Linus,
Please git pull the following tag:
git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
for-linus-6.12a-rc4-tag
xen: branch for v6.12-rc4
It contains just a single fix for a build failure introduced with a
patch in the 6.12 merge window.
Thanks.
Juergen
drivers/xen/Kconfig
43 matches
Mail list logo