Commit Graph

4795 Commits

Author SHA1 Message Date
John Birrell
afe4dfa050 Added a null entry for sysmk that is generated by makesyscalls.sh.
Gee, I wish there was a better way to run makesyscalls.sh so that
a make world finds missing things like this. Running it manually
sucks.

Pointed out by: Peter Dufault
1998-03-13 19:13:54 +00:00
Eivind Eklund
57a0e7b124 'LKM' is a minimal kernel config file, just enough to be able to test-link
the LKMs.
1998-03-12 20:00:21 +00:00
Bruce Evans
8b5ab341cb Removed duplicated -I options. 1998-03-12 12:26:49 +00:00
Bruce Evans
4a61fb92f4 Removed hacks to pass -nostdinc to mkdep. bsd.dep.mk now handles
-nostdinc properly.
1998-03-12 12:23:27 +00:00
Bruce Evans
7762bc7bdf Fixed breakage of the !SMP case in vm_page_zero_idle() in the
previous commit.  Opportunities to clean pages were often missed,
and leaving of the idle state was sometimes delayed until the next
interrupt (after any that occurred while cleaning).

Fixed an unstaticization, a syntax error and a style bug in the
previous commit.
1998-03-12 09:55:57 +00:00
Bruce Evans
d1d9d2601f Don't depend on "implicit int" or bloat the data section in the
declaration of mem_devsw_installed.

Reduced include nesting.
1998-03-12 09:14:18 +00:00
Julian Elischer
fdc021ba7f Add EISA support for DPT drivers
Submitted by: Matthew Dodd
Reviewd by:	shimon@simon-shapiro.org (DPT author)
1998-03-11 00:30:16 +00:00
Eivind Eklund
04fa1e6c8b Change PMAP_SHPGPERPROC to not be equal to the default, for the
benefit of bde's "unused include files" script.

Requested by:	bde
1998-03-10 15:42:13 +00:00
Jordan K. Hubbard
24265e24b6 Add bktr and pcm entries by popular request. Also use more canonical
reference to [ENTER] in the docs rather than [RETURN].
1998-03-10 08:03:47 +00:00
Eivind Eklund
005092bba6 Turn "PMAP_SHPGPERPROC" into a new-style option, add it to LINT, and
document it there.
1998-03-09 22:09:13 +00:00
Mike Smith
72928bdadb "Correct behaviour" involves being consistent with the canonical names of
other partitions.  In this case, they appear in the first slice in the
WHOLE_DISK_SLICE case.
1998-03-09 08:35:33 +00:00
Mike Smith
34ef5a9d25 Merge from 2.2; behave correctly in the presence of a slice number that
doesn't directly correspond to the slice field in the device minor number.
1998-03-09 08:10:21 +00:00
Steve Price
6cc8ce08fe Correct an ethernet framesize mismatch that caused poor
device performance among other things.

PR:		4989, 5910
Submitted by:	Yoshikazu Goto <gotoh@ae.anritsu.co.jp>
1998-03-09 03:07:54 +00:00
Mike Smith
f2dddd5e99 Construct the minor number for the root device taking into account the
slice number passed in by the bootblocks.  This means the kernel will
not use the compatability slice to obtain the root filesystem when
booting from a sliced disk.

Use the extraction macros from reboot.h rather than stating them in full
again.
1998-03-08 15:06:55 +00:00
Julian Elischer
b1897c197c Reviewed by: dyson@freebsd.org (john Dyson), dg@root.com (david greenman)
Submitted by:	Kirk McKusick (mcKusick@mckusick.com)
Obtained from:  WHistle development tree
1998-03-08 09:59:44 +00:00
John Dyson
8f9110f6a1 This mega-commit is meant to fix numerous interrelated problems. There
has been some bitrot and incorrect assumptions in the vfs_bio code.  These
problems have manifest themselves worse on NFS type filesystems, but can
still affect local filesystems under certain circumstances.  Most of
the problems have involved mmap consistancy, and as a side-effect broke
the vfs.ioopt code.  This code might have been committed seperately, but
almost everything is interrelated.

1)	Allow (pmap_object_init_pt) prefaulting of buffer-busy pages that
	are fully valid.
2)	Rather than deactivating erroneously read initial (header) pages in
	kern_exec, we now free them.
3)	Fix the rundown of non-VMIO buffers that are in an inconsistent
	(missing vp) state.
4)	Fix the disassociation of pages from buffers in brelse.  The previous
	code had rotted and was faulty in a couple of important circumstances.
5)	Remove a gratuitious buffer wakeup in vfs_vmio_release.
6)	Remove a crufty and currently unused cluster mechanism for VBLK
	files in vfs_bio_awrite.  When the code is functional, I'll add back
	a cleaner version.
7)	The page busy count wakeups assocated with the buffer cache usage were
	incorrectly cleaned up in a previous commit by me.  Revert to the
	original, correct version, but with a cleaner implementation.
8)	The cluster read code now tries to keep data associated with buffers
	more aggressively (without breaking the heuristics) when it is presumed
	that the read data (buffers) will be soon needed.
