#
fdafd315 |
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remov
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0 |
|
#
cb5f8694 |
| 01-Apr-2021 |
Mark Johnston <markj@FreeBSD.org> |
powernv: Include NUMA locality information in the CPU topology
ULE uses this topology to try and preserve locality when migrating threads between CPUs and when performing work stealing. Ensure that
powernv: Include NUMA locality information in the CPU topology
ULE uses this topology to try and preserve locality when migrating threads between CPUs and when performing work stealing. Ensure that on NUMA systems it will at least take the NUMA topology into account.
Reviewed by: bdragon, jhibbits (previous version) Tested by: bdragon MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28580
show more ...
|
#
bd94c8ab |
| 28-Mar-2021 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC] Fix NUMA checking for powernv
At this point in startup, vm_ndomains has not been initialized. Switch to checking kenv instead.
Fixes incorrect NUMA information being set on multi-domain s
[PowerPC] Fix NUMA checking for powernv
At this point in startup, vm_ndomains has not been initialized. Switch to checking kenv instead.
Fixes incorrect NUMA information being set on multi-domain systems like Talos II.
Submitted by: jhibbits MFC after: 2 weeks
show more ...
|
#
e2d6c417 |
| 06-Nov-2020 |
Leandro Lupori <luporl@FreeBSD.org> |
Implement superpages for PowerPC64 (HPT)
This change adds support for transparent superpages for PowerPC64 systems using Hashed Page Tables (HPT). All pmap operations are supported.
The changes wer
Implement superpages for PowerPC64 (HPT)
This change adds support for transparent superpages for PowerPC64 systems using Hashed Page Tables (HPT). All pmap operations are supported.
The changes were inspired by RISC-V implementation of superpages, by @markj (r344106), but heavily adapted to fit PPC64 HPT architecture and existing MMU OEA64 code.
While these changes are not better tested, superpages support is disabled by default. To enable it, use vm.pmap.superpages_enabled=1.
In this initial implementation, when superpages are disabled, system performance stays at the same level as without these changes. When superpages are enabled, buildworld time increases a bit (~2%). However, for workloads that put a heavy pressure on the TLB the performance boost is much bigger (see HPC Challenge and pgbench on D25237).
Reviewed by: jhibbits Sponsored by: Eldorado Research Institute (eldorado.org.br) Differential Revision: https://reviews.freebsd.org/D25237
show more ...
|
Revision tags: release/12.2.0 |
|
#
c16359cf |
| 23-Sep-2020 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC64LE] powernv ILE setup code.
When running without a hypervisor, we need to set the ILE bit in the LPCR ourselves.
For the boot processor, handle it in powernv_attach() like we do for other
[PowerPC64LE] powernv ILE setup code.
When running without a hypervisor, we need to set the ILE bit in the LPCR ourselves.
For the boot processor, handle it in powernv_attach() like we do for other LPCR bits.
No change for the APs, as they will use the lpcr global to set up their own LPCR when they do their own cpudep_ap_early_bootstrap() and pick up this automatically.
Sponsored by: Tag1 Consulting, Inc.
show more ...
|
#
b64b3133 |
| 01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
powerpc: clean up empty lines in .c and .h files
|
Revision tags: release/11.4.0 |
|
#
e48f804f |
| 08-Jun-2020 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/powernv: Don't configure disabled CPUs
If the POWER firmware detects a bad CPU core, it will "GUARD" it out, marking it disabled. Any attempt to spin up a bad CPU will trigger a panic later
powerpc/powernv: Don't configure disabled CPUs
If the POWER firmware detects a bad CPU core, it will "GUARD" it out, marking it disabled. Any attempt to spin up a bad CPU will trigger a panic later on when waiting for threads on said core to wake up. Support limping along on fewer cores instead.
show more ...
|
#
e43d33d2 |
| 05-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358466 through r358677.
|
#
6df6aae9 |
| 03-Mar-2020 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/powernv: powernv_node_numa_domain() fix non-NUMA case
If NUMA is not enabled in the kernel config, or is disabled at boot, this function should just return domain 0 regardless of what's in t
powerpc/powernv: powernv_node_numa_domain() fix non-NUMA case
If NUMA is not enabled in the kernel config, or is disabled at boot, this function should just return domain 0 regardless of what's in the device tree.
Fixes a panic in iflib with NUMA disabled.
Reported by: luporl
show more ...
|
#
bb1d0df5 |
| 29-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357179 through r357269.
|
#
a9d8f71f |
| 29-Jan-2020 |
Leandro Lupori <luporl@FreeBSD.org> |
[PPC64] Fix NUMA on POWER8
On some POWER8 machines, 'ibm,associativity' property may have 6 cells, which would overflow the 5 cells buffer being used. There was also an issue with the "check if node
[PPC64] Fix NUMA on POWER8
On some POWER8 machines, 'ibm,associativity' property may have 6 cells, which would overflow the 5 cells buffer being used. There was also an issue with the "check if node is root" part, that have been fixed too.
Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D23414
show more ...
|
#
53d2936c |
| 20-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r356848 through r356919.
|
#
490ebb8f |
| 18-Jan-2020 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc: Fix the NUMA domain list on powernv
Summary: Consolidate the NUMA associativity handling into a platform function. Non-NUMA platforms will just fall back to the default (0). Currently only
powerpc: Fix the NUMA domain list on powernv
Summary: Consolidate the NUMA associativity handling into a platform function. Non-NUMA platforms will just fall back to the default (0). Currently only implemented for powernv, which uses a lookup table to map the device tree associativity into a system NUMA domain.
Fixes hangs on powernv after r356534, and corrects a fairly longstanding bug in powernv's NUMA handling, which ended up using domains 1 and 2 for devices and memory on power9, while CPUs were bound to domains 0 and 1.
Reviewed by: bdragon, luporl Differential Revision: https://reviews.freebsd.org/D23220
show more ...
|
#
1223b40e |
| 15-Dec-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/powernv: Set the PTCR for the Nest MMU
The Nest MMU manages address translation for accelerators on the POWER9. To do so, it needs a page table, so export the system page table to the Nest
powerpc/powernv: Set the PTCR for the Nest MMU
The Nest MMU manages address translation for accelerators on the POWER9. To do so, it needs a page table, so export the system page table to the Nest MMU. This will quietly fail on pre-POWER9 systems that do not have a NMMU.
The NMMU is currently unused, so this change is currently effectively a NOP, but the NMMU and VAS will eventually be used.
show more ...
|
Revision tags: release/12.1.0, release/11.3.0 |
|
#
7648bc9f |
| 13-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @347527
Sponsored by: The FreeBSD Foundation
|
#
49d9a597 |
| 13-Apr-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Add NUMA support to powerpc
Summary: Initial NUMA support: - associate CPU with domain - associate memory ranges with domain - identify domain for devices - limit device interrupt bi
Add NUMA support to powerpc
Summary: Initial NUMA support: - associate CPU with domain - associate memory ranges with domain - identify domain for devices - limit device interrupt binding to appropriate domain
- Additionally fixes a bug in the setting of Maxmem which led to only memory attached to the first socket being enabled for DMA
A pmap variant can opt in to numa support by by calling `numa_mem_regions` at the end of pmap_bootstrap - registering the corresponding ranges with the VM.
This yields a ~20% improvement in build times of llvm on dual socket POWER9 over non-NUMA.
Original patch by mmacy.
Differential Revision: https://reviews.freebsd.org/D17933
show more ...
|
#
c2c227a5 |
| 03-Feb-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r343571 through r343711.
|
#
d49fc192 |
| 02-Feb-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/powernv: Add a driver for the POWER9 XIVE interrupt controller
The XIVE (External Interrupt Virtualization Engine) is a new interrupt controller present in IBM's POWER9 processor. It's a ve
powerpc/powernv: Add a driver for the POWER9 XIVE interrupt controller
The XIVE (External Interrupt Virtualization Engine) is a new interrupt controller present in IBM's POWER9 processor. It's a very powerful, very complex device using queues and shared memory to improve interrupt dispatch performance in a virtualized environment.
This yields a ~10% performance improvment over the XICS emulation mode, measured in both buildworld, and 'dd' from nvme to /dev/null.
Currently, this only supports native access.
MFC after: 1 month
show more ...
|
#
bba9cbe3 |
| 07-Jan-2019 |
Conrad Meyer <cem@FreeBSD.org> |
powerpc: Fix regression introduced in r342771
In r342771, I introduced a regression in Power by abusing the platform smp_topo() method as a shortcut for providing the MI information needed for the s
powerpc: Fix regression introduced in r342771
In r342771, I introduced a regression in Power by abusing the platform smp_topo() method as a shortcut for providing the MI information needed for the stated sysctls. The smp_topo() method was already called later by sched_ule (under the name cpu_topo()), and initializes a static array of scheduler topology information. I had skimmed the smp_topo_foo() functions and assumed they were idempotent; empirically, they are not (or at least, detect re-initialization and panic).
Do the cleaner thing I should have done in the first place and add a platform method specifically for core- and thread-count probing.
Reported by: luporl via jhibbits Reviewed by: luporl X-MFC-With: r342771 Differential Revision: https://reviews.freebsd.org/D18777
show more ...
|
#
6b83069e |
| 04-Jan-2019 |
Conrad Meyer <cem@FreeBSD.org> |
Expose threads-per-core and physical core count information
With new sysctls (to the best of our ability do detect them). Restructured smp.4 slightly for clarity (keep relevant stuff closer to the
Expose threads-per-core and physical core count information
With new sysctls (to the best of our ability do detect them). Restructured smp.4 slightly for clarity (keep relevant stuff closer to the top) while documenting.
Reviewed by: markj, jhibbits (ppc parts) MFC after: 3 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D18322
show more ...
|
Revision tags: release/12.0.0, release/11.2.0 |
|
#
ef6da5e5 |
| 20-May-2018 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Add support for the XIVE XICS emulation mode for POWER9 systems
Summary: POWER9 systems use a new interrupt controller, XIVE, managed through OPAL firmware calls. The OPAL firmware includes support
Add support for the XIVE XICS emulation mode for POWER9 systems
Summary: POWER9 systems use a new interrupt controller, XIVE, managed through OPAL firmware calls. The OPAL firmware includes support for emulating the previous generation XICS presentation layer in addition to a new "XIVE Exploitation" mode. As a stopgap until we have XIVE exploitation mode, enable XICS emulation mode so that we at least have an interrupt controller.
Since the CPPR is local to the current CPU, it cannot be updated for APs when initializing on the BSP. This adds a new function, directly called by the powernv platform code, to initialize the CPPR on AP bringup.
Reviewed by: nwhitehorn Differential Revision: https://reviews.freebsd.org/D15492
show more ...
|
#
72820025 |
| 06-Mar-2018 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Fix use of unitialized variables.
|
#
6d13fd63 |
| 21-Feb-2018 |
Wojciech Macek <wma@FreeBSD.org> |
PowerNV: Put processor to power-save state in idle thread
When processor enters power-save state it releases resources shared with other cpu threads which makes other cores working much faster.
Thi
PowerNV: Put processor to power-save state in idle thread
When processor enters power-save state it releases resources shared with other cpu threads which makes other cores working much faster.
This patch also implements saving and restoring registers that might get corrupted in power-save state.
Submitted by: Patryk Duda <pdk@semihalf.com> Obtained from: Semihalf Reviewed by: jhibbits, nwhitehorn, wma Sponsored by: IBM, QCM Technologies Differential revision: https://reviews.freebsd.org/D14330
show more ...
|
#
70bb600a |
| 29-Jan-2018 |
Wojciech Macek <wma@FreeBSD.org> |
PowerNV: move LPCR and LPID altering to cpudep_ap_early_bootstrap
It turns out that under some circumstances we can get DSI or DSE before we set LPCR and LPID so we should set it as early as possibl
PowerNV: move LPCR and LPID altering to cpudep_ap_early_bootstrap
It turns out that under some circumstances we can get DSI or DSE before we set LPCR and LPID so we should set it as early as possible.
Authored by: Patryk Duda <pdk@semihalf.com> Submitted by: Wojciech Macek <wma@semihalf.com> Obtained from: Semihalf Sponsored by: IBM, QCM Technologies
show more ...
|