Commit ceb2465c authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

Merge tag 'irqchip-fixes-5.9-2' of...

Merge tag 'irqchip-fixes-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent

Pull irqchip fixes from Marc Zyngier:

 - Revert the wholesale conversion to platform drivers of the pdc, sysirq
   and cirq drivers, as it breaks a number of platforms even when the
   driver is built-in (probe ordering bites you).

 - Prevent interrupt from being lost with the STM32 exti driver

 - Fix wake-up interrupts for the MIPS Ingenic driver

 - Fix an embarassing typo in the new module helpers, leading to the probe
   failing most of the time

 - The promised TI firmware rework that couldn't make it into the merge
   window due to a very badly managed set of dependencies
parents f107cee9 821fc9e2
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -2,11 +2,16 @@
# This list is used by git-shortlog to fix a few botched name translations
# in the git archive, either because the author's full name was messed up
# and/or not always written the same way, making contributions from the
# same person appearing not to be so or badly displayed.
# same person appearing not to be so or badly displayed. Also allows for
# old email addresses to map to new email addresses.
#
# For format details, see "MAPPING AUTHORS" in "man git-shortlog".
#
# Please keep this list dictionary sorted.
#
# This comment is parsed by git-shortlog:
# repo-abbrev: /pub/scm/linux/kernel/git/
#

Aaron Durbin <adurbin@google.com>
Adam Oldham <oldhamca@gmail.com>
Adam Radford <aradford@gmail.com>
@@ -99,6 +104,7 @@ Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@linux.vnet.ibm.com>
Greg Kroah-Hartman <greg@echidna.(none)>
Greg Kroah-Hartman <gregkh@suse.de>
Greg Kroah-Hartman <greg@kroah.com>
Greg Kurz <groug@kaod.org> <gkurz@linux.vnet.ibm.com>
Gregory CLEMENT <gregory.clement@bootlin.com> <gregory.clement@free-electrons.com>
Hanjun Guo <guohanjun@huawei.com> <hanjun.guo@linaro.org>
Heiko Carstens <hca@linux.ibm.com> <h.carstens@de.ibm.com>
+4 −0
Original line number Diff line number Diff line
@@ -1274,6 +1274,10 @@ PAGE_SIZE multiple when read back.
		Amount of memory used for storing in-kernel data
		structures.

	  percpu
		Amount of memory used for storing per-cpu kernel
		data structures.

	  sock
		Amount of memory used in network transmission buffers

+4 −0
Original line number Diff line number Diff line
@@ -80,6 +80,10 @@ The possible values in this file are:
       - The processor is not vulnerable.
     * - KVM: Mitigation: Split huge pages
       - Software changes mitigate this issue.
     * - KVM: Mitigation: VMX unsupported
       - KVM is not vulnerable because Virtual Machine Extensions (VMX) is not supported.
     * - KVM: Mitigation: VMX disabled
       - KVM is not vulnerable because Virtual Machine Extensions (VMX) is disabled.
     * - KVM: Vulnerable
       - The processor is vulnerable, but no mitigation enabled

+18 −18
Original line number Diff line number Diff line
@@ -724,7 +724,7 @@
			memory region [offset, offset + size] for that kernel
			image. If '@offset' is omitted, then a suitable offset
			is selected automatically.
			[KNL, x86_64] select a region under 4G first, and
			[KNL, X86-64] Select a region under 4G first, and
			fall back to reserve region above 4G when '@offset'
			hasn't been specified.
			See Documentation/admin-guide/kdump/kdump.rst for further details.
@@ -737,14 +737,14 @@
			Documentation/admin-guide/kdump/kdump.rst for an example.

	crashkernel=size[KMG],high
			[KNL, x86_64] range could be above 4G. Allow kernel
			[KNL, X86-64] range could be above 4G. Allow kernel
			to allocate physical memory region from top, so could
			be above 4G if system have more than 4G ram installed.
			Otherwise memory region will be allocated below 4G, if
			available.
			It will be ignored if crashkernel=X is specified.
	crashkernel=size[KMG],low
			[KNL, x86_64] range under 4G. When crashkernel=X,high
			[KNL, X86-64] range under 4G. When crashkernel=X,high
			is passed, kernel could allocate physical memory region
			above 4G, that cause second kernel crash on system
			that require some amount of low memory, e.g. swiotlb
