OpenBSD CVS

CVS log for src/usr.sbin/ldomctl/config.c


[BACK] Up to [local] / src / usr.sbin / ldomctl

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.43 / (download) - annotate - [select for diffs], Thu Oct 6 21:35:52 2022 UTC (20 months ago) by kn
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, HEAD
Changes since 1.42: +8 -7 lines
Diff to previous 1.42 (colored)

accept iodevices as NACs as well

Assignable PCIe devices have a root complex path and a more descriptive
I/O slot path;  example output from a T4-2:

	# ldomctl list-io | head -n2
	PATH             NAME
	/@400/@2/@0/@8   /SYS/MB/PCIE0

ldom.conf(5) `iodevice' currently accepts PATH values, which are cryptic and
completely hardware specific, whereas NAME values are obvious (partially
same across machines) and match physical slot labels ("0 PCIe2 x8") besides
information from ILOM:
    /System/PCI_Devices/Add-on/Device_0 location = PCIE0 (PCIe Slot 0).

Make ldom.conf `iodevice' accept either value;  internally nothing changes.

Rename struct iodev's path member to dev to clarify this further.

OK kettenis

Revision 1.42 / (download) - annotate - [select for diffs], Sun Jan 31 05:14:24 2021 UTC (3 years, 4 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.41: +2 -1 lines
Diff to previous 1.41 (colored)

last pieces of satisfying -fno-common

Revision 1.41 / (download) - annotate - [select for diffs], Mon Jun 29 18:25:26 2020 UTC (3 years, 11 months ago) by kn
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.40: +3 -1 lines
Diff to previous 1.40 (colored)

Fix "init-system" with multiple PCIe root complexes

Contrary to other (single CPU) machines, the Oracle SPARC T4-2 machines
come with two CPUs/two PCIe root complexes instead of one.

ldomctl already accounts for this and interates over them but lacked a skip
condition when iterating over subdevices to avoid linking devices in one
complex to those in another.

This fixes a NULL dereference in "init-system" on T4-2 machines and makes
it produce working machine descriptions (.md files).

Testing and confirmation on a T4-1 that single PCIe root complex machines
still produce identical MDs with this from tracey, thanks!

Reminded by a report on bugs@ from Kokuma who also confirmed this fix on
their T4-2.

Revision 1.40 / (download) - annotate - [select for diffs], Sun May 24 22:08:54 2020 UTC (4 years ago) by kn
Branch: MAIN
Changes since 1.39: +1 -1 lines
Diff to previous 1.39 (colored)

Make "init-system -n" check vcpu and memory constraints

Second attempt after config.c revision 1.37, this time merely delay the
"-n" test until after constraint checks have been performed such that
the PRI is still read, as required in order to get the total number of
VCPUs and memory.

OK kmos who also tested this

Revision 1.39 / (download) - annotate - [select for diffs], Sun May 24 22:00:45 2020 UTC (4 years ago) by kn
Branch: MAIN
Changes since 1.38: +4 -3 lines
Diff to previous 1.38 (colored)

msg

Revision 1.38 / (download) - annotate - [select for diffs], Fri May 22 21:54:20 2020 UTC (4 years ago) by kn
Branch: MAIN
Changes since 1.37: +13 -14 lines
Diff to previous 1.37 (colored)

Revert previous

Total vcpu and memory are read from the PRI so constraint checks must not
be done before that, noted by kettenis.

The fact that "total_cpus" as a global variable (initialized with zero) is
always smaller than the total number of configured vcpus and the fact that
I only tested a negative example without a positive one made me jump the
trigger, sorry.

Revision 1.37 / (download) - annotate - [select for diffs], Fri May 22 21:40:16 2020 UTC (4 years ago) by kn
Branch: MAIN
Changes since 1.36: +14 -13 lines
Diff to previous 1.36 (colored)

Make "init-system -n" check vcpu and memory constraints

kmos noted that "-n" wouldn't bark at overallocation, only running without
it would do so.

Hoit setup code and delay the noaction bailout just after constraint checks
such that they're always done.

OK kmos

Revision 1.36 / (download) - annotate - [select for diffs], Tue Mar 17 21:24:22 2020 UTC (4 years, 2 months ago) by kn
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.35: +9 -2 lines
Diff to previous 1.35 (colored)

Print IO device names next to path with "list-io"

Names help identify the right iodevice to be assigned in ldom.conf(5);
they directly match the structure seen in the iLOM shell, and the output
format is similar to Solaris "ldm list-io".

OK kettenis

Revision 1.35 / (download) - annotate - [select for diffs], Sat Mar 7 18:51:06 2020 UTC (4 years, 3 months ago) by kn
Branch: MAIN
Changes since 1.34: +2 -2 lines
Diff to previous 1.34 (colored)

Initialise only the components list for "list-io"

Nothing else is needed and pri_init() actually writes to the PRI file
whereas pri_init_components() only reads (as expected in this code path).

This allows listing IO devices from PRI files that are read-only;
I noticed this by having the "factory-default" configuration protected
with the system immutable flag "schg", see chflags(1).

Revision 1.34 / (download) - annotate - [select for diffs], Fri Feb 21 19:39:28 2020 UTC (4 years, 3 months ago) by kn
Branch: MAIN
Changes since 1.33: +5 -3 lines
Diff to previous 1.33 (colored)

Support devaliases for vnet

vnet devalias=netboot

Creates a device alias to be used in OBP:

{ok} boot netboot

This helps navigating inside guests without remembering
device paths or rather their order as specified in the config.

OK kettenis

Revision 1.33 / (download) - annotate - [select for diffs], Thu Feb 20 20:38:44 2020 UTC (4 years, 3 months ago) by kn
Branch: MAIN
Changes since 1.32: +7 -3 lines
Diff to previous 1.32 (colored)

Support devaliases for vdisk

vdisk "/var/ldom/miniroot.fs" devalias=miniroot

Creates a device alias to be used in OBP:

{ok} devlias
miniroot  /virutal-devices@100/...

This helps navigating inside guests without remembering
device paths or rather their order as specified in the config.

OK kettenis

Revision 1.32 / (download) - annotate - [select for diffs], Wed Jan 22 07:52:38 2020 UTC (4 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.31: +3 -3 lines
Diff to previous 1.31 (colored)

delete wasteful ;;
ok tedu

Revision 1.31 / (download) - annotate - [select for diffs], Sun Jan 5 19:54:05 2020 UTC (4 years, 5 months ago) by kn
Branch: MAIN
Changes since 1.30: +3 -5 lines
Diff to previous 1.30 (colored)

Zero initialize cpus and memory variables up front

Revision 1.30 / (download) - annotate - [select for diffs], Sat Jan 4 15:45:46 2020 UTC (4 years, 5 months ago) by kn
Branch: MAIN
Changes since 1.29: +4 -2 lines
Diff to previous 1.29 (colored)

Add -n to init-system for validation only

"ldomctl init-system -n ldom.conf" only parses the configuration file
and exits;  it is usable as unprivileged user, no devices are opened.

OK kettenis

Revision 1.29 / (download) - annotate - [select for diffs], Thu Nov 28 18:40:42 2019 UTC (4 years, 6 months ago) by kn
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28 (colored)

Use scan_scaled(3) for memory in ldom.conf

Replace the hand-written routing with a proper library allowing even more
formats.

Since ldomctl's local util.h conflicts with the now used global util.h from
libutil, rename it to ldom_util.h.

Manual wording from amd64's vm.conf(5).

OK kettenis

Revision 1.28 / (download) - annotate - [select for diffs], Wed Nov 27 19:54:10 2019 UTC (4 years, 6 months ago) by kn
Branch: MAIN
Changes since 1.27: +17 -1 lines
Diff to previous 1.27 (colored)

Add list-io command

list-io lists available PCIe devices to be used with ldom.conf(5)'s
iodevice parameter.

OK kettenis

Revision 1.27 / (download) - annotate - [select for diffs], Mon Aug 5 19:27:47 2019 UTC (4 years, 10 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.26: +14 -5 lines
Diff to previous 1.26 (colored)

Allow an optional stride in the vcpu specification.  This makes it possible
to allocate virtual CPUs but not assign them to domains.  This way you
can give domains exclusive access to a core without assigning all threads
of that core to the domain.

Revision 1.26 / (download) - annotate - [select for diffs], Sun Jul 28 14:55:59 2019 UTC (4 years, 10 months ago) by kettenis
Branch: MAIN
Changes since 1.25: +4 -2 lines
Diff to previous 1.25 (colored)

Delete all CPUs from the primary and add back the number that we want to
keep.

Revision 1.25 / (download) - annotate - [select for diffs], Sun Jul 28 14:51:07 2019 UTC (4 years, 10 months ago) by kettenis
Branch: MAIN
Changes since 1.24: +441 -4 lines
Diff to previous 1.24 (colored)

Add support for configuring static direct I/O.

Revision 1.24 / (download) - annotate - [select for diffs], Sun Sep 16 14:27:32 2018 UTC (5 years, 8 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.23: +31 -2 lines
Diff to previous 1.23 (colored)

Add support for setting NVRAM variables.

Revision 1.23 / (download) - annotate - [select for diffs], Sun Sep 16 12:17:05 2018 UTC (5 years, 8 months ago) by kettenis
Branch: MAIN
Changes since 1.22: +60 -30 lines
Diff to previous 1.22 (colored)

Various improvements to generate logical domain configurations that are
accepted by more modern firmwares.  In particular on SPARC T3 machines.

Tested on a t1k and t5120.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Jan 17 22:10:55 2017 UTC (7 years, 4 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.21: +3 -3 lines
Diff to previous 1.21 (colored)

Nuke some whitespace that keeps poking me in the eye as I try to
steal code.

Revision 1.21 / (download) - annotate - [select for diffs], Sun Sep 28 18:42:50 2014 UTC (9 years, 8 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.20: +4 -4 lines
Diff to previous 1.20 (colored)

Use TAILQ_FOREACH_SAFE when we might delete entries for the list.

Revision 1.20 / (download) - annotate - [select for diffs], Sat Sep 13 16:06:37 2014 UTC (9 years, 8 months ago) by doug
Branch: MAIN
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 (colored)

Replace all queue *_END macro calls except CIRCLEQ_END with NULL.

CIRCLEQ_* is deprecated and not called in the tree.  The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END.  They are
defined as NULL.  There's no reason to keep the other *_END macro calls.

ok millert@

Revision 1.19 / (download) - annotate - [select for diffs], Wed May 8 00:15:03 2013 UTC (11 years, 1 month ago) by gsoares
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.18: +5 -1 lines
Diff to previous 1.18 (colored)

tweak hvmd_init_guest() to check if everything was OK in md_read(),
otherwise print out an error string and exit.

OK jasper@ kettenis@

Revision 1.18 / (download) - annotate - [select for diffs], Wed Apr 3 15:38:48 2013 UTC (11 years, 2 months ago) by kettenis
Branch: MAIN
Changes since 1.17: +19 -9 lines
Diff to previous 1.17 (colored)

Make it possible to explicitly specify the number of vcpus and the amount
of memory for the primary domain.  As a bonus this prevents people from
shooting themselves in the foot by creating two domains names "primary".

Revision 1.17 / (download) - annotate - [select for diffs], Mon Apr 1 17:51:56 2013 UTC (11 years, 2 months ago) by kettenis
Branch: MAIN
Changes since 1.16: +24 -3 lines
Diff to previous 1.16 (colored)

Some firmware revisions on UltraSPARC T2 machines apparently insist on having
"rngs" and "rng" nodes in the Hypervisor machine description.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Mar 4 11:54:13 2013 UTC (11 years, 3 months ago) by otto
Branch: MAIN
Changes since 1.15: +3 -2 lines
Diff to previous 1.15 (colored)

- check parser's return value and exit if parsing failed
- a duplicate domain name is a syntax error
tweaked diff from @jasper; ok kettenis@ jasper@

Revision 1.15 / (download) - annotate - [select for diffs], Tue Feb 26 23:03:39 2013 UTC (11 years, 3 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.14: +10 -2 lines
Diff to previous 1.14 (colored)

Some firmware revisions provide a factory-default configuration that contains
duplication arcs in the hvmd.  Add a workaround for this problem.

ok deraadt@

Revision 1.14 / (download) - annotate - [select for diffs], Sat Dec 8 18:45:26 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.13: +3 -3 lines
Diff to previous 1.13 (colored)

Fix previous.

Revision 1.13 / (download) - annotate - [select for diffs], Sat Dec 8 15:11:40 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.12: +16 -4 lines
Diff to previous 1.12 (colored)

Add a few missing properties to vnet-port devices to make Linux happy.

Revision 1.12 / (download) - annotate - [select for diffs], Sat Dec 1 14:35:41 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.11: +31 -2 lines
Diff to previous 1.11 (colored)

Add support for older firmware on UltraSPARC T1 machines.

Revision 1.11 / (download) - annotate - [select for diffs], Sat Dec 1 10:39:38 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.10: +59 -25 lines
Diff to previous 1.10 (colored)

Make it possible to share cores between domains.

Revision 1.10 / (download) - annotate - [select for diffs], Mon Nov 26 21:01:43 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.9: +1 -3 lines
Diff to previous 1.9 (colored)

We don't really need a "rngs" node in the Hypervisor MD.

Revision 1.9 / (download) - annotate - [select for diffs], Mon Nov 26 20:37:20 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.8: +5 -4 lines
Diff to previous 1.8 (colored)

Fix generation of "hvmd_mblock" node.  Only add the "stick-frequency"
property to the root node if the original Hypervisor MD had one to start with.

Revision 1.8 / (download) - annotate - [select for diffs], Mon Nov 26 20:08:15 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.7: +235 -101 lines
Diff to previous 1.7 (colored)

Regeerate Hypervisor MD from scratch instead of modifying the existing one.

Revision 1.7 / (download) - annotate - [select for diffs], Sun Nov 25 21:45:37 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.6: +18 -2 lines
Diff to previous 1.6 (colored)

More changes to make this work on UltraSPARC T2 systems.  Now there's
enough functionality to create a configuration for a t5120 running System
Firmware 7.1.x.

Revision 1.6 / (download) - annotate - [select for diffs], Sun Nov 25 18:23:02 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.5: +7 -2 lines
Diff to previous 1.5 (colored)

Use "id" property as physical ID for CPUs on UltraSPARC T2 and later.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Nov 25 16:18:04 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.4: +63 -28 lines
Diff to previous 1.4 (colored)

Properly remove virtual device ports if we remove the associated channels.

Revision 1.4 / (download) - annotate - [select for diffs], Sun Nov 25 14:01:58 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.3: +94 -1 lines
Diff to previous 1.3 (colored)

Add support for building a new configuration based on a configuration that
already has guest domains configured.

Revision 1.3 / (download) - annotate - [select for diffs], Sat Nov 24 22:54:02 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.2: +39 -13 lines
Diff to previous 1.2 (colored)

Delete "ncp" and "n2cp" virtual devices.  Makes Solaris stop whining about
not being able to configure crypto work queues.

Revision 1.2 / (download) - annotate - [select for diffs], Sat Nov 24 17:04:03 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.1: +150 -43 lines
Diff to previous 1.1 (colored)

Get rid of some hard-coded constants.  Improve memory allocation code.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Nov 24 11:50:45 2012 UTC (11 years, 6 months ago) by kettenis
Branch: MAIN

Add code to create new system configuration.  Work in progress, but there's
enough functionality to create a configuration for a t1k or t2k running
System Firmware 6.7.x.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.