thorpej
497248ca55
XXX Pass VM_PROT_NONE to uvm_vslock() as access_type. Why are we even
...
vslocking here?! copyout() on its own seems to suffice just about everwhere
else, and it's not like the process is going to exit; it's in a system
call!
1999-05-26 01:07:06 +00:00
thorpej
b2e9c635ec
Pass an access_type to uvm_vslock().
1999-05-26 01:05:24 +00:00
thorpej
40aacb6eb5
No longer need to pmap_modified_emulation() in cpu_swapin(), since
...
uvm_fault_wire() does the right thing with access_type.
XXX Was there a bug here? pmap_modified_emulation() *wasn't* done in
XXX cpu_fork()!!
1999-05-26 00:40:20 +00:00
thorpej
32de988d29
No longer need to pmap_emulate_reference() in cpu_fork() or cpu_swapin(),
...
since uvm_fault_wire() does the right thing with access_type.
1999-05-26 00:37:40 +00:00
thorpej
7b4db806b6
In uvm_map_pageable(), pass VM_PROT_NONE as access type to uvm_fault_wire()
...
for now. XXX This needs to be reexamined.
1999-05-26 00:36:53 +00:00
thorpej
9d0ea0969e
- uvm_fork()/uvm_swapin(): pass VM_PROT_READ|VM_PROT_WRITE access_type
...
to uvm_fault_wire(), to guarantee that the kernel stacks will not
cause even a mod/ref emulation fault.
- uvm_vslock(): pass VM_PROT_NONE until this function is updated.
1999-05-26 00:33:52 +00:00
thorpej
195c1a2741
Pass an access_type to uvm_fault_wire(), which it forwards on to
...
uvm_fault().
1999-05-26 00:32:42 +00:00
thorpej
5b897f96c5
msgbuf doesn't need VM_PROT_EXEC.
1999-05-25 23:31:14 +00:00
thorpej
ed0aee1190
When mapping bus space, we can use pmap_kenter_pa(), since the pages
...
are never managed.
1999-05-25 23:30:27 +00:00
thorpej
774ceea703
msgbuf doesn't need VM_PROT_EXEC, biostramp does.
1999-05-25 23:19:00 +00:00
thorpej
5832084eaf
bus_dmamem_map() maps DMA safe memory, which is usually one or more
...
managed pages, into KVA space. Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().
Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE. We do this for a couple of reasons:
(1) On systems that have H/W mod/ref attributes, the hardware
may not be able to track mod/ref done by a bus master.
(2) On systems that have to do mod/ref emulation, this prevents
a mod/ref page fault from potentially happening while in an
interrupt context, which can be problematic.
This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!
Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
1999-05-25 23:14:03 +00:00
thorpej
f197609d93
Add some DIAGNOSTIC checks for inconsistent use of pmap_enter/pmap_kremove.
1999-05-25 20:33:33 +00:00
thorpej
986c3eca39
Fix some major locking protocol issues related to pmap_kremove() having
...
to deal with PG_PVLIST mappings; it no longer has to. Add some DIAGNOSTIC
checks for inconsistent use of pmap_enter/pmap_kremove.
1999-05-25 20:32:29 +00:00
thorpej
0ff8d3ac1a
Define a new kernel object type, "intrsafe", which are used for objects
...
which can be used in an interrupt context. Use pmap_kenter*() and
pmap_kremove() only for mappings owned by these objects.
Fixes some locking protocol issues related to MP support, and eliminates
all of the pmap_enter vs. pmap_kremove inconsistencies.
1999-05-25 20:30:08 +00:00
nisimura
fec53c08d6
- Use dev_name2blk[] array prepared by config(8) instead of handcrafting
...
local data.
1999-05-25 09:32:27 +00:00
nisimura
058f5a1517
- Continue to import a development branch.
...
- Minor formatting fix.
1999-05-25 07:37:08 +00:00
nisimura
014ba724c0
- Rework spl(9) implementation. Use _spl*() processor mask manipulating
...
routines now reside in locore.S. No functional difference is expected.
- Replace abused splx() abuse with _splset() to change MIPS processor
interrupt mask bit. 'mips/trap.c' side will be fixed soon.
1999-05-25 04:17:57 +00:00
thorpej
789c9e7c48
Add a comment explaining why using pmap_kenter_pa() is safe here.
1999-05-25 01:34:13 +00:00
tron
bb5689beb3
Only attempt to remove symbol table from DDB's lists of symbol tables
...
if we really loaded one.
1999-05-25 00:16:08 +00:00
thorpej
85f8d1343c
Macro'ize the test for "object is a kernel object".
1999-05-25 00:09:00 +00:00
thorpej
9b731fd45c
Remove a comment in uvm_pager_dropcluster() about PMAP_NEW and mod/ref
...
attributes for the page; it no longer applies, since we don't use
pmap_kenter_pgs() anymore.
1999-05-24 23:36:23 +00:00
thorpej
7becac6b9a
Don't use pmap_kenter_pgs() for entering pager_map mappings. The pages
...
are still owned by the object which is paging, and so the test for a kernel
object in uvm_unmap_remove() will cause pmap_remove() to be used instead
of pmap_kremove().
This was a MAJOR source of pmap_remove() vs pmap_kremove() inconsistency
(which caused the busted kernel pmap statistics, and a cause of much
locking hair on MP systems).
1999-05-24 23:30:44 +00:00
tron
a602deb000
Silently ignore attributes modifications on directories. Fixes
...
PR kern/7630 by Markus Kurek.
1999-05-24 23:01:13 +00:00
thorpej
cba22525ce
Fix some broken packet length checks. Really (no, I mean really) works now
...
after the ether_input() changes -- tested on my Quadra 650.
1999-05-24 21:53:42 +00:00
ragge
7fb0d17b38
First step towards MI Unibus/Q22 bus code.
1999-05-24 20:12:57 +00:00
tron
770a66b9a8
Fix kernel builds if ppp interface but no bpf filters are configured.
...
Patch supplied by Takahiro Kambe in PR kern/7639, also fixes PR kern/7632
by Bjoern Labitzke.
1999-05-24 20:12:10 +00:00
thorpej
5dec34efed
The kernel pmap can be accessed (and locked!) while in an interrupt
...
context, so we must block interrupts which may cause memory allocation
before asserting the kernel pmap's lock. Put this all in PMAP_LOCK()
and PMAP_UNLOCK() macros to make it easier.
1999-05-24 20:11:58 +00:00
ragge
ad1db202f7
bus.h'ify more of the vax code.
1999-05-24 20:10:30 +00:00
thorpej
6eb9ee7cd8
- Change uvm_{lock,unlock}_fpageq() to return/take the previous interrupt
...
level directly, instead of making the caller wrap the calls in
splimp()/splx().
- Add a comment documenting that interrupts that cause memory allocation
must be blocked while the free page queue is locked.
Since interrupts must be blocked while this lock is asserted, tying them
together like this helps to prevent mistakes.
1999-05-24 19:10:57 +00:00
thorpej
e8beb9bbe8
Make this compile again.
1999-05-24 18:40:48 +00:00
christos
61d84403a8
Regen
1999-05-24 13:05:40 +00:00
christos
cf715aec57
Fix PR/7634 properly, by adding the card to pcmciadevs
1999-05-24 13:05:12 +00:00
augustss
8fb4b44439
SMC 8022 PCMCIA ethercard entry for if_ne_pcmcia.c
...
From Zdenek Salvet <salvet@ics.muni.cz> in PR 7634.
1999-05-24 10:17:49 +00:00
thorpej
8c2d5c6fd3
Let the caller decide what to do if pmap_physpage_alloc() fails.
1999-05-24 01:35:54 +00:00
mrg
1bd01d4677
pull struct strbuf + defines into iommureg.h. properly merge previous commit.
1999-05-24 00:25:31 +00:00
ragge
0354feab8e
Make this file compile again.
1999-05-23 23:06:24 +00:00
ragge
373e7cc828
Rewrite the "emulate page reference bits" code to avoid a bunch of
...
pv_lists traversal and unneccessary page faults.
1999-05-23 23:03:44 +00:00
ragge
539f825799
Better and more understandable way to find out CPU type.
1999-05-23 22:56:53 +00:00
thorpej
c1eb28c237
Make the list of all pmaps LRU-ordered, and update a comment regarding
...
locking.
1999-05-23 22:37:02 +00:00
ragge
6c98e1bae7
Routine to figure out which system type is booted.
1999-05-23 22:00:43 +00:00
ragge
f1fc4934a3
Use common routines to identify cpu type.
...
Set up a SCB to be able to handle clock interrupts in the boot program.
Now timer countdown should work on all types of vaxen.
1999-05-23 21:58:19 +00:00
veego
e21201e114
Regen.
1999-05-23 21:28:03 +00:00
veego
a674692065
Add several entries.
1999-05-23 21:26:54 +00:00
ad
ccc7e59e1f
Add new sysctl (net.inet.tcp.log_refused) that when set, causes refused TCP
...
connections to be logged.
1999-05-23 20:33:50 +00:00
ad
bdf1938edd
For completeness sake, allow this to compile with no loopback interfaces
...
configured.
1999-05-23 20:21:51 +00:00
ad
080560c8c6
- Setting initial position of cursor is up to caller.
...
- Set cursor position properly for SPARC. From Juergen Hannken-Illjes.
1999-05-23 17:59:39 +00:00
thorpej
2102d5a17e
Save ourselves some work in some pv list traversal functions; keep a pointer
...
to the PTE that maps the page in the pv_entry so that we don't have to
compute it from the pmap/va.
1999-05-23 17:49:07 +00:00
thorpej
5d48eed96a
Implement pv_entry stealing for the case when a pool page cannot be
...
allocated for one.
1999-05-23 16:54:43 +00:00
augustss
eca0bbe20e
Update doc URL.
1999-05-23 16:07:04 +00:00
mrg
09619f1942
KNF nit.
1999-05-23 11:41:39 +00:00
mrg
b2934b386d
UVM is not an option these days.
1999-05-23 11:08:01 +00:00
mrg
ae1a84a61f
place iommu definitions in iommureg.h
1999-05-23 07:24:02 +00:00
mrg
f1f95c374b
implement madvice() for MADV_{NORMAL,RANDOM,SEQUENTIAL}, others are not yet done.
1999-05-23 06:27:13 +00:00
eeh
193cc31772
Separate out the generic console handling from zs.c
1999-05-23 02:46:35 +00:00
eeh
92ad9c4080
Start putting in hooks for non-zs console devices.
1999-05-23 02:45:19 +00:00
christos
544c14bcf6
KNF!
1999-05-23 00:48:46 +00:00
eeh
f1066c97ad
If the zs has not yet attached use the PROM for console input.
1999-05-22 20:34:56 +00:00
eeh
60b89ebf96
Well, looks like the MI allocsys() broke the dvmamap, so instead of using a
...
single map move it to the bus controller driver so each bus can handle its own
IOMMU without conflicts.
1999-05-22 20:33:55 +00:00
eeh
bb0f8ef559
Fix OF_stdin() to return "stdin" not "stdout" so we really can get console input.
1999-05-22 20:30:54 +00:00
eeh
35d96171e7
Fix bus_type_t properly and enable ASI accesses for bus_space_{read,write}*()
1999-05-22 20:28:22 +00:00
eeh
56b080bed6
Fixup argument confusion to __asm() statements. long long is two registers
...
wide in 32-bit mode. Doh!.
1999-05-22 20:25:49 +00:00
scw
7c6d40745a
Double the value for NKMEMCLUSTERS, to allow more KVA for LFS et al.
1999-05-22 16:37:03 +00:00
nisimura
10d1acd4ea
- Backout the last code change. I found it broke pmax kernel. It's
...
retained for future use of pmap.new.c, though.
> New codes always use current ASID holded in EntryHi register.
1999-05-22 02:35:35 +00:00
thorpej
66324de865
Use the pool allocator for pv_entry structures. Set a (patchable/config'able)
...
low water mark on the pool, so we have some chance of crawling along in
extreme memory shortages.
1999-05-21 23:07:59 +00:00
thorpej
ed4224c64e
Fix a couple of problems from the ether_input() change:
...
- Make it compile again, with BPF.
- Don't subtract the Ethernet header length from the total packet length.
- Copy the alignment fix from sys/dev/ic/i82586.c (though the m68k shouldn't
really be affected).
1999-05-21 21:48:28 +00:00
thorpej
a79a728c6c
Copy alignment fix from dev/ic/i82586.c (Um, this extra copy should die,
...
too, but at least it's not as bad as the podulebus ie driver).
1999-05-21 21:33:59 +00:00
thorpej
87a9ee7804
Copy alignment fix from dev/ic/i82586.c (Um, this copy of the driver
...
needs to die, pretty please.)
1999-05-21 21:31:37 +00:00
minoura
f4316c1145
Tribial optimizations.
1999-05-21 15:32:38 +00:00
minoura
1567b0074d
Sync GENERIC.
1999-05-21 15:15:33 +00:00
minoura
fcb74cccfa
Remove experimental/buggy options.
1999-05-21 15:08:27 +00:00
pk
6f9ad5b61d
Since we're now prepending the ethernet header to mbuf on incoming
...
packets, make sure to align the data after the ethernet header.
1999-05-21 13:08:50 +00:00
augustss
ac197c5354
Update documentation URLs.
1999-05-21 10:15:23 +00:00
nisimura
fd243bd393
- Redefine symbols and parameters to represent CPU design with MIPS
...
nomenclature, retaining the old heritage.
- Remove API-related definitions for now obsolete utiltity routines.
1999-05-21 06:37:39 +00:00
nisimura
e5ecc1bc87
- Typos, I made...
1999-05-21 06:36:37 +00:00
nisimura
28c74563b6
- Make sure ASID PARANOIADIAG work with MIPS3.
1999-05-21 06:19:55 +00:00
nisimura
1b332b28e2
- Now completing MIPS1 side change. Introduce MIPS_TBIS and MIPS_TBDATA
...
(correct name, vax?) replacing mips1_TLBFlushAddr and mips1_TLBUpdate,
respectively. New codes always use current ASID holded in EntryHi
register. In most occations, the register already contains a necessary
value before (re-)written, ugh. 'sva | asid' ops for their arguments are
now verbose, to be removed when MIPS3 side changes are done.
1999-05-21 06:01:14 +00:00
nisimura
634cb79411
- Rename '#ifdef DIAGNOSTIC' to '#ifdef PARANOIADIAG' to detect
...
catastrophic events to break VM machinary. Add some more diags to
track ASID.
1999-05-21 05:28:31 +00:00
nisimura
9cfc8d7736
- Track filename changes.
1999-05-21 01:10:49 +00:00
nisimura
04aeaae250
- Rename file names;
...
dec_3max_subr.c -> memc_3max.c, dec_kn02_subr.c -> memc_3min.c
1999-05-21 01:09:48 +00:00
augustss
b1800a623c
Make this file syntactically correct again.
1999-05-21 00:25:48 +00:00
thorpej
a07ba7d1c1
Update the calls to allocsys().
1999-05-21 00:09:09 +00:00
thorpej
d7ffa508b1
Provide an mdallocsys() that clips bufpages if necessary (on the Sun4c).
...
This will be (and needs to be) done before nbuf is computed.
1999-05-21 00:08:14 +00:00
thorpej
ba2bc023f7
Call the mdcallback immediately after computing bufpages; bufpages may
...
need to be clipped, and this needs to be done before computing nbuf.
1999-05-21 00:05:12 +00:00
thorpej
96993ef749
Make a slight modification of pmap_growkernel() -- it now returns the
...
end of the mappable kernel virtual address space. Previously, it would
get called more often than necessary, because the caller only new what
was requested.
Also, export uvm_maxkaddr so that uvm_pageboot_alloc() can grow the
kernel pmap if necessary, as well. Note that pmap_growkernel() must
now be able to handle being called before pmap_init().
1999-05-20 23:25:42 +00:00
thorpej
f311a1c308
Make a slight modification of pmap_growkernel() -- it now returns the
...
end of the mappable kernel virtual address space. Previously, it would
get called more often than necessary, because the caller only new what
was requested.
Also, export uvm_maxkaddr so that uvm_pageboot_alloc() can grow the
kernel pmap if necessary, as well. Note that pmap_growkernel() must
now be able to handle being called before pmap_init().
1999-05-20 23:03:23 +00:00
ragge
b337d4d3c7
Don't detect glass tty if the machine is a workstation.
...
Hint from Thomas Seidmann.
1999-05-20 23:00:58 +00:00
ad
5bb340fef9
This file is superceded by rcons.h.
1999-05-20 21:16:57 +00:00
tsarna
25e3ee0ff2
Add a *bunch* of types (file went from ~4K to ~16K!)
1999-05-20 21:02:43 +00:00
thorpej
88c7cff619
Make this compile again.
1999-05-20 20:15:27 +00:00
thorpej
1d197b8e7b
If we run out of virtual space in uvm_pageboot_alloc(), fail gracefully
...
rather than unpredictably.
1999-05-20 20:07:55 +00:00
thorpej
3aa41b1b36
Make this actually work if the BUFCACHE option is not specified, by falling
...
back on the traditional BSD formula of 10% of first 2MB and 5% of remaining.
1999-05-20 20:01:28 +00:00
thorpej
332dd60029
Fix broken prototype.
1999-05-20 19:56:49 +00:00
thorpej
3da4443954
Oops, commit here slipped through the cracks.
1999-05-20 18:07:27 +00:00
nisimura
c0c79283f3
Moved from dec_kn02_subr.c
1999-05-20 14:15:57 +00:00
nisimura
a5b668be64
Moved from dec_3max_subr.c
1999-05-20 14:14:39 +00:00
nisimura
90d9a14b01
- Avoid recomputations inside inner-most loop which produce identical
...
values evreytime.
1999-05-20 10:50:08 +00:00
pk
fea10fb499
Operate Hypersparc cache in write-back mode again.
...
Remove `hypersparc under construction' message.
1999-05-20 10:06:39 +00:00
pk
1040b9e209
If TLB entries need to be flushed, make sure to do this after any necessary
...
cache flushes, since on VIPT machines the cache flush may induce a TLB load.
1999-05-20 10:03:12 +00:00
augustss
4655ae1230
Keep track of vendor id and make sure the vendor string is NUL terminated.
1999-05-20 09:52:35 +00:00
augustss
3d6c3b5c03
Update for TI vendor id.
1999-05-20 09:51:13 +00:00