Page MenuHomeFreeBSD

Merge Book-E/AIM pcpu struct fields
ClosedPublic

Authored by jhibbits on Feb 17 2018, 3:46 AM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 26 2024, 4:42 PM
Unknown Object (File)
Dec 20 2023, 7:32 AM
Unknown Object (File)
Nov 8 2023, 7:42 PM
Unknown Object (File)
Aug 21 2023, 3:00 AM
Unknown Object (File)
Aug 11 2023, 10:44 PM
Unknown Object (File)
Aug 11 2023, 8:51 PM
Unknown Object (File)
Aug 11 2023, 7:28 AM
Unknown Object (File)
Jul 26 2023, 3:09 AM
Subscribers

Details

Reviewers
nwhitehorn
Summary

As part of the goal of having a GENERIC kernel for both AIM and Book-E,
merge PCPU struct fields into a single unionized struct.

Test Plan

compile for powerpc, powerpc64, with both AIM and Book-E targets.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 15095
Build 15188: arc lint + arc unit

Event Timeline

Looks great to me (no testing, though).

sys/powerpc/include/pcpu.h
139

Maybe we should just take the opportunity to get rid of the PCPU_MD_* #defines and put them inline? Also, we need to be careful that the length of the struct be unchanged (I think it is here).

This revision is now accepted and ready to land.Feb 17 2018, 5:44 PM
sys/powerpc/include/pcpu.h
139

I thought about that, but the PCPU_MD_AIM_FIELDS is dependent on 32 or 64-bit, and I didn't feel like changing that first pass. If I do extend 32-bit AIM to support the full SLB and large memory model, I might unify them, but until then, I'd rather just do the bare minimum.

Why would you want SLB on ppc32? It's only needed to support > 4 GB of VA space, but you can't have that by construction.

Why would you want SLB on ppc32? It's only needed to support > 4 GB of VA space, but you can't have that by construction.

I wasn't thinking correctly... I was thinking about the >4GB PA, which that doesn't cover (can we do >4GB PA in 32-bit space on Book-S generically? I only know of the MPC7450-class means, but I don't think that's generic).

Why would you want SLB on ppc32? It's only needed to support > 4 GB of VA space, but you can't have that by construction.

I wasn't thinking correctly... I was thinking about the >4GB PA, which that doesn't cover (can we do >4GB PA in 32-bit space on Book-S generically? I only know of the MPC7450-class means, but I don't think that's generic).

On 64-bit CPUs, we can use the exact same bridge code, since the page table format allows it. I have no idea how it works on 32-bit CPUs.