9)	Change to filesystem lockmgr locks so that they use LK_NOPAUSE.  The
	delay loop waiting is not useful for filesystem locks, due to the
	length of the time intervals.
10)	Correct and clean-up spec_getpages.
11)	Implement a fully functional nfs_getpages, nfs_putpages.
12)	Fix nfs_write so that modifications are coherent with the NFS data on
	the server disk (at least as well as NFS seems to allow.)
13)	Properly support MS_INVALIDATE on NFS.
14)	Properly pass down MS_INVALIDATE to lower levels of the VM code from
	vm_map_clean.
15)	Better support the notion of pages being busy but valid, so that
	fewer in-transit waits occur.  (use p->busy more for pageouts instead
	of PG_BUSY.)  Since the page is fully valid, it is still usable for
	reads.
16)	It is possible (in error) for cached pages to be busy.  Make the
	page allocation code handle that case correctly.  (It should probably
	be a printf or panic, but I want the system to handle coding errors
	robustly.  I'll probably add a printf.)
17)	Correct the design and usage of vm_page_sleep.  It didn't handle
	consistancy problems very well, so make the design a little less
	lofty.  After vm_page_sleep, if it ever blocked, it is still important
	to relookup the page (if the object generation count changed), and
	verify it's status (always.)
18)	In vm_pageout.c, vm_pageout_clean had rotted, so clean that up.
19)	Push the page busy for writes and VM_PROT_READ into vm_pageout_flush.
20)	Fix vm_pager_put_pages and it's descendents to support an int flag
	instead of a boolean, so that we can pass down the invalidate bit.
1998-03-07 21:37:31 +00:00
Tor Egge
1516126e28 Reenable redirection of clock interrupt to a higher priority vector.
setidt() now knows about f00f_hack(), and the APs now use the same
interrupt descriptor table as the BSP.
1998-03-07 20:48:16 +00:00
Tor Egge
1146c3560f The APs now reload the interrupt descriptor table pointer after
f00f_hack has run.

Use the global r_idt descriptor in f00f_hack when in SMP mode,
so the APs find the relocated interrupt descriptor table.

