Commit Graph

340 Commits

Author SHA1 Message Date
cognet
7c9c98e639 Add support for KTR_BUSDMA. 2005-01-15 19:42:28 +00:00
cognet
897fdcefd3 Add the prototype for bus_dmamap_load_mbuf_sg().
Spotted out by:	scottl
2005-01-15 19:31:08 +00:00
cognet
072c519386 MFi386: add bus_dmamap_load_mbuf_sg(). 2005-01-15 19:07:23 +00:00
cognet
5435311167 Add the 7 seg display. 2005-01-15 18:55:40 +00:00
cognet
6365349c89 Add support for the IQ31244 7 seg display.
Obtained from:	NetBSD
2005-01-15 18:55:22 +00:00
cognet
4955cf8c26 Start the license statement with /*- 2005-01-15 18:38:10 +00:00
cognet
4251591c3f Use device_set_desc(). 2005-01-15 16:57:00 +00:00
cognet
f34de841db Add the i80321 watchdog. 2005-01-15 16:56:22 +00:00
cognet
d96d350b95 Add a driver for the i80321 watchdog.
Obtained from:		NetBSD
2005-01-15 16:54:35 +00:00
cognet
14d3ee495d Add support for ptrace() and gdb breakpoints. 2005-01-10 22:43:16 +00:00
cognet
83fcc96139 Don't assume pmap_update() will cpwait for us, pmap_update will disappear soon. 2005-01-10 22:41:08 +00:00
imp
77267e277f Start all license statements with /*- 2005-01-05 21:58:49 +00:00
alc
a618275b13 Modify pmap_enter_quick() so that it expects the page queues to be locked
on entry and it assumes the responsibility for releasing the page queues
lock if it must sleep.

Remove a bogus comment from pmap_enter_quick().

Using the first change, modify vm_map_pmap_enter() so that the page queues
lock is acquired and released once, rather than each time that a page
is mapped.
2004-12-23 20:16:11 +00:00
cognet
a90b1e3656 - The IQ80321 has a jumper which changes the PCI device id from 4 to 8 for the
GigE controller, so handle this.
- Use the outbound window 0 if the PCI mem requested is in its range, instead
of inconditionally use the outbound window 1.
This should be enough to get FreeBSD/arm to work on the IQ80321 board as well.

Reported and tested by: Jia-Shiun Li <jiashiun at gmail dot com>
2004-12-21 11:36:09 +00:00
cognet
b231943e0e 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
cognet
5b61dc111e 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
alc
ede2fb9751 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
cognet
7ce4a54e10 Enable interrupts once the active ones have been masked. 2004-12-14 18:57:21 +00:00
cognet
c372644159 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
cognet
8e56111fcd Save a few more cycles in cpu_switch() and cpu_throw(). 2004-12-12 19:21:58 +00:00
cognet
f047a2aa01 Fix style. 2004-12-11 23:56:03 +00:00
cognet
3c819126da Add entries to trace syscalls with KTR. 2004-12-11 23:54:03 +00:00
cognet
975196bf45 Fix compilation with INVARIANTS. 2004-12-11 14:46:52 +00:00
cognet
01b59b6929 s/RETEQ/RETeq/. 2004-12-10 16:49:08 +00:00
cognet
988b22e8cb Include <sys/signalvar.h> for trapsignal(). 2004-12-07 17:39:42 +00:00
cognet
49745b3e73 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
cognet
1286f9fc64 Reactivate the use of the minidata cache. 2004-12-05 22:47:25 +00:00
cognet
d852f75fe8 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
cognet
8c5a104a40 Remove an unused field from the struct pv_entry.
While I'm there, fix style.
2004-12-05 22:46:30 +00:00
cognet
df8773eb4e Include <sys/signalvar.h> for trapsignal(). 2004-12-02 23:31:48 +00:00
das
130bed6547 Don't include sys/user.h merely for its side-effect of recursively
including other headers.
2004-11-27 06:51:39 +00:00
cognet
61c101ec0d Enable interrupts as soon as the pending interrupts have been masked. 2004-11-23 16:31:16 +00:00
cognet
8519448b1b Use ns8250. 2004-11-23 16:30:50 +00:00
cognet
f90c20620f Cleanup. 2004-11-21 19:41:27 +00:00
cognet
9990b1a0eb Set the frame pointer to 0 in fork_trampoline(). 2004-11-21 19:33:47 +00:00
cognet
22b168ab24 Implement breakpoints and single stepping on arm.
Obtained from:	NetBSD
2004-11-21 18:11:39 +00:00
cognet
feeee6f8b5 Remove useless code. 2004-11-20 16:52:30 +00:00
cognet
75354c7e52 Implement enough to be able to enter and leave DDB. 2004-11-20 16:52:10 +00:00
cognet
c2bbd5fdeb Get the kernel stack right now that the u-area is gone. 2004-11-20 16:51:32 +00:00
das
dbdcb7be99 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
das
799ea28b61 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
das
901a681d75 Remove references to U area and garbage collect includes.
Reviewed by:	arch@
2004-11-20 02:30:59 +00:00
das
8375566745 U areas are going away, so don't allocate one for process 0.
Reviewed by:	arch@
2004-11-20 02:29:25 +00:00
cognet
d28f205253 Increase cnt.v_syscall and cnt.v_trap when needed. 2004-11-20 00:55:57 +00:00
cognet
1158e30208 Move KERNPHYSADDR and KERNVIRTADDR from std.i80321 to std.iq31244.
Use the correct KERNPHYSADDR.
2004-11-18 00:05:09 +00:00
cognet
7369f4070b 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
cognet
06281152f5 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
cognet
c49c604bed Remove debugging printf. 2004-11-13 15:12:26 +00:00
cognet
341a002b6b Don't forget to clear the PG_WRITEABLE flag when appropriate. 2004-11-13 14:54:31 +00:00
cognet
35680a9d48 Use uma_prealloc() on the l2table_zone to prevent a LOR at startup. 2004-11-13 14:41:27 +00:00
cognet
ac7d3d8927 Implement interrupt counting, so that vmstat -i work. 2004-11-12 21:49:05 +00:00
cognet
725eca69bd Don't forget to include opt_vm.h. 2004-11-10 22:11:08 +00:00
cognet
1cf3104ff5 Convert the IQ31244 code to use ARM32_NEW_VM_LAYOUT. 2004-11-10 22:09:39 +00:00
cognet
bcb8f16584 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
trhodes
e849b9601d Remove __P here too.
Ok'ed by:	cognet
2004-11-10 01:33:42 +00:00
cognet
7e3e230230 Use the RET macro. 2004-11-09 16:47:47 +00:00
cognet
601293a498 Import a RET macro, that will use bx if the arch supports it.
Obtained from:	NetBSD
2004-11-09 16:45:55 +00:00
alc
279c442e7b 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
cognet
e9b8703c85 Add device mem in config files. 2004-11-07 23:02:15 +00:00
cognet
103e95586e 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
cognet
ce94b57ab1 Remove useless code. 2004-11-07 16:51:33 +00:00
cognet
78386f3ec2 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
cognet
108b7172d7 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
cognet
f326fc1a81 Save a few cycles in context switch.
Update comments to reflect reality.
2004-11-05 19:54:13 +00:00
cognet
ecc55fe51d If we're still running at the physical address, jump to the virtual address
instead before calling initarm().
This removes the need to map virtual == physical in initarm().
2004-11-05 19:52:55 +00:00
cognet
fe20a8f9f4 Be more verbose about cache capacities. 2004-11-05 19:51:23 +00:00
cognet
bb1d95fb39 Implement casuptr. 2004-11-05 19:50:48 +00:00
cognet
ae291dcae9 Call pmap_pte_init_arm9 instead of pmap_pte_init_generic if
ARM9_CACHE_WRITE_THROUGH is defined.
2004-11-05 19:48:40 +00:00
cognet
1ff7126d41 In cpu_critical_fork_exit(), make sure to set td_md.md_critnest so that
interrupts will be enabled.

Spotted out by:	jhb
2004-11-05 18:29:45 +00:00
cognet
65c874982c Protect the function declarations with #ifdef _KERNEL. 2004-11-04 19:20:54 +00:00
cognet
f877e8fb34 Directly use __pcpu for PCPU_* instead of pcpup. 2004-11-04 19:19:44 +00:00
cognet
b06553ff94 Decrease KSTACK_PAGES and UAREA_PAGES. 2004-11-04 19:19:21 +00:00
cognet
a9cde5c028 Use interrupts_disable() and interrupts_restore() as intr_disable() and
intr_restore() instead of re-implement it.
2004-11-04 19:18:50 +00:00
cognet
174862f7bb Don't barf if no CPU type is defined while compiling kernel modules. 2004-11-04 19:16:31 +00:00
cognet
ad6f843dc2 Implement get_cyclecount(). 2004-11-04 19:15:43 +00:00
cognet
4603da4464 Try to implement atomic operations using swp, instead of disabling interrupts. 2004-11-04 19:14:50 +00:00
cognet
827366c155 Use casts to enforce the return type of bswap16() and bswap32(). 2004-11-04 19:07:28 +00:00
cognet
fcb45007e6 Implement cpu_thread_siginfo() and set_mcontext().
Nuke getframe(), and choose which stack to use directly in sendsig().
2004-11-04 19:04:30 +00:00
cognet
47de763a09 Implement cpu_set_upcall and cpu_set_upcall_kse.
Calculate td_frame and td_pcb the right way in cpu_thread_setup.
2004-11-04 18:59:02 +00:00
cognet
95719dc362 Get kernel modules to work. 2004-11-04 18:48:52 +00:00
andre
8b6661b126 Reduce annoying SCSI probing delay from 15 to 5 seconds in all GENRIC kernels.
Discussed on:	-current
2004-11-02 20:57:20 +00:00
jhb
a9860ec891 - Change the ddb paging "support" to use a variable (db_lines_per_page) to
control the number of lines per page rather than a constant.  The variable
  can be examined and changed in ddb as '$lines'.  Setting the variable to
  0 will effectively turn off paging.
- Change db_putchar() to force out pending whitespace before outputting
  newlines and carriage returns so that one can rub out content on the
  current line via '\r     \r' type strings.
- Change the simple pager to rub out the --More-- prompt explicitly when
  the routine exits.
- Add some aliases to the simple pager to make it more compatible with
  more(1): 'e' and 'j' do a single line.  'd' does half a page, and
  'f' does a full page.

MFC after:	1 month
Inspired by:	kris
2004-11-01 22:15:15 +00:00
cognet
4e18db9429 We want to ignore BUS_DMASYNC_POSTWRITE, not BUS_DMASYNC_POSTREAD.
Spotted out by:	mux
Pointy hat to:	cognet
2004-10-21 11:59:33 +00:00
cognet
672cff6bce Use a default MD_ROOT_SIZE of 65535. 2004-10-11 14:42:06 +00:00
cognet
6de2036711 Use MD_ROOT_SIZE, instead of our own macro. 2004-10-11 14:41:38 +00:00
cognet
d3c9c2ab1a Add optimized version of the bswap macroes for constants if __OPTIMIZED__ is
defined.
2004-10-01 16:55:59 +00:00
cognet
898ea0c226 There's no need to turn on MALLOC_PROFILE by default. 2004-10-01 16:51:37 +00:00
cognet
951f5beb42 Calling fuword from fuword32 with bl and without returning after is really a bad
idea.
Any way I get a customized CVS template with "Pointy hat to:	cognet"
pre-filled ?
2004-09-28 14:39:26 +00:00
cognet
cb7bd34192 Always invalidate the whole data cache in pmap_enter() for now.
It should not be needed.
2004-09-28 14:38:14 +00:00
cognet
d35924d404 Remove dead code. 2004-09-28 14:37:39 +00:00
cognet
470dcc3395 Add the config file for the IQ31244 board. 2004-09-23 22:55:00 +00:00
cognet
c3401d9028 Use the new KERNVIRTADDR and PHYSADDR options.
Add KDB.
2004-09-23 22:53:50 +00:00
cognet
a5a4c2b9b8 Import partial support for the IQ31244 eval board (i80321 CPU). IQ80321 might
work out of the box too, but I have no hardware to test.
It works well enough to go multiuser. Network works, SATA does not, as I have
no drive to test.
Thanks to Intel for sending such a board.

Obtained from:  NetBSD
2004-09-23 22:45:36 +00:00
cognet
b43de02af0 Add Xscale common headers. 2004-09-23 22:36:13 +00:00
cognet
2722789043 Big cleanup: get ride of the whole spl level logic, as FreeBSD doesn't use
it anymore.
2004-09-23 22:33:38 +00:00
cognet
89fa389a22 Now that we have pmap_growkernel(), use more KVA. 2004-09-23 22:32:33 +00:00
cognet
f7c7e8938b Remove the empty definition of struct osigcontext, as it will never be used. 2004-09-23 22:31:49 +00:00
cognet
9fbf5b30d2 Remove the pcb32_cstate field of struct pcb. 2004-09-23 22:31:08 +00:00
cognet
320e303913 Declare sigcode and szsigcode. 2004-09-23 22:30:05 +00:00
cognet
eb21c958c3 Define VM_PROT_READ_IS_EXEC. 2004-09-23 22:29:43 +00:00
cognet
23f2e2a20b Implement _mcount().
Obtained from:	NetBSD
2004-09-23 22:29:18 +00:00
cognet
bce0b28077 Define STACKALIGNBYTES and STACKALIGN. 2004-09-23 22:27:42 +00:00
cognet
6198d361e4 We are using _mcount, not __mcount.
Remove the !__ELF__ case.
2004-09-23 22:26:29 +00:00
cognet
2af9e90e11 Use sf_bufs for uiomove_fromphys(). 2004-09-23 22:25:20 +00:00
cognet
83a28a9eaa On Xscale, use the minicache for the kernel stack. 2004-09-23 22:24:12 +00:00
cognet
4ad93571b6 Make sure to call cred_update_thread() if needed.
Add partial support for KTRACE.
2004-09-23 22:22:33 +00:00
cognet
8fdb656bd1 Implement cpu_throw().
Obtained from:	NetBSD
2004-09-23 22:20:59 +00:00
cognet
e82635c318 Remove unused macroes.
Add user, btrap, etrap, bintr and eintrt in the GPROF case.
2004-09-23 22:18:56 +00:00
cognet
556153cd0c Implement sigreturn(). 2004-09-23 22:12:28 +00:00
cognet
2961849c00 Add the hw.machine sysctl. 2004-09-23 22:11:43 +00:00
cognet
69c5f6a5d4 Remove definitions related to the pmap cache state, and add TDF_NEEDRESCHED. 2004-09-23 22:11:06 +00:00
cognet
f0ee02d552 Add new functions to know which irqs are pending, and to mask and unmask
interrupts, as these are CPU specific.
If the interrupt handler is not marked as INTR_FAST, don't unmask the
interrupt until it as been serviced.
2004-09-23 22:09:57 +00:00
cognet
8cbf7c308c Rename macroes, as we don't need to mess with alignment faults.
Call ast() if TDF_NEEDRESCHED is set too, not just TDF_ASTPENDING.
2004-09-23 22:05:40 +00:00
cognet
f772c01a4d Use sigcode. 2004-09-23 22:03:25 +00:00
cognet
ee071a6682 In db_stack_trace_cmd, remove the "pc" variable, we don't need it. 2004-09-23 22:02:59 +00:00
cognet
70f2c961dd Use the right path for xscale files. 2004-09-23 21:59:43 +00:00
cognet
fa3fe38872 Remove bus_space_vaddr(), it does not exists in FreeBSD. 2004-09-23 21:59:14 +00:00
cognet
e0185957e6 Don't attempt to manage our own segment list, and just remember the buffers
provided.

Obtained from:	NetBSD
2004-09-23 21:57:47 +00:00
cognet
89eb78d1e9 Use the right path for the bcopyinout_xscale.S file. 2004-09-23 21:56:36 +00:00
cognet
7dea985306 Add MD syscalls to sync the icache and to drain the write buffer.
Obtained from:	NetBSD
2004-09-23 21:56:01 +00:00
cognet
639630ead7 Implement pmap_growkernel() and pmap_extract_and_hold().
Remove the cache state logic : right now, it provides more problems than it
helps.
Add helper functions for mapping devices while bootstrapping.
Reorganize the code a bit, and remove dead code.

Obtained from:	NetBSD (partially)
2004-09-23 21:54:25 +00:00
cognet
2f13c81a30 Map the kernel very early if needed.
Implement sigcode.
2004-09-23 21:49:10 +00:00
jhb
e487fab495 - Add support for "paging" in stack trace output. That is, when you do
a stack trace from ddb, the output will pause with a '--More--' prompt
  every 18 lines.  If you hit Enter, it will print another line and prompt
  again.  If you hit space it will output another page and then prompt.
  If you hit 'q' or 'x' it will abort the rest of the stack trace.
- Fix the sparc64 userland stack trace to honor the total count of lines
  to print.  This is useful if your trace happens to walk back onto
  0xdeadc0de and gets stuck in an endless loop.

MFC after:	1 month
Tested on:	i386, alpha, sparc64
2004-09-20 19:05:32 +00:00
scottl
e23092c9a9 Fix a problem with tag->boundary inheritence that has existed since day one
and was propagated to nearly every platform.  The boundary of the child needs
to consider the boundary of the parent and pick the minimum of the two, not
the maximum.  However, if either is 0 then pick the appropriate one.
This bug was exposed by a recent change to ATA, which should now be fixed by
this change.  The alignment and maxsegsz tag attributes likely also need
a similar review in the near future.

This is a MT5 candidate.

Reviewed by: marcel
Submitted by: sos (in part)
2004-09-08 04:54:19 +00:00
julian
5813d27029 Refactor a bunch of scheduler code to give basically the same behaviour
but with slightly cleaned up interfaces.

The KSE structure has become the same as the "per thread scheduler
private data" structure. In order to not make the diffs too great
one is #defined as the other at this time.

The KSE (or td_sched) structure is  now allocated per thread and has no
allocation code of its own.

Concurrency for a KSEGRP is now kept track of via a simple pair of counters
rather than using KSE structures as tokens.

Since the KSE structure is different in each scheduler, kern_switch.c
is now included at the end of each scheduler. Nothing outside the
scheduler knows the contents of the KSE (aka td_sched) structure.

The fields in the ksegrp structure that are to do with the scheduler's
queueing mechanisms are now moved to the kg_sched structure.
(per ksegrp scheduler private data structure). In other words how the
scheduler queues and keeps track of threads is no-one's business except
the scheduler's. This should allow people to write experimental
schedulers with completely different internal structuring.

A scheduler call sched_set_concurrency(kg, N) has been added that
notifies teh scheduler that no more than N threads from that ksegrp
should be allowed to be on concurrently scheduled. This is also
used to enforce 'fainess' at this time so that a ksegrp with
10000 threads can not swamp a the run queue and force out a process
with 1 thread, since the current code will not set the concurrency above
NCPU, and both schedulers will not allow more than that many
onto the system run queue at a time. Each scheduler should eventualy develop
their own methods to do this now that they are effectively separated.

Rejig libthr's kernel interface to follow the same code paths as
linkse for scope system threads. This has slightly hurt libthr's performance
but I will work to recover as much of it as I can.

Thread exit code has been cleaned up greatly.
exit and exec code now transitions a process back to
'standard non-threaded mode' before taking the next step.
Reviewed by:	scottl, peter
MFC after:	1 week
2004-09-05 02:09:54 +00:00
marcel
01fd13440d Move the kernel-specific logic to adjust frompc from MI to MD. For
these two reasons:
1. On ia64 a function pointer does not hold the address of the first
   instruction of a functions implementation. It holds the address
   of a function descriptor. Hence the user(), btrap(), eintr() and
   bintr() prototypes are wrong for getting the actual code address.
2. The logic forces interrupt, trap and exception entry points to
   be layed-out contiguously. This can not be achieved on ia64 and is
   generally just bad programming.

The MCOUNT_FROMPC_USER macro is used to set the frompc argument to
some kernel address which represents any frompc that falls outside
the kernel text range. The macro can expand to ~0U to bail out in
that case.
The MCOUNT_FROMPC_INTR macro is used to set the frompc argument to
some kernel address to represent a call to a trap or interrupt
handler. This to avoid that the trap or interrupt handler appear to
be called from everywhere in the call graph. The macro can expand
to ~0U to prevent adjusting frompc. Note that the argument is selfpc,
not frompc.

This commit defines the macros on all architectures equivalently to
the original code in sys/libkern/mcount.c. People can take it from
here...

Compile-tested on: alpha, amd64, i386, ia64 and sparc64
Boot-tested on: i386
2004-08-27 19:42:35 +00:00
marcel
fbbaea5f90 Add __elfN(dump_thread). This function is called from __elfN(coredump)
to allow dumping per-thread machine specific notes. On ia64 we use this
function to flush the dirty registers onto the backingstore before we
write out the PRSTATUS notes.

Tested on: alpha, amd64, i386, ia64 & sparc64
Not tested on: arm, powerpc
2004-08-11 02:35:06 +00:00
alc
989ca43572 Add a comment describing pmap_extract_and_hold() noting that the protection
check still needs implementation on arm.
2004-08-10 21:43:40 +00:00
cognet
bc600631b5 Use the new prototype for the zone constructor. 2004-08-06 22:32:53 +00:00
alc
41618225a8 - Push down the acquisition and release of Giant into pmap_enter_quick()
on those architectures without pmap locking.
 - Eliminate the acquisition and release of Giant in vm_map_pmap_enter().
2004-08-04 22:03:16 +00:00
mux
35780dc21a Instead of calling ia32_pause() conditionally on __i386__ or __amd64__
being defined, define and use a new MD macro, cpu_spinwait().  It only
expands to something on i386 and amd64, so the compiled code should be
identical.

Name of the macro found by:	jhb
Reviewed by:	jhb
2004-08-03 18:44:27 +00:00
cognet
53db7b6142 *blush*
Fix htonl and htons.
2004-08-02 12:24:18 +00:00
cognet
ca5e850ced Fix comments.
Spotted out by:	mux
2004-08-02 12:23:53 +00:00
alc
9b295c2fd9 - Push down the acquisition and release of Giant into pmap_protect() on
those architectures without pmap locking.
 - Eliminate the acquisition and release of Giant from vm_map_protect().

(Translation: mprotect(2) runs to completion without touching Giant on
alpha, amd64, i386 and ia64.)
2004-07-30 20:38:30 +00:00
cognet
7c7f4453cf Don't use cast as lvalue. 2004-07-29 12:33:54 +00:00
rwatson
1a23ddfc9e Correct typo in prior commit: s/cd/td/ 2004-07-27 19:44:08 +00:00
rwatson
4ab080249a Pass a thread argument into cpu_critical_{enter,exit}() rather than
dereference curthread.  It is called only from critical_{enter,exit}(),
which already dereferences curthread.  This doesn't seem to affect SMP
performance in my benchmarks, but improves MySQL transaction throughput
by about 1% on UP on my Xeon.

Head nodding:	jhb, bmilekic
2004-07-27 16:41:01 +00:00
alc
f3c3c8c6c5 MFi386 revision 1.421
- Use kmem_alloc_nofault() rather than kmem_alloc_pageable() in
   pmap_mapdev().  See revision 1.140 of kern/sys_pipe.c for a detailed
   rationale.
2004-07-22 23:04:41 +00:00
cognet
348f262f29 Do not declare curpcb. 2004-07-21 22:04:32 +00:00
cognet
ae0a320fb3 Use the kernel pmap if no thread is provided. 2004-07-21 22:04:05 +00:00
cognet
c5c2cfa0c5 Define pmap_page_is_mapped(). 2004-07-21 22:02:48 +00:00
cognet
2f02562eed Do not use NULL as a malloc type for contigmalloc(). 2004-07-21 15:18:45 +00:00
marcel
f77d7b9449 Unify db_stack_trace_cmd(). All it did was look up the thread given
the thread ID and call db_trace_thread().
Since arm has all the logic in db_stack_trace_cmd(), rename the
new DB_COMMAND function to db_stack_trace to avoid conflicts on
arm.
While here, have db_stack_trace parse its own arguments so that
we can use a more natural radix for IDs. If the ID is not a thread
ID, or more precisely when no thread exists with the ID, try if
there's a process with that ID and return the first thread in it.
This makes it easier to print stack traces from the ps output.

requested by: rwatson@
tested on: amd64, i386, ia64
2004-07-21 05:07:09 +00:00
cognet
4f3de515b5 Implement ptrace_set_pc().
Add a stub for ptrace_clear_single_step().
2004-07-20 23:00:02 +00:00
cognet
62054ab640 Remove astpending, it has not been used for a long time. 2004-07-20 22:39:56 +00:00
cognet
cc5ead7b77 Uncomment the vector relocation code. 2004-07-20 22:39:24 +00:00
cognet
f6936a77a8 Nuke disable_intr() and enable_intr(), as it already exists elsewhere. 2004-07-20 22:38:46 +00:00
cognet
96ca74bf7d Make kdb_backtrace() sort of work. 2004-07-19 12:26:44 +00:00
das
86c293bf54 Make FLT_ROUNDS correctly reflect the dynamic rounding mode. 2004-07-19 08:17:25 +00:00
cognet
512283ce25 In pmap_remove_pages(), when the pv_list is entry, we want to clean the
PG_WRITEABLE flag, not the PG_REFERENCED flag.

Submitted by:   alc
2004-07-13 22:40:59 +00:00