File 5ffc58c4-ACPI-reduce-verbosity-by-default.patch of Package xen.19911
References: bsc#1177204
# Commit b4b0a8609c42d9e01dd51fd59ab2859f7df2a961
# Date 2021-01-11 14:55:16 +0100
# Author Jan Beulich <jbeulich@suse.com>
# Committer Jan Beulich <jbeulich@suse.com>
ACPI: reduce verbosity by default
While they're KERN_INFO messages and hence not visible by default, we
still have had reports that the amount of output is too large, not the
least because
- the command line controlled resizing of the console ring buffer
happens only after SRAT parsing (which may alone produce more than 16k
of output),
- the default resizing of the console ring buffer happens only after
ACPI table parsing, since the default size gets calculated depending
on the number or processors found.
Gate all per-processor logging behind a new "acpi=verbose", making sure
we wouldn't unintentionally pass this on to Dom0.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
--- sle15sp1.orig/docs/misc/xen-command-line.pandoc 2020-11-02 15:54:40.000000000 +0100
+++ sle15sp1/docs/misc/xen-command-line.pandoc 2021-03-15 10:07:28.417945565 +0100
@@ -75,13 +75,10 @@ of Boolean and String. These are noted
## Parameter details
### acpi
-> `= force | ht | noirq | <boolean>`
+> `= force | ht | noirq | <boolean> | verbose`
**String**, or **Boolean** to disable.
-The **acpi** option is used to control a set of four related boolean
-flags; `acpi_force`, `acpi_ht`, `acpi_noirq` and `acpi_disabled`.
-
By default, Xen will scan the DMI data and blacklist certain systems
which are known to have broken ACPI setups. Providing `acpi=force`
will cause Xen to ignore the blacklist and attempt to use all ACPI
@@ -97,12 +94,15 @@ which requires this option to function s
Additionally, this will not prevent Xen from finding IO-APIC entries
from the MP tables.
-Finally, any of the boolean false options can be used to disable ACPI
+Further, any of the boolean false options can be used to disable ACPI
usage entirely.
Because responsibility for ACPI processing is shared between Xen and
the domain 0 kernel this option is automatically propagated to the
-domain 0 command line
+domain 0 command line.
+
+Finally, `acpi=verbose` will enable per-processor information logging
+which may otherwise be too noisy in particular on large systems.
### acpi_apic_instance
> `= <integer>`
--- sle15sp1.orig/xen/arch/x86/setup.c 2020-05-18 19:29:10.000000000 +0200
+++ sle15sp1/xen/arch/x86/setup.c 2021-03-15 10:07:28.417945565 +0100
@@ -77,6 +77,7 @@ unsigned long __read_mostly cr4_pv32_mas
/* "acpi=force": Override the disable blacklist. */
/* "acpi=ht": Limit ACPI just to boot-time to enable HT. */
/* "acpi=noirq": Disables ACPI interrupt routing. */
+/* "acpi=verbose": Enables more verbose ACPI boot time logging. */
static int parse_acpi_param(const char *s);
custom_param("acpi", parse_acpi_param);
@@ -181,9 +182,6 @@ static char __initdata acpi_param[10] =
static int __init parse_acpi_param(const char *s)
{
- /* Save the parameter so it can be propagated to domain0. */
- safe_strcpy(acpi_param, s);
-
/* Interpret the parameter for use within Xen. */
if ( !parse_bool(s, NULL) )
{
@@ -205,9 +203,17 @@ static int __init parse_acpi_param(const
{
acpi_noirq_set();
}
+ else if ( !strcmp(s, "verbose") )
+ {
+ opt_acpi_verbose = true;
+ return 0;
+ }
else
return -EINVAL;
+ /* Save the parameter so it can be propagated to domain0. */
+ safe_strcpy(acpi_param, s);
+
return 0;
}
--- sle15sp1.orig/xen/arch/x86/srat.c 2018-12-04 20:42:21.000000000 +0100
+++ sle15sp1/xen/arch/x86/srat.c 2021-03-15 10:07:28.417945565 +0100
@@ -230,8 +230,10 @@ acpi_numa_x2apic_affinity_init(const str
apicid_to_node[pa->apic_id] = node;
node_set(node, processor_nodes_parsed);
acpi_numa = 1;
- printk(KERN_INFO "SRAT: PXM %u -> APIC %08x -> Node %u\n",
- pxm, pa->apic_id, node);
+
+ if (opt_acpi_verbose)
+ printk(KERN_INFO "SRAT: PXM %u -> APIC %08x -> Node %u\n",
+ pxm, pa->apic_id, node);
}
/* Callback for Proximity Domain -> LAPIC mapping */
@@ -263,8 +265,10 @@ acpi_numa_processor_affinity_init(const
apicid_to_node[pa->apic_id] = node;
node_set(node, processor_nodes_parsed);
acpi_numa = 1;
- printk(KERN_INFO "SRAT: PXM %u -> APIC %02x -> Node %u\n",
- pxm, pa->apic_id, node);
+
+ if (opt_acpi_verbose)
+ printk(KERN_INFO "SRAT: PXM %u -> APIC %02x -> Node %u\n",
+ pxm, pa->apic_id, node);
}
/* Callback for parsing of the Proximity Domain <-> Memory Area mappings */
--- sle15sp1.orig/xen/drivers/acpi/tables.c 2017-12-13 16:40:56.000000000 +0100
+++ sle15sp1/xen/drivers/acpi/tables.c 2021-03-15 10:07:28.417945565 +0100
@@ -35,6 +35,8 @@
#define ACPI_MAX_TABLES 128
+bool __initdata opt_acpi_verbose;
+
static const char *__initdata
mps_inti_flags_polarity[] = { "dfl", "high", "res", "low" };
static const char *__initdata
@@ -50,6 +52,7 @@ void __init acpi_table_print_madt_entry(
switch (header->type) {
case ACPI_MADT_TYPE_LOCAL_APIC:
+ if (opt_acpi_verbose)
{
struct acpi_madt_local_apic *p =
(struct acpi_madt_local_apic *)header;
@@ -61,6 +64,7 @@ void __init acpi_table_print_madt_entry(
break;
case ACPI_MADT_TYPE_LOCAL_X2APIC:
+ if (opt_acpi_verbose)
{
struct acpi_madt_local_x2apic *p =
(struct acpi_madt_local_x2apic *)header;
@@ -114,6 +118,7 @@ void __init acpi_table_print_madt_entry(
break;
case ACPI_MADT_TYPE_LOCAL_APIC_NMI:
+ if (opt_acpi_verbose)
{
struct acpi_madt_local_apic_nmi *p =
(struct acpi_madt_local_apic_nmi *)header;
@@ -127,6 +132,7 @@ void __init acpi_table_print_madt_entry(
break;
case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI:
+ if (opt_acpi_verbose)
{
u16 polarity, trigger;
struct acpi_madt_local_x2apic_nmi *p =
@@ -166,6 +172,7 @@ void __init acpi_table_print_madt_entry(
break;
case ACPI_MADT_TYPE_LOCAL_SAPIC:
+ if (opt_acpi_verbose)
{
struct acpi_madt_local_sapic *p =
(struct acpi_madt_local_sapic *)header;
--- sle15sp1.orig/xen/include/xen/acpi.h 2018-05-08 21:36:04.000000000 +0200
+++ sle15sp1/xen/include/xen/acpi.h 2021-03-15 10:07:28.417945565 +0100
@@ -53,6 +53,8 @@
extern acpi_physical_address rsdp_hint;
+extern bool opt_acpi_verbose;
+
enum acpi_interrupt_id {
ACPI_INTERRUPT_PMI = 1,
ACPI_INTERRUPT_INIT,