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/
|
#
4d846d26 |
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
ff490346 |
| 15-Aug-2022 |
Dimitry Andric <dim@FreeBSD.org> |
Adjust function definition in moea64_native.c to avoid clang 15 warning
With clang 15, the following -Werror warning is produced:
sys/powerpc/aim/moea64_native.c:306:22: error: a function decla
Adjust function definition in moea64_native.c to avoid clang 15 warning
With clang 15, the following -Werror warning is produced:
sys/powerpc/aim/moea64_native.c:306:22: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes] moea64_install_native() ^ void
This is because moea64_install_native() is declared with a (void) argument list, but defined with an empty argument list. Make the definition match the declaration.
MFC after: 3 days
show more ...
|
Revision tags: release/13.1.0 |
|
#
c9d26ca2 |
| 12-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
ppc mmoea64: Workaround set but unused warnings for RB_NEXT.
Inline the unused expression passed as the second argument to RB_NEXT.
|
Revision tags: release/12.3.0 |
|
#
49c894dd |
| 05-May-2021 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc64: Split out DMAP and non-DMAP implementations of some methods
Summary: Some methods are split between DMAP and non-DMAP, conditional on hw_direct_map variable. Rather than checking this va
powerpc64: Split out DMAP and non-DMAP implementations of some methods
Summary: Some methods are split between DMAP and non-DMAP, conditional on hw_direct_map variable. Rather than checking this variable every time, use it to install different functions via IFUNCs.
Reviewed By: luporl Differential Revision: https://reviews.freebsd.org/D30071
show more ...
|
Revision tags: release/13.0.0 |
|
#
ba5de7e9 |
| 11-Mar-2021 |
Warner Losh <imp@FreeBSD.org> |
SPDX: Spell 4 clause BSD license correctly
|
#
8801df34 |
| 09-Nov-2020 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC] Fix powerpc64le boot after HPT superpages addition
The HPT is always stored in big-endian, as it is accessed directly by the hardware as well as the kernel. As such, it is necessary to con
[PowerPC] Fix powerpc64le boot after HPT superpages addition
The HPT is always stored in big-endian, as it is accessed directly by the hardware as well as the kernel. As such, it is necessary to convert values to and from native endian when running on LE.
Some unconverted accesses snuck in accidentally with r367417.
Apply the appropriate conversions to fix boot hanging on powerpc64le.
Sponsored by: Tag1 Consulting, Inc.
show more ...
|
#
8b2133d4 |
| 06-Nov-2020 |
Leandro Lupori <luporl@FreeBSD.org> |
Fix powerpc and LINT builds
Fix build errors introduced by r367417 and r367390:
- Guard label reached only by powerpc64 - Guard vm_reserv_level_iffullpop call, that is not defined on powerpc vari
Fix powerpc and LINT builds
Fix build errors introduced by r367417 and r367390:
- Guard label reached only by powerpc64 - Guard vm_reserv_level_iffullpop call, that is not defined on powerpc variants that don't support superpages - Add missing hwpmc file, for when hwpmc is built into kernel
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 |
|
#
d418d3f6 |
| 23-Sep-2020 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC64LE] Implement endian-independent dword atomic PTE lock.
It's much easier to implement this in an endian-independent way when we don't also have to worry about masking half of the dword off
[PowerPC64LE] Implement endian-independent dword atomic PTE lock.
It's much easier to implement this in an endian-independent way when we don't also have to worry about masking half of the dword off.
Given that this code ran on a machine that ran a poudriere bulk with no kernel oddities, I am relatively certain it is correctly implemented. ;)
This should be a minor performance boost on BE as well.
Sponsored by: Tag1 Consulting, Inc.
show more ...
|
#
f475e00f |
| 23-Sep-2020 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC64LE] Fix endian conversion bugs in moea64.
For a body of code that had its endian conversion bits written blind without the ability to test, moea64 was VERY close to being correct.
There w
[PowerPC64LE] Fix endian conversion bugs in moea64.
For a body of code that had its endian conversion bits written blind without the ability to test, moea64 was VERY close to being correct.
There were only four instances where the existing code was getting it wrong.
Sponsored by: Tag1 Consulting, Inc.
show more ...
|
#
1e936efb |
| 15-Sep-2020 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC64LE] Set up the powernv partition table correctly.
The partition table is always big endian.
Sponsored by: Tag1 Consulting, Inc.
|
#
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 |
|
#
45b69dd6 |
| 27-May-2020 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/mmu: Convert PowerPC pmap drivers to ifunc from kobj
With IFUNC support in the kernel, we can finally get rid of our poor-man's ifunc for pmap, utilizing kobj. Since moea64 uses a second ti
powerpc/mmu: Convert PowerPC pmap drivers to ifunc from kobj
With IFUNC support in the kernel, we can finally get rid of our poor-man's ifunc for pmap, utilizing kobj. Since moea64 uses a second tier kobj as well, for its own private methods, this adds a second pmap install function (pmap_mmu_init()) to perform pmap 'post-install pre-bootstrap' initialization, before the IFUNCs get initialized.
Reviewed by: bdragon
show more ...
|
#
a7954011 |
| 08-Dec-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc64/pmap: micro-optimize some PVO-PTE logic
Summary: moea64_pte_sync_native() and moea64_pte_unset_native() don't need the full PTE created, they only need to check that the PVO has a matching
powerpc64/pmap: micro-optimize some PVO-PTE logic
Summary: moea64_pte_sync_native() and moea64_pte_unset_native() don't need the full PTE created, they only need to check that the PVO has a matching PTE to the PTE in the page table. Don't waste time creating the full PTE in this case.
Reviewed by: luporl Differential Revision: https://reviews.freebsd.org/D22341
show more ...
|
#
cf33fa7e |
| 13-Nov-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc64: Don't guard ISA 3.0 partition table setup with hw_direct_map
PowerISA 3.0 eliminated the 64-bit bridge mode which allowed 32-bit kernels to run on 64-bit AIM/Book-S hardware. Since there
powerpc64: Don't guard ISA 3.0 partition table setup with hw_direct_map
PowerISA 3.0 eliminated the 64-bit bridge mode which allowed 32-bit kernels to run on 64-bit AIM/Book-S hardware. Since therefore only a 64-bit kernel can run on this hardware, and 64-bit native always has the direct map, there is no need to guard it.
show more ...
|
Revision tags: release/12.1.0 |
|
#
95ca4720 |
| 21-Oct-2019 |
Leandro Lupori <luporl@FreeBSD.org> |
[PPC64] Add minidump support to PowerNV
Implementation of PowerNV specific minidump code.
Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D21643
|
#
f993ed2f |
| 09-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r351732 through r352104.
|
#
197a7e48 |
| 06-Sep-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc64/pmap: Simplify the code path for moea64_pte_replace_native()
Summary: MOEA64_PTE_REPLACE() is called often with the pmap lock held, and sometimes with the page pv lock held. The less work
powerpc64/pmap: Simplify the code path for moea64_pte_replace_native()
Summary: MOEA64_PTE_REPLACE() is called often with the pmap lock held, and sometimes with the page pv lock held. The less work done while holding a lock, the better. Since we are intending to replace the same PTE (same hash index), we don't need to recalculate anything, just flat replace the PTE. This cuts more than 200 instructions off the invalidating code path. In addition, we don't need to replace a PTE that's not occupied by this PVO.
Reviewed by: luporl Differential Revision: https://reviews.freebsd.org/D21515
show more ...
|
#
a63915c2 |
| 28-Jul-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @r350386
Sponsored by: The FreeBSD Foundation
|
#
7c382eea |
| 25-Jul-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/pmap64: Make moea64 statistics optional
Summary: It turns out statistics accounting is very expensive in the pmap driver, and doesn't seem necessary in the common case. Make this optional b
powerpc/pmap64: Make moea64 statistics optional
Summary: It turns out statistics accounting is very expensive in the pmap driver, and doesn't seem necessary in the common case. Make this optional behind a MOEA64_STATS #define, which one can set if they really need statistics.
This saves ~7-8% on buildworld time on a POWER9.
Found by bdragon.
Reviewed by: luporl Differential Revision: https://reviews.freebsd.org/D20903
show more ...
|
Revision tags: release/11.3.0 |
|
#
0269ae4c |
| 06-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @348740
Sponsored by: The FreeBSD Foundation
|
#
4420fc89 |
| 01-Jun-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/moea: Fix moea64 native VA invalidation
Summary: moea64_insert_pteg_native()'s invalidation only works by happenstance. The purpose of the shifts and XORs is to extract the VSID in order to
powerpc/moea: Fix moea64 native VA invalidation
Summary: moea64_insert_pteg_native()'s invalidation only works by happenstance. The purpose of the shifts and XORs is to extract the VSID in order to reverse-engineer the lower bits of the VPN. Currently a segment size is 256MB (2**28), and ADDR_API_SHFT64 is 16, so ADDR_PIDX_SHIFT is equivalent. However, it's semantically incorrect, in that we don't want to shift by the page shift size, we want to shift to get to the VSID.
Tested by: bdragon Differential Revision: https://reviews.freebsd.org/D20467
show more ...
|
#
8cd3016c |
| 25-May-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc64/pmap: Reapply r334235 to OEA64 pmap, clearing HID0_RADIX
This was lost in the re-merger of ISA3 MMU into moea64_native.
|
#
415e34c4 |
| 29-Mar-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead@r345677
|