Page MenuHomeFreeBSD

More human voice for arch(7).
ClosedPublic

Authored by kib on May 4 2017, 12:14 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mar 10 2024, 7:38 AM
Unknown Object (File)
Feb 26 2024, 4:54 AM
Unknown Object (File)
Feb 10 2024, 1:41 AM
Unknown Object (File)
Dec 22 2023, 11:10 PM
Unknown Object (File)
Nov 11 2023, 7:12 PM
Unknown Object (File)
Nov 10 2023, 9:33 PM
Unknown Object (File)
Nov 9 2023, 11:59 AM
Unknown Object (File)
Nov 8 2023, 11:28 AM
Subscribers

Details

Summary

Explain some basic expectations about architectures supported by FreeBSD, note about ILP32 and LP64.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Mention multi-ABI machines.

share/man/man7/arch.7
51 ↗(On Diff #28013)

powerpc? Do we want a table?

102 ↗(On Diff #28013)

on CPUs that allow it. (not all do)

share/man/man7/arch.7
51 ↗(On Diff #28013)

In fact, I think that this is not that important to put exact list in arch(7). I reformulated this into more vague note specifying that it is possible to have either.

Main point there I wanted to make is that address space available to usermode varies.

102 ↗(On Diff #28013)

Only ARMv8 has optional 32bit mode, other architectures are dual-mode always, AFAIK. Please correct me. I mentioned AArch32 as a prerequisite.

Mention two-complement.
AArch32 support is required for 32bit (but we do not).
Make list of arches where K/U AS different more vague.

share/man/man7/arch.7
102 ↗(On Diff #28013)

Correct. VAX is the only other example I can think where some CPUs had the new mode, while others had both. That's not relevant here though.

Thanks for the tweaks! I'm happy now.

This revision is now accepted and ready to land.May 4 2017, 4:48 PM
emaste added inline comments.
share/man/man7/arch.7
42–44 ↗(On Diff #28028)

@brooks might have something to say about this :-) It's useful (and correct) to accurately document this state of affairs as it exists today, although maybe a very brief comment about changes coming up?

56 ↗(On Diff #28028)

*the* kernel uses *a* separate address space

57 ↗(On Diff #28028)

Maybe "kernel and user share a single address space"?

60 ↗(On Diff #28028)

user main thread?

63 ↗(On Diff #28028)

Maybe "All FreeBSD architectures use some variant of"

kib marked 4 inline comments as done.May 4 2017, 5:43 PM
kib added inline comments.
share/man/man7/arch.7
42–44 ↗(On Diff #28028)

Could you propose the wording ? I believe that chery is neither ILP32 nor LP64, so more editing will be required at that time.

IMO for now it is enough to reflect the present state.

kib edited edge metadata.

Editings after emaste comments.

This revision now requires review to proceed.May 4 2017, 5:45 PM
share/man/man7/arch.7
49 ↗(On Diff #28033)

Maybe something like:

In order to maximize compatibility with future pointer integrity mechanisms,
manipulations of pointers as integers should be performed via
.Vt uintptr_t
or
.Vt intptr_t
and no other types.
In particular,
.Vt long
and
.Vt ptrdiff_t
should be avoided.

Add future-proof advise by brooks.

I think this is fine with a few articles as pointed out inline; we can always refine it further later on.

share/man/man7/arch.7
44 ↗(On Diff #28037)

probably variables, *and* uintptr_t and size_t types are...

70 ↗(On Diff #28037)

Channeling wblock, avoid comma splace: "single address space. The kernel is located at the highest addresses."

72 ↗(On Diff #28037)

probably "the main user mode thread's stack"

73 ↗(On Diff #28037)

*the* highest

75 ↗(On Diff #28037)

of *the* ELF

101 ↗(On Diff #28037)

comma splice,
ABI*.* Typically these are

103 ↗(On Diff #28037)

where *the* native

119 ↗(On Diff #28037)

*the* CPU

This revision is now accepted and ready to land.May 4 2017, 9:11 PM
kib marked 8 inline comments as done.May 4 2017, 9:24 PM
This revision was automatically updated to reflect the committed changes.