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 Skipped
Unit
Tests Skipped
Build Status
Buildable 9064
Build 9475: CI src buildJenkins

Event Timeline

Mention multi-ABI machines.

share/man/man7/arch.7
51

powerpc? Do we want a table?

102

on CPUs that allow it. (not all do)

share/man/man7/arch.7
51

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

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

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

@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

*the* kernel uses *a* separate address space

57

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

58

Maybe "All FreeBSD architectures use some variant of"

60

user main thread?

kib marked 4 inline comments as done.May 4 2017, 5:43 PM
kib added inline comments.
share/man/man7/arch.7
42–44

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

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

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

58

of *the* ELF

70

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

72

probably "the main user mode thread's stack"

73

*the* highest

84

comma splice,
ABI*.* Typically these are

86

where *the* native

102

*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.