Submitted by:	Partially from David A Adkins <adkin003@tc.umn.edu>
1998-03-07 20:16:49 +00:00
Eivind Eklund
22263dd149 Make this handle -j<large>, and avoid .depend pointing at /usr/include. 1998-03-07 10:48:15 +00:00
Tor Egge
5dd528cd4e Remove special handling for resuming clock interrupt when using APIC_IO.
The `generic' vector stubs do the right thing.
1998-03-05 21:45:53 +00:00
Tor Egge
622a086be3 Use t_idt instead of idt inside setidt() if f00f_hack() has relocated the IDT.
Submitted by:	Bruce Evans <bde@zeta.org.au>
1998-03-05 19:37:03 +00:00
Tor Egge
540d82e3b4 Disable redirection of clock interrupt to a higher priority vector.
This does not work on most dual Pentium machines, due to setidt()
being neutralized by f00f_hack().
1998-03-04 23:45:12 +00:00
KATO Takenori
3a94cb7f7d Defined CCR6 and CCR7 (configuration registers of M2 CPU.) 1998-03-04 11:39:16 +00:00
Peter Dufault
f3df61a1cd Reviewed by: msmith, bde long ago
Fix for RTPRIO scheduler to eliminate invalid context switches.
1998-03-04 10:25:03 +00:00
Peter Wemm
f688ebc13a Fix recent breakage when compiling under elf.
_Xforward_irq         -> Xforward_irq
_apic_isrbit_location -> apic_isrbit_location
_cpu_num_to_apic_id   -> cpu_num_to_apic_id
_invltlb_ok           -> invltlb_ok
1998-03-04 09:55:13 +00:00
Tor Egge
02c1dc3bbc When entering the apic version of slow interrupt handler, level
interrupts are masked, and EOI is sent iff the corresponding ISR bit
is set in the local apic. If the CPU cannot obtain the interrupt
service lock (currently the global kernel lock) the interrupt is
forwarded to the CPU holding that lock.

Clock interrupts now have higher priority than other slow interrupts.
1998-03-03 22:56:30 +00:00
Tor Egge
3163861c7b Forward the signal if the process runs on a different CPU. This reduces
the signal handling latency for cpu-bound processes that performs very
few system calls.

The IPI for forcing an additional software trap is no longer dependent upon
BETTER_CLOCK being defined.
1998-03-03 20:55:26 +00:00
Tor Egge
fe9cd27373 Reduce timeout before assuming that forwarding of hardclock or softclock
failed. Don't complain on forwarding failure, unless
BETTER_CLOCK_DIAGNOSTIC is defined.
1998-03-03 20:09:14 +00:00
Tor Egge
ff27571284 When sending an IPI to a specific target, disable interrupts inside the
critical region in order to avoid sending the IPI to the wrong target.
1998-03-03 19:54:49 +00:00
Tor Egge
221e0c595b forward_statclock and forward_hardclock are located in mp_machdep.c. 1998-03-03 19:44:34 +00:00
Peter Wemm
c8a7999933 Update the ELF image activator to use some of the exec resources rather
than rolling it's own.  This means that it now uses the "safe"
exec_map_first_page() to get the ld.so headers rather than risking a panic
on a page fault failure (eg: NFS server goes down).
Since all the ELF tools go to a lot of trouble to make sure everything
lives in the first page for executables, this is a win.  I have not seen
any ELF executable on any system where all the headers didn't fit in the
first page with lots of room to spare.
I have been running variations of this code for some time on my pure ELF
systems.
1998-03-02 05:47:58 +00:00
Søren Schmidt
231f599691 First pre alpha Work In Progress commit of a IDE/ATAPI tape driver.
It does endeed work, but there is still some problems to solve.
I get a "nonrecovered data error" from time to time, but besides
this it has backed up several Gigs allready.

Please report any success/failure directly to me.

Thanks to Warner Losh for providing a drive to use in writing
this driver!
1998-03-01 18:57:29 +00:00
John Dyson
ffc82b0a70 1) Use a more consistent page wait methodology.
2)	Do not unnecessarily force page blocking when paging
	pages out.
3)	Further improve swap pager performance and correctness,
	including fixing the paging in progress deadlock (except
	in severe I/O error conditions.)
4)	Enable vfs_ioopt=1 as a default.
5)	Fix and enable the page prezeroing in SMP mode.

All in all, SMP systems especially should show a significant
improvement in "snappyness."
1998-03-01 04:18:54 +00:00
Poul-Henning Kamp
3301c800f5 Prevent the TSC from being used on APM machines, we have no idea if
it runs at a constant frequency.  This was less of an issue before,
because the TSC only interpolated in the HZ intervals, but now where
the timecounter is used all the way, this becomes much more visible.

Nit: Fix a printf which triggered the bde-filter.
1998-02-28 21:16:13 +00:00
Tatsumi Hosokawa
71cbe8e15a Support for "MAC address in CIS" type cards.
For example, IBM Creditcard Ethernet's MAC address is ALWAYS
"0:2:4:6:8:a" :-) without this code.
1998-02-27 14:29:51 +00:00
Jun-ichiro itojun Hagino
751bf650a8 make sys/netkey/key{,_debug}.c compile. I believe it works but not tested.
I'll polish the code later on.
1998-02-27 10:02:49 +00:00
Mike Smith
47959c89b9 PCCARD-code related style nits, as requested.
Submitted by:	bde
1998-02-27 06:39:32 +00:00
Jordan K. Hubbard
281bc0476a Move "geometry disk" device (not yet implemented) to major 95 to
eliminate conflict with /dev/pci.
1998-02-27 06:15:50 +00:00
Mike Smith
9a70f9f75f Fix some style nits and remove an unused header.
Submitted by:	bde
1998-02-27 05:38:32 +00:00
Amancio Hasty
d7ef1f6051 Radio support for bt848 cards from Flemming Jacobsen <fj@trw.nl>
Amancio
1998-02-26 08:19:14 +00:00
KATO Takenori
3ce6f1bf50 Fixed syntax error by recent changes to the queue macros. 1998-02-26 03:20:41 +00:00
Bruce Evans
770a5f7ec9 Removed redundant test against MAXDSIZ (the rlimit test is stronger). 1998-02-25 05:33:06 +00:00
John Dyson
660957521c Fix page prezeroing for SMP, and fix some potential paging-in-progress
hangs.  The paging-in-progress diagnosis was a result of Tor Egge's
excellent detective work.
Submitted by:	Partially from Tor Egge.
1998-02-25 03:56:15 +00:00
Bruce Evans
6aeb4f6474 Removed vestiges of previous microtime() implementation. 1998-02-25 02:20:30 +00:00
Poul-Henning Kamp
828c63ae15 Add loran0 to LINT 1998-02-24 22:24:46 +00:00
Poul-Henning Kamp
cb7cfa353d Add the smallest and least useful device-driver by a fair margin... 1998-02-24 22:08:05 +00:00
Steve Price
26fa14da33 Use port 0x110 to avoid PNP conflicts.
PR:		5614, 5781
1998-02-23 15:02:59 +00:00
John Dyson
d9bed5bee1 Try to dynamically size the VM_KMEM_SIZE (but is still able to be overridden
in a way identically as before.)  I had problems with the system properly
handling the number of vnodes when there is alot of system memory, and the
default VM_KMEM_SIZE.  Two new options "VM_KMEM_SIZE_SCALE" and
"VM_KMEM_SIZE_MAX" have been added to support better auto-sizing for systems
with greater than 128MB.

Add some accouting for vm_zone memory allocations, and provide properly
for vm_zone allocations out of the kmem_map.  Also move the vm_zone
allocation stats to the VM OID tree from the KERN OID tree.
1998-02-23 07:42:43 +00:00
Bruce Evans
168be6199e Quick fix for the i8254 timecounter often gaining 10 msec. 1998-02-23 00:11:25 +00:00
Jordan K. Hubbard
6bf2dcfc50 Add missing CLOCK_UNLOCK() before write_eflags().
Submitted by:	dave adkins <adkin003@tc.umn.edu>
1998-02-21 20:45:27 +00:00