xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/52] Support for modifying parameters at runtime
@ 2017-08-09  7:06 Juergen Gross
  2017-08-09  7:06 ` [PATCH 01/52] xen/arch/arm/acpi/boot.c: let custom parameter parsing routines return errno Juergen Gross
                   ` (52 more replies)
  0 siblings, 53 replies; 73+ messages in thread
From: Juergen Gross @ 2017-08-09  7:06 UTC (permalink / raw)
  To: xen-devel
  Cc: Juergen Gross, Kevin Tian, Stefano Stabellini, Wei Liu,
	Jun Nakajima, George Dunlap, Andrew Cooper, Dario Faggioli,
	Ian Jackson, Tim Deegan, Julien Grall, Paul Durrant, Jan Beulich,
	Daniel De Graaf, Suravee Suthikulpanit

Currently parameters of the hypervisor (e.g. console log level) can be
set via boot command line. Instead of having to reboot the system in
case another setting is desired, being able to modify many of those
parameters at runtime would be the better option.

This patch series addresses this by adding a new xl command
"xl set-parameters" which takes a string similar to the boot command
line as parameter and passes this string to the hypervisor which will
then use the same parsing infrastructure as for the command line in
order to apply the parameter settings.

As error checks for invalid parameters or parameter values have been
very sparse if present at all in the hypervisor, a major part of this
patch series addresses this problem first: all custom parameter parsing
functions are being changed to return success or an error. The main
parsing function tests for generic parameter value errors (like e.g.
overflow) or invalid parameters and issues a message in case an error
has been detected. Most error messages in the custom parsing functions
are removed then.

While not strictly required for runtime parameter modification I
believe an improved parameter validation is a win with or without the
runtime parameter modification support.

* Patches 1-38 are modifying the custom parameter parsing functions to
  return success or error
* Patch 39 adds generic parameter error tests in the core parameter
  parsing functions
* Patches 40-45 remove custom parsing function error messages
* Patches 46-51 add the runtime parameter modification support
* Patch 52 adds support for runtime modification of some console related
  parameters 

Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Cc: Dario Faggioli <dario.faggioli@citrix.com>
Cc: George Dunlap <george.dunlap@eu.citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Jun Nakajima <jun.nakajima@intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Cc: Tim Deegan <tim@xen.org>
Cc: Wei Liu <wei.liu2@citrix.com>

