Commit Graph

226 Commits

Author SHA1 Message Date
Olivier Houchard
885dabe5f7 Update the StrongArm port to match the current code.
- Implement arm_mask_irqs and arm_unmask_irqs
- Provide the available physical address range after pmap_bootstrap allocated
things, instead or before, or bad things happen.
2004-12-18 17:58:49 +00:00
Olivier Houchard
31e3e209b1 Make sure gcc doesn't generate something such as swp r3, r4, [r3] for __swp,
as it has unpredictable results.
2004-12-18 17:43:01 +00:00
Alan Cox
85f5b24573 In the common case, pmap_enter_quick() completes without sleeping.
In such cases, the busying of the page and the unlocking of the
containing object by vm_map_pmap_enter() and vm_fault_prefault() is
unnecessary overhead.  To eliminate this overhead, this change
modifies pmap_enter_quick() so that it expects the object to be locked
on entry and it assumes the responsibility for busying the page and
unlocking the object if it must sleep.  Note: alpha, amd64, i386 and
ia64 are the only implementations optimized by this change; arm,
powerpc, and sparc64 still conservatively busy the page and unlock the
object within every pmap_enter_quick() call.

Additionally, this change is the first case where we synchronize
access to the page's PG_BUSY flag and busy field using the containing
object's lock rather than the global page queues lock.  (Modifications
to the page's PG_BUSY flag and busy field have asserted both locks for
several weeks, enabling an incremental transition.)
2004-12-15 19:55:05 +00:00
Olivier Houchard
44dd466610 Enable interrupts once the active ones have been masked. 2004-12-14 18:57:21 +00:00
Olivier Houchard
353d54aa83 Update the sp after popping the regs.
This is a good candidate for the golden pointy hat awards.
2004-12-14 18:45:05 +00:00
Olivier Houchard
eb64032876 Save a few more cycles in cpu_switch() and cpu_throw(). 2004-12-12 19:21:58 +00:00
Olivier Houchard
cb13ab5bd1 Fix style. 2004-12-11 23:56:03 +00:00
Olivier Houchard
6cf1dd4f37 Add entries to trace syscalls with KTR. 2004-12-11 23:54:03 +00:00
Olivier Houchard
fd4d461166 Fix compilation with INVARIANTS. 2004-12-11 14:46:52 +00:00
Olivier Houchard
84b30e2247 s/RETEQ/RETeq/. 2004-12-10 16:49:08 +00:00
Olivier Houchard
f4427f30f7 Include <sys/signalvar.h> for trapsignal(). 2004-12-07 17:39:42 +00:00
Olivier Houchard
79f40e185d Make sure to map the whole kernel into 1MB pages. Try to use the remaining
memory for things such as the kernel stack.
2004-12-05 22:48:04 +00:00
Olivier Houchard
f4deb15f08 Reactivate the use of the minidata cache. 2004-12-05 22:47:25 +00:00
Olivier Houchard
4090854334 Do not change the page directory and do not flush the TLB when switching to
a kernel thread.
2004-12-05 22:46:59 +00:00
Olivier Houchard
b62e66eb1f Remove an unused field from the struct pv_entry.
While I'm there, fix style.
2004-12-05 22:46:30 +00:00
Olivier Houchard
28ec399c5a Include <sys/signalvar.h> for trapsignal(). 2004-12-02 23:31:48 +00:00
David Schultz
6004362e66 Don't include sys/user.h merely for its side-effect of recursively
including other headers.
2004-11-27 06:51:39 +00:00
Olivier Houchard
a27952c1a9 Enable interrupts as soon as the pending interrupts have been masked. 2004-11-23 16:31:16 +00:00
Olivier Houchard
6054abc495 Use ns8250. 2004-11-23 16:30:50 +00:00
Olivier Houchard
b1ff74ebb3 Cleanup. 2004-11-21 19:41:27 +00:00
Olivier Houchard
7fc1bf0371 Set the frame pointer to 0 in fork_trampoline(). 2004-11-21 19:33:47 +00:00
Olivier Houchard
9ebe15a1d7 Implement breakpoints and single stepping on arm.
Obtained from:	NetBSD
2004-11-21 18:11:39 +00:00
Olivier Houchard
7b90b2998e Remove useless code. 2004-11-20 16:52:30 +00:00
Olivier Houchard
3488a2f7d9 Implement enough to be able to enter and leave DDB. 2004-11-20 16:52:10 +00:00
Olivier Houchard
579d53f4cf Get the kernel stack right now that the u-area is gone. 2004-11-20 16:51:32 +00:00
David Schultz
d305a6da98 Remove UAREA_PAGES and USPACE definitions. The definitions of
USPACE_SVC_STACK_TOP, USPACE_SVC_STACK_BOTTOM, USPACE_UNDEF_STACK_TOP,
and USPACE_UNDEF_STACK_BOTTOM look wrong to me, so I'm leaving them
alone.

