| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
ia64 pmap.
o Remove the PG_MAPPED flag's declaration.
|
|
|
|
| |
at 192. Masking off bottom 4 bits is not very good here.
|
| |
|
|
|
|
| |
the PG_MAPPED flag.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
<stdint.h>. Previously, parts were defined in <machine/ansi.h> and
<machine/limits.h>. This resulted in two problems:
(1) Defining macros in <machine/ansi.h> gets in the way of that
header only defining types.
(2) Defining C99 limits in <machine/limits.h> adds pollution to
<limits.h>.
|
| |
|
|
|
|
|
|
| |
that we can avoid a call to vm_page_lock_queues().
Approved by: peter
|
| |
|
|
|
|
|
| |
still for the IPI vectors, but 63 isn't enough. There is an fxp at IRQ 86
on the Itanium2 box I have.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handler in the kernel at the same time. Also, allow for the
exec_new_vmspace() code to build a different sized vmspace depending on
the executable environment. This is a big help for execing i386 binaries
on ia64. The ELF exec code grows the ability to map partial pages when
there is a page size difference, eg: emulating 4K pages on 8K or 16K
hardware pages.
Flesh out the i386 emulation support for ia64. At this point, the only
binary that I know of that fails is cvsup, because the cvsup runtime
tries to execute code in pages not marked executable.
Obtained from: dfr (mostly, many tweaks from me).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
on the Itanium2 system I have when we use up *all* of the initial 256MB
direct mapped region before we are ready to dynamically expand it.
The machine that I have has 4 cpus and a very big hole in the middle.
This makes the bogus '(last_address - first_address) / PAGE_SIZE'
calculations especially dangerous and caused many millions of initial
PV/PTE's to be preallocated.
|
|
|
|
|
| |
phsysical address is still mapped at this stage of boot on the Itanium1
SDV boxes we have. But Itanium2 does *not* let us get away with this.
|
| |
|
|
|
|
| |
Inspired by: bde
|
| |
|
|
|
|
| |
Pointed out by: jhb
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
FreeBSD.
Submitted by: bde
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
we just have to deal with the kstack when told to. We do not have a
UMA-managed cache for the proc struct and its associated upage yet. So,
go back to the old lazy mechanism. Note that if UMA destroys pages that
used to contain proc structures, we'll lose the corresponding upage
forever. (zones never did this - once a page was allocated, it stayed
attached to the proc zone forever)
|
|
|
|
|
| |
rev 1.328-1.331.) but for uarea only. We still have our own broken
kstack code here.
|
| |
|
|
|
|
|
|
|
| |
when printing intmax_t and uintmax_t.
Forgotten by: mike
Noticed by: bde
|
|
|
|
| |
Submitted by: jhb@freebsd.org
|
|
|
|
|
| |
Dfr will fill these out when we decide to enable KSEs on ia64
(probably not immediatly)
|
|
|
|
| |
dfr will fill in the correct contents at a later time.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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..
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Approved by: alfred
|
|
|
|
| |
These are 16 bit short values used only by the profiling code.
|
|
|
|
| |
for supporting UIO_USERISPACE (ie: it wasn't used).
|
|
|
|
| |
Obtained from: dfr
|
|
|
|
| |
suhword/fuhword.
|
|
|
|
|
| |
stack. This is still bad(TM), but at least we have a clue when we get
hit when contigmalloc fails.
|
|
|
|
|
| |
in this case cut/pasted from sparc64 instead of messing with
contigmalloc where it is not needed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
| |
SSC_GET_RTC. This fixes the panic seen shortly after mounting the
root file system.
Thanks to: "K.Sumitani" <ksumitani@mui.biglobe.ne.jp>
|
|
|
|
|
| |
Spotted and suggested by: des
MFC after: 3 weeks
|
|
|
|
| |
which has a different definition for this is alpha.
|