Juergen Gross (52):
  xen/arch/arm/acpi/boot.c: let custom parameter parsing routines return
    errno
  xen/arch/arm/domain_build.c: let custom parameter parsing routines
    return errno
  xen/arch/arm/traps.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/apic.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/cpu/mcheck/mce.c: let custom parameter parsing routines
    return errno
  xen/arch/x86/cpu/vpmu.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/dom0_build.c: let custom parameter parsing routines
    return errno
  xen/arch/x86/genapic/probe.c: let custom parameter parsing routines
    return errno
  xen/arch/x86/hvm/viridian.c: let custom parameter parsing routines
    return errno
  xen/arch/x86/hvm/vmx/vmcs.c: let custom parameter parsing routines
    return errno
  xen/arch/x86/io_apic.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/irq.c: let custom parameter parsing routines return errno
  xen/arch/x86/microcode.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/mm.c: let custom parameter parsing routines return errno
  xen/arch/x86/nmi.c: let custom parameter parsing routines return errno
  xen/arch/x86/numa.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/oprofile/nmi_int.c: let custom parameter parsing routines
    return errno
  xen/arch/x86/psr.c: let custom parameter parsing routines return errno
  xen/arch/x86/setup.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/shutdown.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/time.c: let custom parameter parsing routines return
    errno
  xen/arch/x86/x86_64/mmconfig-shared.c: let custom parameter parsing
    routines return errno
  xen/common/core_parking.c: let custom parameter parsing routines
    return errno
  xen/common/domain.c: let custom parameter parsing routines return
    errno
  xen/common/efi/boot.c: let custom parameter parsing routines return
    errno
  xen/common/kexec.c: let custom parameter parsing routines return errno
  xen/common/memory.c: let custom parameter parsing routines return
    errno
  xen/common/sched_credit2.c: let custom parameter parsing routines
    return errno
  xen/drivers/acpi/tables.c: let custom parameter parsing routines
    return errno
  xen/drivers/char/console.c: let custom parameter parsing routines
    return errno
  xen/drivers/cpufreq/cpufreq.c: let custom parameter parsing routines
    return errno
  xen/drivers/passthrough/amd/iommu_acpi.c: let custom parameter parsing
    routines return errno
  xen/drivers/passthrough/iommu.c: let custom parameter parsing routines
    return errno
  xen/drivers/passthrough/pci.c: let custom parameter parsing routines
    return errno
  xen/drivers/passthrough/vtd/dmar.c: let custom parameter parsing
    routines return errno
  xen/drivers/passthrough/vtd/quirks.c: let custom parameter parsing
    routines return errno
  xen/drivers/video/vesa.c: let custom parameter parsing routines return
    errno
  xen/xsm/flask/flask_op.c: let custom parameter parsing routines return
    errno
  xen: check parameter validity when parsing command line
  xen/arch/x86/apic.c: remove custom_param() error messages
  xen/arch/x86/cpu/mcheck/mce.c: remove custom_param() error messages
  xen/arch/x86/hvm/viridian.c: remove custom_param() error messages
  xen/arch/x86/io_apic.c: remove custom_param() error messages
  xen/common/kexec.c: remove custom_param() error messages
  xen/common/sched_credit2.c: remove custom_param() error messages
  xen: carve out a generic parsing function from _cmdline_parse()
  xen: add basic support for runtime parameter changing
  xen: add hypercall for setting parameters at runtime
  libxc: add function to set hypervisor parameters
  libxl: add libxl_set_parameters() function
  xl: add new xl command set-parameters
  xen: make some console related parameters settable at runtime

 docs/man/xl.pod.1.in                     |  5 +++
 docs/misc/xen-command-line.markdown      |  8 ++++
 tools/flask/policy/modules/dom0.te       |  2 +-
 tools/libxc/include/xenctrl.h            |  1 +
 tools/libxc/xc_misc.c                    | 20 +++++++++
 tools/libxl/libxl.c                      | 14 +++++++
 tools/libxl/libxl.h                      | 11 +++++
 tools/xl/xl.h                            |  1 +
 tools/xl/xl_cmdtable.c                   |  5 +++
 tools/xl/xl_misc.c                       | 20 +++++++++
 xen/arch/arm/acpi/boot.c                 |  8 +++-
 xen/arch/arm/domain_build.c              |  4 +-
 xen/arch/arm/traps.c                     |  8 ++--
 xen/arch/x86/apic.c                      | 10 +++--
 xen/arch/x86/cpu/mcheck/mce.c            |  7 ++--
 xen/arch/x86/cpu/vpmu.c                  |  7 ++--
 xen/arch/x86/dom0_build.c                | 19 +++++++--
 xen/arch/x86/genapic/probe.c             |  8 +++-
 xen/arch/x86/hvm/viridian.c              | 13 +++---
 xen/arch/x86/hvm/vmx/vmcs.c              |  7 +++-
 xen/arch/x86/io_apic.c                   |  6 ++-
 xen/arch/x86/irq.c                       |  9 +++-
 xen/arch/x86/microcode.c                 | 10 +++--
 xen/arch/x86/mm.c                        |  7 +++-
 xen/arch/x86/nmi.c                       | 20 ++++++---
 xen/arch/x86/numa.c                      | 10 +++--
 xen/arch/x86/oprofile/nmi_int.c          |  2 +
 xen/arch/x86/psr.c                       | 28 +++++++++----
 xen/arch/x86/setup.c                     | 32 ++++++++++-----
 xen/arch/x86/shutdown.c                  |  6 ++-
 xen/arch/x86/time.c                      |  6 ++-
 xen/arch/x86/x86_64/mmconfig-shared.c    | 19 +++++++--
 xen/arch/x86/xen.lds.S                   |  4 ++
 xen/common/core_parking.c                |  6 ++-
 xen/common/domain.c                      |  4 +-
 xen/common/efi/boot.c                    |  6 ++-
 xen/common/kernel.c                      | 70 +++++++++++++++++++++++++-------
 xen/common/kexec.c                       | 31 ++++++++++----
 xen/common/memory.c                      |  4 +-
 xen/common/sched_credit2.c               |  6 +--
 xen/common/sysctl.c                      | 29 +++++++++++++
 xen/drivers/acpi/tables.c                |  5 ++-
 xen/drivers/char/console.c               | 35 ++++++++++------
 xen/drivers/cpufreq/cpufreq.c            | 18 +++++---
 xen/drivers/passthrough/amd/iommu_acpi.c | 26 ++++++++----
 xen/drivers/passthrough/iommu.c          | 15 ++++---
 xen/drivers/passthrough/pci.c            | 17 +++++---
 xen/drivers/passthrough/vtd/dmar.c       |  4 +-
 xen/drivers/passthrough/vtd/quirks.c     |  7 ++--
 xen/drivers/video/vesa.c                 |  4 +-
 xen/include/acpi/cpufreq/cpufreq.h       |  2 +-
 xen/include/public/sysctl.h              | 19 +++++++++
 xen/include/xen/init.h                   | 22 +++++++++-
 xen/include/xen/lib.h                    |  1 +
 xen/xsm/flask/flask_op.c                 |  6 ++-
 xen/xsm/flask/hooks.c                    |  3 ++
 xen/xsm/flask/policy/access_vectors      |  2 +
 57 files changed, 529 insertions(+), 150 deletions(-)

