History log of /freebsd/sys/amd64/amd64/genassym.c (Results 76 – 100 of 1759)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: release/5.3.0_cvs, release/5.3.0, vendor/openssh/3.9p1, vendor/libreadline/5.0p1-p5, vendor/libreadline/5.0, vendor/tzdata/tzdata2004e, vendor/gcc/3.4.2-20041014, vendor/ngatm/1.1.1, vendor/libbegemot/1.1.1, vendor/bind9/9.3.0, vendor/bind9/9.3.0rc4, vendor/pf/3.5.001, vendor/NetBSD/lukemftpd/20040809, vendor/isc-dhcp/3.0.1, vendor/openssl/0.9.7-dev, vendor/pf-sys/3.5.004, vendor/pf-sys/3.5.003, vendor/misc-GNU/sort/20040812, vendor/gcc/3.4.2-20040728, vendor/ngatm/1.1, vendor/file/4.10, vendor/bsnmp/1.7, vendor/sendmail/8.13.1, vendor/ntp/4.2.0, vendor/pf-sys/3.5.002, vendor/tcsh/6.13, vendor/ngatm/1.0, vendor/amd/6.0.10p1, vendor/misc-GNU/grep/2.5.1, vendor/libregex/from-grep-2.5.1, vendor/misc-GNU/sort/5.2.1, vendor/acpica/20040527, vendor/zlib/1.2.1, vendor/isc-dhcp/3.0.1rc14, vendor/gdb/marcel_contrib, vendor/ipfilter/3.4.35, vendor/ipfilter-sys/3-4-35, vendor/tzcode/tzcode2004a, vendor/pf-sys/3.5.001, vendor/pf/3.5, vendor/pf-sys/3.5, vendor/altq/20040607, vendor/misc-GNU/cvs/1.11.17, release/4.10.0_cvs, release/4.10.0, vendor/acpica/20040514
# df4fd277 16-May-2004 Peter Wemm <peter@FreeBSD.org>

Checkpoint some of what I was starting to tinker with for having some
different context support for 32 vs 64 bit processes. This simply omits
the save/restore of the segment selector registers for n

Checkpoint some of what I was starting to tinker with for having some
different context support for 32 vs 64 bit processes. This simply omits
the save/restore of the segment selector registers for non 32 bit
processes. This avoids the rdmsr/rwmsr juggling when restoring %gs
clobbers the kernel msr that holds the gsbase.

However, I suspect it might be better to conditionally do this at
user<->kernel transition where we wouldn't need to do the juggling in the
first place. Or have per-thread extended context save/restore hooks.

show more ...


Revision tags: vendor/libuwx/BETA7, vendor/pf-sys/3.4.003, vendor/NetBSD/lukemftp/20040426, vendor/tnftp/20040426, vendor/openssh/3.8.1p1, vendor/less/v381, vendor/misc-GNU/cvs/1.11.15, vendor/bsnmp/1.6, vendor/acpica/20040402, vendor/pf-sys/3.4.002
# 29ae923f 05-Apr-2004 Warner Losh <imp@FreeBSD.org>

Remove advertising clause from University of California Regent's license,
per letter dated July 22, 1999.

Approved by: core


Revision tags: vendor/openssl/0.9.7d-p1, vendor/heimdal/0.6.1, vendor/com_err/0.6.1, vendor/tcpdump/3.8.3, vendor/libpcap/0.8.3, vendor/pf-sys/3.4.001, vendor/acpica/20040311, vendor/openssl/0.9.7d, vendor/openssl/0.9.7c-patch1, vendor/misc-GNU/grep/2.4.2, vendor/acpica/20040220, vendor/pf/3.4, vendor/openssh/3.8p1, vendor/pf-sys/3.4, vendor/SGI/vjs_20020502, vendor/libregex/from-grep-2.4.2, release/5.2.1_cvs, release/5.2.1, vendor/sendmail/8.12.11, vendor/libreadline/4.3p1-p5, vendor/openpam/EELGRASS, vendor/one-true-awk/20040207, vendor/one-true-awk/20030731
# eb18d248 28-Jan-2004 Peter Wemm <peter@FreeBSD.org>

