| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
within a critical section.
o Assert that the page queues lock is held in vm_page_wire()
unless an Alpha.
Notes:
svn path=/head/; revision=100005
|
|
|
|
|
|
|
|
|
| |
o Assert that the page queues lock is held in vm_page_unwire().
o Make vm_page_lock_queues() and vm_page_unlock_queues() visible
to kernel loadable modules.
Notes:
svn path=/head/; revision=99927
|
|
|
|
|
|
|
|
|
|
| |
Add COMPAT_FREEBSD4 to GENERIC for arches that existed in FreeBSD 4's time,
not just i386. (alpha and pc98)
Requested by: bde
Notes:
svn path=/head/; revision=99915
|
|
|
|
|
|
|
| |
Pointed out by: jhb
Notes:
svn path=/head/; revision=99900
|
|
|
|
|
|
|
|
|
|
|
| |
choosethread() in MI C code instead of doing it in in assembly in all the
various cpu_switch() functions. This fixes problems on ia64 and sparc64.
Reviewed by: julian, peter, benno
Tested on: i386, alpha, sparc64
Notes:
svn path=/head/; revision=99887
|
|
|
|
|
|
|
|
|
| |
FreeBSD.
Submitted by: bde
Notes:
svn path=/head/; revision=99733
|
|
|
|
|
|
|
| |
and DEC3000/[4-9]00 Flamingo/Sandpiper families.
Notes:
svn path=/head/; revision=99686
|
|
|
|
|
|
|
|
|
| |
hardly MD, since all our platforms share the same macro. It's not
really compiler dependent either, but this helps in reducing
<machine/ansi.h> to only type definitions.
Notes:
svn path=/head/; revision=99594
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
threaded VM pagezero kthread outside of Giant. For some platforms, this
is really easy since it can just use the direct mapped region. For others,
IPI sending is involved or there are other issues, so grab Giant when
needed.
We still have preemption issues to deal with, but Alan Cox has an
interesting suggestion on how to minimize the problem on x86.
Use Luigi's hack for preserving the (lack of) priority.
Turn the idle zeroing back on since it can now actually do something useful
outside of Giant in many cases.
Notes:
svn path=/head/; revision=99571
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pmap_swapin_proc/pmap_swapout_proc functions from the MD pmap code
and use a single equivalent MI version. There are other cleanups
needed still.
While here, use the UMA zone hooks to keep a cache of preinitialized
proc structures handy, just like the thread system does. This eliminates
one dependency on 'struct proc' being persistent even after being freed.
There are some comments about things that can be factored out into
ctor/dtor functions if it is worth it. For now they are mostly just
doing statistics to get a feel of how it is working.
Notes:
svn path=/head/; revision=99559
|
|
|
|
|
|
|
|
| |
XXX should really replace the pmap_{new,swapin,swapout,dispose}_{proc,thread}
functions with the much cleaner sparc64 versions.
Notes:
svn path=/head/; revision=99399
|
|
|
|
|
|
|
|
|
|
| |
when printing intmax_t and uintmax_t.
Forgotten by: mike
Noticed by: bde
Notes:
svn path=/head/; revision=99117
|
|
|
|
|
|
|
| |
Submitted by: jhb@freebsd.org
Notes:
svn path=/head/; revision=99095
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ability to schedule multiple threads per process
(one one cpu) by making ALL system calls optionally asynchronous.
to come: ia64 and power-pc patches, patches for gdb, test program (in tools)
Reviewed by: Almost everyone who counts
(at various times, peter, jhb, matt, alfred, mini, bernd,
and a cast of thousands)
NOTE: this is still Beta code, and contains lots of debugging stuff.
expect slight instability in signals..
Notes:
svn path=/head/; revision=99072
|
|
|
|
| |
Notes:
svn path=/head/; revision=99026
|
|
|
|
| |
Notes:
svn path=/head/; revision=98900
|
|
|
|
|
|
|
|
|
|
|
|
| |
obtained, when all other scheduling activity is suspended. This is needed
on sparc64 to deactivate the vmspace of the exiting process on all cpus.
Otherwise if another unrelated process gets the exact same vmspace structure
allocated to it (same address), its address space will not be activated
properly. This seems to fix some spontaneous signal 11 problems with smp
on sparc64.
Notes:
svn path=/head/; revision=98765
|
|
|
|
|
|
|
| |
Approved by: alfred
Notes:
svn path=/head/; revision=98727
|
|
|
|
|
|
|
| |
These are 16 bit short values used only by the profiling code.
Notes:
svn path=/head/; revision=98484
|
|
|
|
|
|
|
| |
for supporting UIO_USERISPACE (ie: it wasn't used).
Notes:
svn path=/head/; revision=98480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implementations can provide a base zero ffs function if they wish.
This changes
#define RQB_FFS(mask) (ffs64(mask))
foo = RQB_FFS(mask) - 1;
to
#define RQB_FFS(mask) (ffs64(mask) - 1)
foo = RQB_FFS(mask);
On some platforms we can get the "- 1" for free, eg: those that use the
C code for ffs64().
Reviewed by: jake (in principle)
Notes:
svn path=/head/; revision=98469
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uifind() with a proc lock held.
change_ruid() and change_euid() have been modified to take a uidinfo
structure which will be pre-allocated by callers, they will then
call uihold() on the uidinfo structure so that the caller's logic
is simplified.
This allows one to call uifind() before locking the proc struct and
thereby avoid a potential blocking allocation with the proc lock
held.
This may need revisiting, perhaps keeping a spare uidinfo allocated
per process to handle this situation or re-examining if the proc
lock needs to be held over the entire operation of changing real
or effective user id.
Submitted by: Don Lewis <dl-freebsd@catspoiler.org>
Notes:
svn path=/head/; revision=98417
|
|
|
|
|
|
|
|
|
|
|
| |
device mpt # LSI-Logic MPT-Fusion
line. This driver isn't ready yet.
Submitted by: Scott Long
Notes:
svn path=/head/; revision=98292
|
|
|
|
|
|
|
|
|
| |
PR: 39305
Submitted by: Michael Hogsett <hogsett@csl.sri.com>
MFC after: 1 week
Notes:
svn path=/head/; revision=98234
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- ktrace no longer requires Giant so do ktrace syscall events before and
after acquiring and releasing Giant, respectively.
- For i386, ia32 syscalls on ia64, powerpc, and sparc64, get rid of the
goto bad hack and instead use the model on ia64 and alpha were we
skip the actual syscall invocation if error != 0. This fixes a bug
where if we the copyin() of the arguments failed for a syscall that
was not marked MP safe, we would try to release Giant when we had
not acquired it.
Notes:
svn path=/head/; revision=98001
|
|
|
|
|
|
|
|
| |
Spotted and suggested by: des
MFC after: 3 weeks
Notes:
svn path=/head/; revision=97748
|
|
|
|
|
|
|
| |
which has a different definition for this is alpha.
Notes:
svn path=/head/; revision=97564
|
|
|
|
|
|
|
|
| |
the other (or both) to all the platforms. Similar for fuword32 and
fuword64.
Notes:
svn path=/head/; revision=97307
|
|
|
|
| |
Notes:
svn path=/head/; revision=97302
|
|
|
|
|
|
|
|
|
|
| |
architectures by using a 64 bit word for the bit array which keeps
track of non-empty queues.
Reviewed by: peter
Notes:
svn path=/head/; revision=97261
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
regardless of if they are signed or unsigned since it is easier to work
with sign-extended values. Thus, remove the disabled zapnot to
zero-extend the sign-extended value we read from *p in atomic_cmpset_32()
since the cmpval we are comparing against should already be
sign-extended.
- To ensure that the compiler knows to sign-extend the upper 32 bits of
cmpval rather than leaving garbage in there, cast the appropriately in
the constraints section.
Help from: Richard Henderson <rth@redhat.com>
Notes:
svn path=/head/; revision=96791
|
|
|
|
| |
Notes:
svn path=/head/; revision=96755
|
|
|
|
|
|
|
|
|
| |
natd sigbus errors being reported on the freebsd-alpha@ mailing list.
Obtained from: NetBSD
Notes:
svn path=/head/; revision=96700
|
|
|
|
|
|
|
| |
It can all still be overridden in the MD files should need suddenly arise.
Notes:
svn path=/head/; revision=96606
|
|
|
|
| |
Notes:
svn path=/head/; revision=96604
|
|
|
|
| |
Notes:
svn path=/head/; revision=96487
|
|
|
|
|
|
|
|
|
|
| |
nearly in its entirety from i386, so it retains the phk/nati copyright.
Savecore likes the results, but I have no way to test it as gdb is
still broken.
Notes:
svn path=/head/; revision=96427
|
|
|
|
|
|
|
|
|
| |
value we load from memory. gcc3.1 passes in the u_int32_t old value to
compare against as a _sign_-extended 64-bit value for some reason (bug?).
This is a temporary workaround so kernels work again on alpha.
Notes:
svn path=/head/; revision=96393
|
|
|
|
|
|
|
|
| |
about them & they are not needed. Same fix as to tsunami_pci.c.
(not surprising, as this code was cut and pasted from there when I wrote it).
Notes:
svn path=/head/; revision=96357
|
|
|
|
| |
Notes:
svn path=/head/; revision=96320
|
|
|
|
| |
Notes:
svn path=/head/; revision=96317
|
|
|
|
| |
Notes:
svn path=/head/; revision=96233
|
|
|
|
|
|
|
|
| |
negative values because the original value was sign extended but the compared
value was not.
Notes:
svn path=/head/; revision=96211
|
|
|
|
|
|
|
| |
Reviewed by: phk
Notes:
svn path=/head/; revision=95992
|
|
|
|
|
|
|
| |
psl.h is 100% bogus to be referenced here, especially from alpha MD code.
Notes:
svn path=/head/; revision=95856
|
|
|
|
|
|
|
| |
contain no truly interesting data anymore.
Notes:
svn path=/head/; revision=95814
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
i386/ia64/alpha - catch up to sparc64/ppc:
- replace pmap_kernel() with refs to kernel_pmap
- change kernel_pmap pointer to (&kernel_pmap_store)
(this is a speedup since ld can set these at compile/link time)
all platforms (as suggested by jake):
- gc unused pmap_reference
- gc unused pmap_destroy
- gc unused struct pmap.pm_count
(we never used pm_count - we track address space sharing at the vmspace)
Notes:
svn path=/head/; revision=95710
|
|
|
|
|
|
|
| |
around vm_fault().
Notes:
svn path=/head/; revision=95554
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the symbol index defined by the relocation. The elf_lookup() support
function is to be used by elf_reloc() when symbol lookups need to be
done. The elf_lookup() function operates on the symbol index and
will do a symbol name based lookup when such is required, otherwise
it uses the symbol index directly. This solves the problem seen on
ia64 where the symbol hash table does not contain local symbols and
a symbol name based lookup would fail for those symbols.
Don't pass the symbol name to elf_reloc(), as it isn't used any more.
Notes:
svn path=/head/; revision=95410
|
|
|
|
|
|
|
|
| |
comment in GENERIC config files of appropriate platforms. For whatever
reason, powerpc didn't use WITNESS in GENERIC.
Notes:
svn path=/head/; revision=94980
|