-- 
2.12.3


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2017-08-10 17:32 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-09  7:06 [PATCH 00/52] Support for modifying parameters at runtime Juergen Gross
2017-08-09  7:06 ` [PATCH 01/52] xen/arch/arm/acpi/boot.c: let custom parameter parsing routines return errno Juergen Gross
2017-08-09  7:06 ` [PATCH 02/52] xen/arch/arm/domain_build.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 03/52] xen/arch/arm/traps.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 04/52] xen/arch/x86/apic.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 05/52] xen/arch/x86/cpu/mcheck/mce.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 06/52] xen/arch/x86/cpu/vpmu.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 07/52] xen/arch/x86/dom0_build.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 08/52] xen/arch/x86/genapic/probe.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 09/52] xen/arch/x86/hvm/viridian.c: " Juergen Gross
2017-08-09  8:02   ` Paul Durrant
2017-08-09  7:06 ` [PATCH 10/52] xen/arch/x86/hvm/vmx/vmcs.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 11/52] xen/arch/x86/io_apic.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 12/52] xen/arch/x86/irq.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 13/52] xen/arch/x86/microcode.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 14/52] xen/arch/x86/mm.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 15/52] xen/arch/x86/nmi.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 16/52] xen/arch/x86/numa.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 17/52] xen/arch/x86/oprofile/nmi_int.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 18/52] xen/arch/x86/psr.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 19/52] xen/arch/x86/setup.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 20/52] xen/arch/x86/shutdown.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 21/52] xen/arch/x86/time.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 22/52] xen/arch/x86/x86_64/mmconfig-shared.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 23/52] xen/common/core_parking.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 24/52] xen/common/domain.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 25/52] xen/common/efi/boot.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 26/52] xen/common/kexec.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 27/52] xen/common/memory.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 28/52] xen/common/sched_credit2.c: " Juergen Gross
2017-08-09  7:16   ` Dario Faggioli
2017-08-09  7:06 ` [PATCH 29/52] xen/drivers/acpi/tables.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 30/52] xen/drivers/char/console.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 31/52] xen/drivers/cpufreq/cpufreq.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 32/52] xen/drivers/passthrough/amd/iommu_acpi.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 33/52] xen/drivers/passthrough/iommu.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 34/52] xen/drivers/passthrough/pci.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 35/52] xen/drivers/passthrough/vtd/dmar.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 36/52] xen/drivers/passthrough/vtd/quirks.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 37/52] xen/drivers/video/vesa.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 38/52] xen/xsm/flask/flask_op.c: " Juergen Gross
2017-08-09 15:31   ` Daniel De Graaf
2017-08-09  7:06 ` [PATCH 39/52] xen: check parameter validity when parsing command line Juergen Gross
2017-08-10 13:02   ` Wei Liu
2017-08-10 13:24     ` Juergen Gross
2017-08-10 13:32       ` Jan Beulich
     [not found]       ` <598C7C96020000780016E8F0@suse.com>
2017-08-10 13:36         ` Juergen Gross
2017-08-10 13:38       ` Wei Liu
2017-08-09  7:06 ` [PATCH 40/52] xen/arch/x86/apic.c: remove custom_param() error messages Juergen Gross
2017-08-09  7:06 ` [PATCH 41/52] xen/arch/x86/cpu/mcheck/mce.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 42/52] xen/arch/x86/hvm/viridian.c: " Juergen Gross
2017-08-09  8:08   ` Paul Durrant
2017-08-09  7:06 ` [PATCH 43/52] xen/arch/x86/io_apic.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 44/52] xen/common/kexec.c: " Juergen Gross
2017-08-09  7:06 ` [PATCH 45/52] xen/common/sched_credit2.c: " Juergen Gross
2017-08-09  7:17   ` Dario Faggioli
2017-08-09  7:07 ` [PATCH 46/52] xen: carve out a generic parsing function from _cmdline_parse() Juergen Gross
2017-08-10 16:07   ` Wei Liu
2017-08-09  7:07 ` [PATCH 47/52] xen: add basic support for runtime parameter changing Juergen Gross
2017-08-10 16:17   ` Wei Liu
2017-08-10 17:31     ` Juergen Gross
2017-08-09  7:07 ` [PATCH 48/52] xen: add hypercall for setting parameters at runtime Juergen Gross
2017-08-09 16:56   ` Daniel De Graaf
2017-08-09  7:07 ` [PATCH 49/52] libxc: add function to set hypervisor parameters Juergen Gross
2017-08-10 16:27   ` Wei Liu
2017-08-09  7:07 ` [PATCH 50/52] libxl: add libxl_set_parameters() function Juergen Gross
2017-08-10 16:28   ` Wei Liu
2017-08-10 17:32     ` Juergen Gross
2017-08-09  7:07 ` [PATCH 51/52] xl: add new xl command set-parameters Juergen Gross
2017-08-10 16:29   ` Wei Liu
2017-08-09  7:07 ` [PATCH 52/52] xen: make some console related parameters settable at runtime Juergen Gross
2017-08-10 16:31   ` Wei Liu
2017-08-10 16:42 ` [PATCH 00/52] Support for modifying parameters " Wei Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).