Export PCB_DR* symbols


Revision tags: vendor/bsnmp/1.5a, vendor/gdtoa/20040118, release/5.2.0_cvs, release/5.2.0, vendor/alsa/1.9, vendor/openssh/3.7.1p2, vendor/acpica/20031203, vendor/ath/0.9.6.3, vendor/ath/0.9.6.1, vendor/bind/8.3.7
# cda07865 21-Nov-2003 Peter Wemm <peter@FreeBSD.org>

Cosmetic and/or trivial sync up with i386.

Approved by: re (rwatson)


# 0d2a2989 17-Nov-2003 Peter Wemm <peter@FreeBSD.org>

Initial landing of SMP support for FreeBSD/amd64.

- This is heavily derived from John Baldwin's apic/pci cleanup on i386.
- I have completely rewritten or drastically cleaned up some other parts.

Initial landing of SMP support for FreeBSD/amd64.

- This is heavily derived from John Baldwin's apic/pci cleanup on i386.
- I have completely rewritten or drastically cleaned up some other parts.
(in particular, bootstrap)
- This is still a WIP. It seems that there are some highly bogus bioses
on nVidia nForce3-150 boards. I can't stress how broken these boards
are. I have a workaround in mind, but right now the Asus SK8N is broken.
The Gigabyte K8NPro (nVidia based) is also mind-numbingly hosed.
- Most of my testing has been with SCHED_ULE. SCHED_4BSD works.
- the apic and acpi components are 'standard'.
- If you have an nVidia nForce3-150 board, you are stuck with 'device
atpic' in addition, because they somehow managed to forget to connect the
8254 timer to the apic, even though its in the same silicon! ARGH!
This directly violates the ACPI spec.

show more ...


Revision tags: vendor/bsnmp/1.4, vendor/ngatm/0.91, vendor/gcc/3.3.3-20031106, vendor/NetBSD/lukemftp/20031103, vendor/tnftp/20031103, vendor/ath/0.9.5.17, vendor/ngatm/0.9, vendor/libuwx/BETA6, release/4.9.0_cvs, release/4.9.0, vendor/tzdata/tzdata2003d, vendor/heimdal/cvs-20030922, vendor/heimdal/0.6, vendor/libuwx/BETA5, vendor/openssl/0.9.7c
# 3c4d5e15 30-Sep-2003 Jeff Roberson <jeff@FreeBSD.org>

- Remove the definition for TD_SWITCHIN as it is not used.

Approved by: peter


Revision tags: vendor/sendmail/8.12.10, vendor/sendmail/200309_parseaddr_patch, vendor/openssh/200309-xrealloc-patch, vendor/openssh/200309-buffer-patch, vendor/amd/6.0.9, vendor/isc-dhcp/3.0.1rc12, vendor/libreadline/4.3, vendor/misc-GNU/sort/2.1, vendor/gcc/3.3.1, vendor/acpica/20030619, vendor/ath/0.9.5.2, vendor/one-true-awk/20030729
# 56ae44c5 25-Jul-2003 David E. O'Brien <obrien@FreeBSD.org>

Use __FBSDID().

Brought to you by: a boring talk at Ottawa Linux Symposium


Revision tags: vendor/openpam/DOGWOOD, vendor/gcc/3.3.1-20030711, vendor/NetBSD/lukemftp/20030630, vendor/tnftp/20030630, vendor/ath/0.9.4.0, vendor/misc-GNU/texinfo/4.6, vendor/bind/8.3.6, vendor/NetBSD/lukemftp/20030615, vendor/tnftp/20030615, release/5.1.0_cvs, release/5.1.0, vendor/openpam/DIGITALIS, vendor/acpica/20030228b, vendor/acpica/20030228a
# 3c9a3c9c 23-May-2003 Peter Wemm <peter@FreeBSD.org>

