History log of /openbsd-current/sys/arch/amd64/amd64/sys_machdep.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.20 19-Feb-2018 mpi

Remove almost unused `flags' argument of suser().

The account flag `ASU' will no longer be set but that makes suser()
mpsafe since it no longer mess with a per-process field.

No objection from millert@, ok tedu@, bluhm@


# 1.19 07-Jan-2018 guenther

amd64_{get,set}_fsbase() are superfluous and unused; delete them.
Delete unused/never-implemented sysarch defines and structs while here.

ports check and ok naddy@
ok deraadt@ mlarkin@


# 1.18 14-Oct-2017 jsg

reduce the amount of includes in arch/amd64
ok mpi@ deraadt@


Revision tags: OPENBSD_6_2_BASE
# 1.17 27-Sep-2017 guenther

amd64 needs FS.base values (the TCB pointer) to be validated, as noncanonical
addresses will cause a fault on load by the kernel.

Problem observed by Maxime Villard
ok kettenis@ deraadt@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.16 18-May-2015 guenther

branches: 1.16.6; 1.16.10;
Do lazy update/reset of the FS.base and %[def]s segment registers: reseting
segment registers in cpu_switchto if the old thread had made it to userspace
and restoring FS.base only on first return to userspace since context switch.

ok mlarkin@


# 1.15 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE
# 1.14 02-Jun-2013 guenther

Don't need gdt.h here


# 1.13 05-May-2013 tedu

remove never used get/set ioperm sysarch functions. ok guenther


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.12 13-Apr-2011 guenther

Unrevert the FS.base diff: the issues were actually elsewhere
Additional testing by jasper@ and pea@


# 1.11 10-Apr-2011 guenther

Revert bulk of the FS.base diff, as it causes issues on some machines
and the problem isn't obvious yet.


# 1.10 05-Apr-2011 guenther

Add support for per-rthread base-offset for the %fs selector on amd64.
Add pcb_fsbase to the PCB for tracking what the value for the thread
is, and ci_cur_fsbase to struct cpu_info for tracking the CPU's current
value for FS.base, then on return to user-space, skip the setting if the
CPU has the right value already. Non-threaded processes without TLS leave
FS.base zero, which can be conveniently optimized: setting %fs zeros
FS.base for fewer cycles than wrmsr.

ok kettenis@


# 1.9 18-Mar-2011 guenther

Old-style MTRRs were never used on amd64, so remove the remaining traces
of them, as well as some other unused proc md_flags bits: MDP_COMPAT and
MDP_SYSCALL.

ok mikeb@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.8 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


# 1.7 11-Jun-2008 phessler

Synchronize the MTRR API with i386, and enable

"just commit it" deraadt@


# 1.6 23-May-2008 jasper

- remove USER_LDT, it was never in a state where it would copile, nor will
we support i386-compat mode on amd64.

agreed by beck@, dlg@, kettenis@
ok deraadt@, tom@


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.5 15-Jan-2007 jsg

ansi/deregister


Revision tags: OPENBSD_4_0_BASE
# 1.4 30-Jun-2006 miod

Make routines which may set PSL_IOPL consistent wrt the securelevel for
which this is allowed; ok deraadt@


Revision tags: OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE SMP_SYNC_A SMP_SYNC_B
# 1.3 27-Feb-2004 deraadt

move to amd64_() functions


# 1.2 21-Feb-2004 deraadt

aperture stuff


# 1.1 28-Jan-2004 mickey

branches: 1.1.2;
an amd64 arch support.
hacked by art@ from netbsd sources and then later debugged
by me into the shape where it can host itself.
no bootloader yet as needs redoing from the
recent advanced i386 sources (anyone? ;)


# 1.19 07-Jan-2018 guenther

amd64_{get,set}_fsbase() are superfluous and unused; delete them.
Delete unused/never-implemented sysarch defines and structs while here.

ports check and ok naddy@
ok deraadt@ mlarkin@


# 1.18 14-Oct-2017 jsg

reduce the amount of includes in arch/amd64
ok mpi@ deraadt@


Revision tags: OPENBSD_6_2_BASE
# 1.17 27-Sep-2017 guenther

amd64 needs FS.base values (the TCB pointer) to be validated, as noncanonical
addresses will cause a fault on load by the kernel.

Problem observed by Maxime Villard
ok kettenis@ deraadt@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.16 18-May-2015 guenther

branches: 1.16.6; 1.16.10;
Do lazy update/reset of the FS.base and %[def]s segment registers: reseting
segment registers in cpu_switchto if the old thread had made it to userspace
and restoring FS.base only on first return to userspace since context switch.

ok mlarkin@


# 1.15 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE
# 1.14 02-Jun-2013 guenther

Don't need gdt.h here


# 1.13 05-May-2013 tedu

remove never used get/set ioperm sysarch functions. ok guenther


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.12 13-Apr-2011 guenther

Unrevert the FS.base diff: the issues were actually elsewhere
Additional testing by jasper@ and pea@


# 1.11 10-Apr-2011 guenther

Revert bulk of the FS.base diff, as it causes issues on some machines
and the problem isn't obvious yet.


# 1.10 05-Apr-2011 guenther

Add support for per-rthread base-offset for the %fs selector on amd64.
Add pcb_fsbase to the PCB for tracking what the value for the thread
is, and ci_cur_fsbase to struct cpu_info for tracking the CPU's current
value for FS.base, then on return to user-space, skip the setting if the
CPU has the right value already. Non-threaded processes without TLS leave
FS.base zero, which can be conveniently optimized: setting %fs zeros
FS.base for fewer cycles than wrmsr.

ok kettenis@


# 1.9 18-Mar-2011 guenther

Old-style MTRRs were never used on amd64, so remove the remaining traces
of them, as well as some other unused proc md_flags bits: MDP_COMPAT and
MDP_SYSCALL.

ok mikeb@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.8 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


# 1.7 11-Jun-2008 phessler

Synchronize the MTRR API with i386, and enable

"just commit it" deraadt@


# 1.6 23-May-2008 jasper

- remove USER_LDT, it was never in a state where it would copile, nor will
we support i386-compat mode on amd64.

agreed by beck@, dlg@, kettenis@
ok deraadt@, tom@


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.5 15-Jan-2007 jsg

ansi/deregister


Revision tags: OPENBSD_4_0_BASE
# 1.4 30-Jun-2006 miod

Make routines which may set PSL_IOPL consistent wrt the securelevel for
which this is allowed; ok deraadt@


Revision tags: OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE SMP_SYNC_A SMP_SYNC_B
# 1.3 27-Feb-2004 deraadt

move to amd64_() functions


# 1.2 21-Feb-2004 deraadt

aperture stuff


# 1.1 28-Jan-2004 mickey

branches: 1.1.2;
an amd64 arch support.
hacked by art@ from netbsd sources and then later debugged
by me into the shape where it can host itself.
no bootloader yet as needs redoing from the
recent advanced i386 sources (anyone? ;)