@@ -1427,7 +1427,7 @@

	gamma=		[HW,DRM]

	gart_fix_e820=	[X86_64] disable the fix e820 for K8 GART
	gart_fix_e820=	[X86-64] disable the fix e820 for K8 GART
			Format: off | on
			default: on

@@ -1814,7 +1814,7 @@
			Format: 0 | 1
			Default set by CONFIG_INIT_ON_FREE_DEFAULT_ON.

	init_pkru=	[x86] Specify the default memory protection keys rights
	init_pkru=	[X86] Specify the default memory protection keys rights
			register contents for all processes.  0x55555554 by
			default (disallow access to all but pkey 0).  Can
			override in debugfs after boot.
@@ -1822,7 +1822,7 @@
	inport.irq=	[HW] Inport (ATI XL and Microsoft) busmouse driver
			Format: <irq>

	int_pln_enable	[x86] Enable power limit notification interrupt
	int_pln_enable	[X86] Enable power limit notification interrupt

	integrity_audit=[IMA]
			Format: { "0" | "1" }
@@ -1840,7 +1840,7 @@
			bypassed by not enabling DMAR with this option. In
			this case, gfx device will use physical address for
			DMA.
		forcedac [x86_64]
		forcedac [X86-64]
			With this option iommu will not optimize to look
			for io virtual address below 32-bit forcing dual
			address cycle on pci bus for cards supporting greater
@@ -1925,7 +1925,7 @@
		strict	regions from userspace.
		relaxed

	iommu=		[x86]
	iommu=		[X86]
		off
		force
		noforce
@@ -1935,8 +1935,8 @@
		merge
		nomerge
		soft
		pt		[x86]
		nopt		[x86]
		pt		[X86]
		nopt		[X86]
		nobypass	[PPC/POWERNV]
			Disable IOMMU bypass, using IOMMU for PCI devices.

@@ -2079,21 +2079,21 @@

	iucv=		[HW,NET]

	ivrs_ioapic	[HW,X86_64]
	ivrs_ioapic	[HW,X86-64]
			Provide an override to the IOAPIC-ID<->DEVICE-ID
			mapping provided in the IVRS ACPI table. For
			example, to map IOAPIC-ID decimal 10 to
			PCI device 00:14.0 write the parameter as:
				ivrs_ioapic[10]=00:14.0

	ivrs_hpet	[HW,X86_64]
	ivrs_hpet	[HW,X86-64]
			Provide an override to the HPET-ID<->DEVICE-ID
			mapping provided in the IVRS ACPI table. For
			example, to map HPET-ID decimal 0 to
			PCI device 00:14.0 write the parameter as:
				ivrs_hpet[0]=00:14.0

	ivrs_acpihid	[HW,X86_64]
	ivrs_acpihid	[HW,X86-64]
			Provide an override to the ACPI-HID:UID<->DEVICE-ID
			mapping provided in the IVRS ACPI table. For
			example, to map UART-HID:UID AMD0020:0 to
@@ -2370,7 +2370,7 @@
	lapic		[X86-32,APIC] Enable the local APIC even if BIOS
			disabled it.

	lapic=		[x86,APIC] "notscdeadline" Do not use TSC deadline
	lapic=		[X86,APIC] "notscdeadline" Do not use TSC deadline
			value for LAPIC timer one-shot implementation. Default
			back to the programmable timer unit in the LAPIC.

@@ -3188,12 +3188,12 @@
			register save and restore. The kernel will only save
			legacy floating-point registers on task switch.

	nohugeiomap	[KNL,x86,PPC] Disable kernel huge I/O mappings.
	nohugeiomap	[KNL,X86,PPC] Disable kernel huge I/O mappings.

	nosmt		[KNL,S390] Disable symmetric multithreading (SMT).
			Equivalent to smt=1.

			[KNL,x86] Disable symmetric multithreading (SMT).
			[KNL,X86] Disable symmetric multithreading (SMT).
			nosmt=force: Force disable SMT, cannot be undone
				     via the sysfs control file.