Major pmap rework to take advantage of the larger address space on amd64
systems. Of note:
- Implement a direct mapped region using 2MB pages. This eliminates the
need for temporary mappings when

Major pmap rework to take advantage of the larger address space on amd64
systems. Of note:
- Implement a direct mapped region using 2MB pages. This eliminates the
need for temporary mappings when getting ptes. This supports up to
512GB of physical memory for now. This should be enough for a while.
- Implement a 4-tier page table system. Most of the infrastructure is
there for 128TB of userland virtual address space, but only 512GB is
presently enabled due to a mystery bug somewhere. The design of this
was heavily inspired by the alpha pmap.c.
- The kernel is moved into the negative address space(!).
- The kernel has 2GB of KVM available.
- Provide a uma memory allocator to use the direct map region to take
advantage of the 2MB TLBs.
- Fixed some assumptions in the bus_space macros about the ability
to fit virtual addresses in an 'int'.

Notable missing things:
- pmap_growkernel() should be able to grow to 512GB of KVM by expanding
downwards below kernbase. The kernel must be at the top 2GB of the
negative address space because of gcc code generation strategies.
- need to fix the >512GB user vm code.

Approved by: re (blanket)

show more ...


Revision tags: vendor/libuwx/BETA4
# c0a54ff6 15-May-2003 Peter Wemm <peter@FreeBSD.org>

Collect the nastiness for preserving the kernel MSR_GSBASE around the
load_gs() calls into a single place that is less likely to go wrong.

Eliminate the per-process context switching of MSR_GSBASE,

Collect the nastiness for preserving the kernel MSR_GSBASE around the
load_gs() calls into a single place that is less likely to go wrong.

Eliminate the per-process context switching of MSR_GSBASE, because it
should be constant for a single cpu. Instead, save/restore it during
the loading of the new %gs selector for the new process.