Reviewed by:	arch@
2004-11-20 02:31:37 +00:00
David Schultz
837f4b104e Remove some references to U area here while trying not to break
anything.  Someone with ARM hardware could do a lot more to untangle
this code.

Reviewed by:	arch@
2004-11-20 02:31:23 +00:00
David Schultz
6484fde022 Remove references to U area and garbage collect includes.
Reviewed by:	arch@
2004-11-20 02:30:59 +00:00
David Schultz
11111b709f U areas are going away, so don't allocate one for process 0.
Reviewed by:	arch@
2004-11-20 02:29:25 +00:00
Olivier Houchard
a8a2a16a08 Increase cnt.v_syscall and cnt.v_trap when needed. 2004-11-20 00:55:57 +00:00
Olivier Houchard
0e425b6c47 Move KERNPHYSADDR and KERNVIRTADDR from std.i80321 to std.iq31244.
Use the correct KERNPHYSADDR.
2004-11-18 00:05:09 +00:00
Olivier Houchard
826a7f03c5 Simplify a bit bus_dmamap_load_buffer by removing the "first" parameter, use
nseg == -1 instead.

Obtained from:	NetBSD
2004-11-16 00:57:44 +00:00
Olivier Houchard
1101dd6d06 MFi386:
- inlina bus_dmamap_load_buffer
- Directly pass the pmap to bus_dmamap_load_buffer, instead of the struct thread
2004-11-15 23:59:28 +00:00
Olivier Houchard
5918fe42a0 Remove debugging printf. 2004-11-13 15:12:26 +00:00
Olivier Houchard
24c6f4b32a Don't forget to clear the PG_WRITEABLE flag when appropriate. 2004-11-13 14:54:31 +00:00
Olivier Houchard
4c44e1ec63 Use uma_prealloc() on the l2table_zone to prevent a LOR at startup. 2004-11-13 14:41:27 +00:00
Olivier Houchard
8e10380a9f Implement interrupt counting, so that vmstat -i work. 2004-11-12 21:49:05 +00:00
Olivier Houchard
ef7d17237a Don't forget to include opt_vm.h. 2004-11-10 22:11:08 +00:00
Olivier Houchard
9aeab9eabe Convert the IQ31244 code to use ARM32_NEW_VM_LAYOUT. 2004-11-10 22:09:39 +00:00
Olivier Houchard
b599237edb Invalidate the data cache in pmap_qremove() instead of in pmap_kenter(),
and in pmap_enter_quick() instead of pmap_enter().
2004-11-10 21:46:04 +00:00
Tom Rhodes
adcb844412 Remove __P here too.
Ok'ed by:	cognet
2004-11-10 01:33:42 +00:00
Olivier Houchard
2fd21813b0 Use the RET macro. 2004-11-09 16:47:47 +00:00
Olivier Houchard
5f2c6402db Import a RET macro, that will use bx if the arch supports it.
Obtained from:	NetBSD
2004-11-09 16:45:55 +00:00
Alan Cox
d3cb0d99e0 Introduce two new options, "CPU private" and "no wait", to sf_buf_alloc().
Change the spelling of the "catch" option to be consistent with the new
options.  Implement the "no wait" option.  An implementation of the "CPU
private" for i386 will be committed at a later date.
2004-11-08 00:43:46 +00:00
Olivier Houchard
b720bb34f3 Add device mem in config files. 2004-11-07 23:02:15 +00:00
Olivier Houchard
e099742e25 Import md bits for mem(4) on arm.
While I'm there, cleanup a bit pmap.h.
2004-11-07 23:01:36 +00:00
Olivier Houchard
1b135a7e11 Remove useless code. 2004-11-07 16:51:33 +00:00
Olivier Houchard
432f5e3ab9 Disable interrupts for atomic_cmpset_32, this one is just not atomic.
Don't export it to userland.
2004-11-05 23:48:12 +00:00
Olivier Houchard
bd366a3cd4 Copy the syscall args in a tmp variable instead of directly using the
trapframe, as it can be modified in the syscall.
Call thread_user_enter() when appropriate.
2004-11-05 19:57:10 +00:00
Olivier Houchard
8ecf6f65d9 Save a few cycles in context switch.
Update comments to reflect reality.
2004-11-05 19:54:13 +00:00