@@ -3955,7 +3955,7 @@
	pt.		[PARIDE]
			See Documentation/admin-guide/blockdev/paride.rst.

	pti=		[X86_64] Control Page Table Isolation of user and
	pti=		[X86-64] Control Page Table Isolation of user and
			kernel address spaces.  Disabling this feature
			removes hardening, but improves performance of
			system calls and interrupts.
@@ -3967,7 +3967,7 @@

			Not specifying this option is equivalent to pti=auto.

	nopti		[X86_64]
	nopti		[X86-64]
			Equivalent to pti=off

	pty.legacy_count=
+43 −46
Original line number Diff line number Diff line
@@ -54,10 +54,13 @@ registered (see `below <status_attr_>`_).
Operation Modes
===============

``intel_pstate`` can operate in three different modes: in the active mode with
or without hardware-managed P-states support and in the passive mode.  Which of
them will be in effect depends on what kernel command line options are used and
on the capabilities of the processor.
``intel_pstate`` can operate in two different modes, active or passive.  In the
active mode, it uses its own internal performance scaling governor algorithm or
allows the hardware to do preformance scaling by itself, while in the passive
mode it responds to requests made by a generic ``CPUFreq`` governor implementing
a certain performance scaling algorithm.  Which of them will be in effect
depends on what kernel command line options are used and on the capabilities of
the processor.

Active Mode
-----------
@@ -194,10 +197,11 @@ This is the default operation mode of ``intel_pstate`` for processors without
hardware-managed P-states (HWP) support.  It is always used if the
``intel_pstate=passive`` argument is passed to the kernel in the command line
regardless of whether or not the given processor supports HWP.  [Note that the
``intel_pstate=no_hwp`` setting implies ``intel_pstate=passive`` if it is used
without ``intel_pstate=active``.]  Like in the active mode without HWP support,
in this mode ``intel_pstate`` may refuse to work with processors that are not
recognized by it.
``intel_pstate=no_hwp`` setting causes the driver to start in the passive mode
if it is not combined with ``intel_pstate=active``.]  Like in the active mode
without HWP support, in this mode ``intel_pstate`` may refuse to work with
processors that are not recognized by it if HWP is prevented from being enabled
through the kernel command line.

If the driver works in this mode, the ``scaling_driver`` policy attribute in
``sysfs`` for all ``CPUFreq`` policies contains the string "intel_cpufreq".
@@ -318,10 +322,9 @@ manuals need to be consulted to get to it too.

For this reason, there is a list of supported processors in ``intel_pstate`` and
the driver initialization will fail if the detected processor is not in that
list, unless it supports the `HWP feature <Active Mode_>`_.  [The interface to
obtain all of the information listed above is the same for all of the processors
supporting the HWP feature, which is why they all are supported by
``intel_pstate``.]
list, unless it supports the HWP feature.  [The interface to obtain all of the
information listed above is the same for all of the processors supporting the
HWP feature, which is why ``intel_pstate`` works with all of them.]


User Space Interface in ``sysfs``
@@ -425,22 +428,16 @@ argument is passed to the kernel in the command line.
	as well as the per-policy ones) are then reset to their default
	values, possibly depending on the target operation mode.]

	That only is supported in some configurations, though (for example, if
	the `HWP feature is enabled in the processor <Active Mode With HWP_>`_,
	the operation mode of the driver cannot be changed), and if it is not
	supported in the current configuration, writes to this attribute will
	fail with an appropriate error.

``energy_efficiency``
	This attribute is only present on platforms, which have CPUs matching
	Kaby Lake or Coffee Lake desktop CPU model. By default
	energy efficiency optimizations are disabled on these CPU models in HWP
	mode by this driver. Enabling energy efficiency may limit maximum
	operating frequency in both HWP and non HWP mode. In non HWP mode,
	optimizations are done only in the turbo frequency range. In HWP mode,
	optimizations are done in the entire frequency range. Setting this
	attribute to "1" enables energy efficiency optimizations and setting
	to "0" disables energy efficiency optimizations.
	This attribute is only present on platforms with CPUs matching the Kaby
	Lake or Coffee Lake desktop CPU model. By default, energy-efficiency
	optimizations are disabled on these CPU models if HWP is enabled.
	Enabling energy-efficiency optimizations may limit maximum operating
	frequency with or without the HWP feature.  With HWP enabled, the
	optimizations are done only in the turbo frequency range.  Without it,
	they are done in the entire available frequency range.  Setting this
	attribute to "1" enables the energy-efficiency optimizations and setting
	to "0" disables them.