Approved by: re (amd64/* blanket)

show more ...


# d85631c4 14-May-2003 Peter Wemm <peter@FreeBSD.org>

Add BASIC i386 binary support for the amd64 kernel. This is largely
stolen from the ia64/ia32 code (indeed there was a repocopy), but I've
redone the MD parts and added and fixed a few essential sys

Add BASIC i386 binary support for the amd64 kernel. This is largely
stolen from the ia64/ia32 code (indeed there was a repocopy), but I've
redone the MD parts and added and fixed a few essential syscalls. It
is sufficient to run i386 binaries like /bin/ls, /usr/bin/id (dynamic)
and p4. The ia64 code has not implemented signal delivery, so I had
to do that.

Before you say it, yes, this does need to go in a common place. But
we're in a freeze at the moment and I didn't want to risk breaking ia64.
I will sort this out after the freeze so that the common code is in a
common place.

On the AMD64 side, this required adding segment selector context switch
support and some other support infrastructure. The %fs/%gs etc code
is hairy because loading %gs will clobber the kernel's current MSR_GSBASE
setting. The segment selectors are not used by the kernel, so they're only
changed at context switch time or when changing modes. This still needs
to be optimized.

Approved by: re (amd64/* blanket)

show more ...


# 0fe93e74 12-May-2003 Peter Wemm <peter@FreeBSD.org>

For the page fault handler, save %cr2 in the outer trap handler so that
we do not have to run so long with interrupts disabled. This involved
creating tf_addr in the trapframe. Reorganize the trap

For the page fault handler, save %cr2 in the outer trap handler so that
we do not have to run so long with interrupts disabled. This involved
creating tf_addr in the trapframe. Reorganize the trap stubs so that
they consistently reserve the stack space and initialize any missing
bits.

Approved by: re (amd64 stuff)

show more ...


# bf1e8974 12-May-2003 Peter Wemm <peter@FreeBSD.org>

Give a %fs and %gs to userland. Use swapgs to obtain the kernel %GS.base
value on entry and exit. This isn't as easy as it sounds because when
we recursively trap or interrupt, we have to avoid dup

Give a %fs and %gs to userland. Use swapgs to obtain the kernel %GS.base
value on entry and exit. This isn't as easy as it sounds because when
we recursively trap or interrupt, we have to avoid duplicating the
swapgs instruction or we end up back with the userland %gs. I implemented
this by testing TF_CS to see if we're coming from supervisor mode
already, and check for returning to supervisor. To avoid a race with
interrupts in the brief period after beginning executing the handler and
before the swapgs, convert all trap gates to interrupt gates, and reenable
interrupts immediately after the swapgs. I am not happy with this.
There are other possible ways to do this that should be investigated.
(eg: storing the GS.base MSR value in the trapframe)

Add some sysarch functions to let the userland code get to this.

Approved by: re (blanket amd64/*)

show more ...


# 5048926d 11-May-2003 Peter Wemm <peter@FreeBSD.org>

Export PML4SHIFT and PDPSHIFT

Approved by: re (blanket amd64/*)


Revision tags: vendor/openpam/DIANTHUS, vendor/misc-GNU/texinfo/4.5, vendor/groff/1.19
# afa88623 01-May-2003 Peter Wemm <peter@FreeBSD.org>

Commit MD parts of a loosely functional AMD64 port. This is based on
a heavily stripped down FreeBSD/i386 (brutally stripped down actually) to
attempt to get a stable base to start from. There is a

Commit MD parts of a loosely functional AMD64 port. This is based on
a heavily stripped down FreeBSD/i386 (brutally stripped down actually) to
attempt to get a stable base to start from. There is a lot missing still.
Worth noting:
- The kernel runs at 1GB in order to cheat with the pmap code. pmap uses
a variation of the PAE code in order to avoid having to worry about 4
levels of page tables yet.
- It boots in 64 bit "long mode" with a tiny trampoline embedded in the
i386 loader. This simplifies locore.s greatly.
- There are still quite a few fragments of i386-specific code that have
not been translated yet, and some that I cheated and wrote dumb C
versions of (bcopy etc).
- It has both int 0x80 for syscalls (but using registers for argument
passing, as is native on the amd64 ABI), and the 'syscall' instruction
for syscalls. int 0x80 preserves all registers, 'syscall' does not.
- I have tried to minimize looking at the NetBSD code, except in a couple
of places (eg: to find which register they use to replace the trashed
%rcx register in the syscall instruction). As a result, there is not a
lot of similarity. I did look at NetBSD a few times while debugging to
get some ideas about what I might have done wrong in my first attempt.

show more ...


Revision tags: vendor/acpica/20030228, vendor/tzdata/tzdata2003a, vendor/openssh/3.6.1p1, vendor/alsa/1.8, vendor/alsa/1.51, vendor/alsa/1.39
# 8365f5bf 17-Apr-2003 John Baldwin <jhb@FreeBSD.org>

Remove a couple of unused symbols.


# 060563ec 10-Apr-2003 Julian Elischer <julian@FreeBSD.org>

Move the _oncpu entry from the KSE to the thread.
The entry in the KSE still exists but it's purpose will change a bit
when we add the ability to lock a KSE to a cpu.


Revision tags: release/4.8.0_cvs, release/4.8.0, vendor/sendmail/8.12.9, vendor/gdtoa/20030324, vendor/openssl/secfix-20030317, vendor/openssl/secfix-20030319, vendor/gdtoa/20030318, vendor/one-true-awk/20030314, vendor/gdtoa/20030305, vendor/sendmail/8.12.8, vendor/tcpdump/3.7.2, vendor/file/3.41
# ef49a941 23-Feb-2003 Jake Burkholder <jake@FreeBSD.org>

Previous commit missed a 1 that should be NGPTD, and an NPDEPG that should
be NPDEPTD. Grumble.

Sponsored by: DARPA, Network Associates Laboratories


Revision tags: vendor/ext2fs/2.4.3-rh7.1
# 910548de 23-Feb-2003 Jake Burkholder <jake@FreeBSD.org>

- Added macros NPGPTD, NBPTD, and NPDEPTD, for dealing with the size of the
page directory.
- Use these instead of the magic constants 1 or PAGE_SIZE where appropriate.
There are still numerous a

- Added macros NPGPTD, NBPTD, and NPDEPTD, for dealing with the size of the
page directory.
- Use these instead of the magic constants 1 or PAGE_SIZE where appropriate.
There are still numerous assumptions that the page directory is exactly
1 page.

Sponsored by: DARPA, Network Associates Laboratories

show more ...


# e29632c9 23-Feb-2003 Jake Burkholder <jake@FreeBSD.org>

- Added macros PDESHIFT and PTESHIFT, use these instead of magic constants
in locore.
- Removed the macros PTESIZE and PDESIZE, use sizeof instead in C.

Sponsored by: DARPA, Network Associates Lab

- Added macros PDESHIFT and PTESHIFT, use these instead of magic constants
in locore.
- Removed the macros PTESIZE and PDESIZE, use sizeof instead in C.

Sponsored by: DARPA, Network Associates Laboratories

show more ...


Revision tags: vendor/openssl/0.9.7a
# 4a338afd 17-Feb-2003 Julian Elischer <julian@FreeBSD.org>

Move a bunch of flags from the KSE to the thread.
I was in two minds as to where to put them in the first case..
I should have listenned to the other mind.

Submitted by: parts by davidxu@
Reviewed

Move a bunch of flags from the KSE to the thread.
I was in two minds as to where to put them in the first case..
I should have listenned to the other mind.

Submitted by: parts by davidxu@
Reviewed by: jeff@ mini@

show more ...


Revision tags: vendor/file/3.40, vendor/ipfilter/3.4.31, vendor/ipfilter-sys/3-4-31, vendor/sendmail/8.12.7-protofix, vendor/gcc/3.2.2-20030205, vendor/sendmail/8.12.7, vendor/NetBSD/lukemftpd/20030122
# 6f8132a8 01-Feb-2003 Julian Elischer <julian@FreeBSD.org>

Reversion of commit by Davidxu plus fixes since applied.

I'm not convinced there is anything major wrong with the patch but
them's the rules..

I am using my "David's mentor" hat to revert this as h

Reversion of commit by Davidxu plus fixes since applied.

I'm not convinced there is anything major wrong with the patch but
them's the rules..

I am using my "David's mentor" hat to revert this as he's
offline for a while.

show more ...


Revision tags: vendor/openssl/0.9.7-stable-1, vendor/openssl/0.9.7, vendor/bind/8.3.4
# 0dbb100b 26-Jan-2003 David Xu <davidxu@FreeBSD.org>

Move UPCALL related data structure out of kse, introduce a new
data structure called kse_upcall to manage UPCALL. All KSE binding
and loaning code are gone.

A thread owns an upcall can collect all c

Move UPCALL related data structure out of kse, introduce a new
data structure called kse_upcall to manage UPCALL. All KSE binding
and loaning code are gone.

A thread owns an upcall can collect all completed syscall contexts in
its ksegrp, turn itself into UPCALL mode, and takes those contexts back
to userland. Any thread without upcall structure has to export their
contexts and exit at user boundary.

Any thread running in user mode owns an upcall structure, when it enters
kernel, if the kse mailbox's current thread pointer is not NULL, then
when the thread is blocked in kernel, a new UPCALL thread is created and
the upcall structure is transfered to the new UPCALL thread. if the kse
mailbox's current thread pointer is NULL, then when a thread is blocked
in kernel, no UPCALL thread will be created.

Each upcall always has an owner thread. Userland can remove an upcall by
calling kse_exit, when all upcalls in ksegrp are removed, the group is
atomatically shutdown. An upcall owner thread also exits when process is
in exiting state. when an owner thread exits, the upcall it owns is also
removed.

KSE is a pure scheduler entity. it represents a virtual cpu. when a thread
is running, it always has a KSE associated with it. scheduler is free to
assign a KSE to thread according thread priority, if thread priority is changed,
KSE can be moved from one thread to another.

When a ksegrp is created, there is always N KSEs created in the group. the
N is the number of physical cpu in the current system. This makes it is
possible that even an userland UTS is single CPU safe, threads in kernel still
can execute on different cpu in parallel. Userland calls kse_create to add more
upcall structures into ksegrp to increase concurrent in userland itself, kernel
is not restricted by number of upcalls userland provides.

The code hasn't been tested under SMP by author due to lack of hardware.

Reviewed by: julian

show more ...


Revision tags: vendor/misc-GNU/cvs/1.11.5, vendor/heimdal/0.5.1-patch, release/5.0.0_cvs, release/5.0.0, vendor/isc-dhcp/3.0.1rc11, vendor/isc-dhcp/3.0.1rc10, vendor/openpam/DAFFODIL, vendor/NetBSD/lukemftpd/20030105, vendor/one-true-awk/20021213, vendor/openpam/CYCLAMEN, vendor/one-true-awk/20021129, vendor/gcc/3.2.1
# a3dca451 02-Dec-2002 Daniel Eischen <deischen@FreeBSD.org>

Align the FPU state in the ucontext and sigcontext to 16 bytes
to accomodate the new SSE/XMM floating point save/restore
instructions.

This commit is mostly from bde and includes some style nits.

A

Align the FPU state in the ucontext and sigcontext to 16 bytes
to accomodate the new SSE/XMM floating point save/restore
instructions.

This commit is mostly from bde and includes some style nits.

Approved by: re (jhb)

show more ...


Revision tags: vendor/binutils/2.13.2_20021127, vendor/misc-GNU/cvs/1.11.2.1-20021201, vendor/acpica/20021118, vendor/heimdal/0.5.1, vendor/bind/8.3.3.patched, vendor/NetBSD/lukemftpd/1.2-beta2
# 8c132e9f 07-Nov-2002 David Xu <davidxu@FreeBSD.org>

1.Fix smp race between kernel vm86 BIOS calling and userland vm86 mode code,
remove global variable in_vm86call, set vm86 calling flag in PCB flags.

2.Fix vm86 BIOS calling preempted problem by ch

1.Fix smp race between kernel vm86 BIOS calling and userland vm86 mode code,
remove global variable in_vm86call, set vm86 calling flag in PCB flags.

2.Fix vm86 BIOS calling preempted problem by changing vm86_lock mutex type
from MTX_DEF to MTX_SPIN. vm86pcb is not remembered in thread struct,
when the thread calling vm86 BIOS is preempted by interrupt thread,
and later switching back to the thread would cause incorrect context be
loaded into CPU registers, this leads to kernel crash.

show more ...


Revision tags: vendor/ntp/4.1.1b, vendor/ntp/4.1.1a, vendor/openssh/3.5p1
# 23eeeff7 25-Oct-2002 Peter Wemm <peter@FreeBSD.org>

Split 4.x and 5.x signal handling so that we can keep 4.x signal
handling clean and functional as 5.x evolves. This allows some of the
nasty bandaids in the 5.x codepaths to be unwound.

Encapsulate

Split 4.x and 5.x signal handling so that we can keep 4.x signal
handling clean and functional as 5.x evolves. This allows some of the
nasty bandaids in the 5.x codepaths to be unwound.

Encapsulate 4.x signal handling under COMPAT_FREEBSD4 (there is an
anti-foot-shooting measure in place, 5.x folks need this for a while) and
finish encapsulating the older stuff under COMPAT_43. Since the ancient
stuff is required on alpha (longjmp(3) passes a 'struct osigcontext *'
to the current sigreturn(2), instead of the 'ucontext_t *' that sigreturn
is supposed to take), add a compile time check to prevent foot shooting
there too. Add uniform COMPAT_43 stubs for ia64/sparc64/powerpc.

Tested on: i386, alpha, ia64. Compiled on sparc64 (a few days ago).
Approved by: re

show more ...


12345678910>>...71