Interpretation of Policy Attributes
-----------------------------------
@@ -484,8 +481,8 @@ Next, the following policy attributes have special meaning if
	policy for the time interval between the last two invocations of the
	driver's utilization update callback by the CPU scheduler for that CPU.

One more policy attribute is present if the `HWP feature is enabled in the
processor <Active Mode With HWP_>`_:
One more policy attribute is present if the HWP feature is enabled in the
processor:

``base_frequency``
	Shows the base frequency of the CPU. Any frequency above this will be
@@ -526,11 +523,11 @@ on the following rules, regardless of the current operation mode of the driver:

 3. The global and per-policy limits can be set independently.

If the `HWP feature is enabled in the processor <Active Mode With HWP_>`_, the
resulting effective values are written into its registers whenever the limits
change in order to request its internal P-state selection logic to always set
P-states within these limits.  Otherwise, the limits are taken into account by
scaling governors (in the `passive mode <Passive Mode_>`_) and by the driver
In the `active mode with the HWP feature enabled <Active Mode With HWP_>`_, the
resulting effective values are written into hardware registers whenever the
limits change in order to request its internal P-state selection logic to always
set P-states within these limits.  Otherwise, the limits are taken into account
by scaling governors (in the `passive mode <Passive Mode_>`_) and by the driver
every time before setting a new P-state for a CPU.

Additionally, if the ``intel_pstate=per_cpu_perf_limits`` command line argument
@@ -541,12 +538,11 @@ at all and the only way to set the limits is by using the policy attributes.
Energy vs Performance Hints
---------------------------

If ``intel_pstate`` works in the `active mode with the HWP feature enabled
<Active Mode With HWP_>`_ in the processor, additional attributes are present
in every ``CPUFreq`` policy directory in ``sysfs``.  They are intended to allow
user space to help ``intel_pstate`` to adjust the processor's internal P-state
selection logic by focusing it on performance or on energy-efficiency, or
somewhere between the two extremes:
If the hardware-managed P-states (HWP) is enabled in the processor, additional
attributes, intended to allow user space to help ``intel_pstate`` to adjust the
processor's internal P-state selection logic by focusing it on performance or on
energy-efficiency, or somewhere between the two extremes, are present in every
``CPUFreq`` policy directory in ``sysfs``.  They are :

``energy_performance_preference``
	Current value of the energy vs performance hint for the given policy
@@ -650,12 +646,14 @@ of them have to be prepended with the ``intel_pstate=`` prefix.
	Do not register ``intel_pstate`` as the scaling driver even if the
	processor is supported by it.

``active``
	Register ``intel_pstate`` in the `active mode <Active Mode_>`_ to start
	with.

``passive``
	Register ``intel_pstate`` in the `passive mode <Passive Mode_>`_ to
	start with.

	This option implies the ``no_hwp`` one described below.

``force``
	Register ``intel_pstate`` as the scaling driver instead of
	``acpi-cpufreq`` even if the latter is preferred on the given system.
@@ -670,13 +668,12 @@ of them have to be prepended with the ``intel_pstate=`` prefix.
	driver is used instead of ``acpi-cpufreq``.

``no_hwp``
	Do not enable the `hardware-managed P-states (HWP) feature
	<Active Mode With HWP_>`_ even if it is supported by the processor.
	Do not enable the hardware-managed P-states (HWP) feature even if it is
	supported by the processor.

``hwp_only``
	Register ``intel_pstate`` as the scaling driver only if the
	`hardware-managed P-states (HWP) feature <Active Mode With HWP_>`_ is
	supported by the processor.
	hardware-managed P-states (HWP) feature is supported by the processor.

``support_acpi_ppc``
	Take ACPI ``_PPC`` performance limits into account.
Loading