Commit Graph

41431 Commits

Author SHA1 Message Date
phk
064fa9d0bb Remove the NSWAPDEV option, we have no upper limit on how many
swap devices we can have anymore.
2003-08-03 13:39:59 +00:00
phk
b51aac6e92 Change the layout policy of the swap_pager from a hardcoded width
striping to a per device round-robin algorithm.

Because of the policy of not attempting to retain previous swap
allocation on page-out, this means that a newly added swap device
almost instantly takes its 1/N share of the I/O load but it takes
somewhat longer for it to assume it's 1/N share of the pages if there
is plenty of space on the other devices.

Change the 8G total swapspace limitation to 8G per device instead
by using a per device blist rather than one global blist.  This
reduces the memory footprint by 75% (typically a couple hundred
kilobytes) for the common case with one swapdevice but NSWAPDEV=4.

Remove the compile time constant limit of number of swap devices,
there is no limit now.  Instead of a fixed size array, store the
per swapdev structure in a TAILQ.

Total swap space is still addressed by a 32 bit page number and
therefore the upper limit is now 2^42 bytes = 16TB (for i386).

We still do not allocate the first page of each device in order to
give some amount of protection to any bsdlabel at the start of the
device.

A new device is appended after the existing devices in the swap space,
no attempt is made to fill in holes left behind by swapoff (this can
trivially be changed should it ever become a problem).

The sysctl vm.nswapdev now reflects the number of currently configured
swap devices.

Rename vm_swap_size to swap_pager_avail for consistency with other
exported names.

Change argument type for vm_proc_swapin_all() and swap_pager_isswapped()
to be a struct swdevt pointer rather than an index.

Not changed: we are still using blists to manage the free space,
but since the swapspace is no longer fragmented by the striping
different resource managers might fare better.
2003-08-03 13:35:31 +00:00
phk
61f64f46ab Move extern declaration of the various pagerops from vm_pager.c
to vm_pager.h where the various pagers will also see them.
2003-08-03 09:27:39 +00:00
obrien
3882b9d783 Deal with GCC annoyingly defining _BIG_ENDIAN. 2003-08-03 07:53:50 +00:00
obrien
150d7d3036 Style sync. 2003-08-03 07:50:19 +00:00
alc
52878a6770 Revise obj_alloc(). Most notably, use the object's lock to prevent two
concurrent invocations from acquiring the same address(es).  Also, in case
of an incomplete allocation, free any allocated pages.

In collaboration with:	tegge
2003-08-03 06:08:48 +00:00
bmilekic
2a8e0c5c0a When INVARIANTS is on and we're in uma_zalloc_free(), we need to make
sure that uma_dbg_free() is called if we're about to call
uma_zfree_internal() but we're asking it to skip the dtor and
uma_dbg_free() call itself.  So, if we're about to call
uma_zfree_internal() from uma_zfree_arg() and skip == 1, call
uma_dbg_free() ourselves.
2003-08-02 22:40:27 +00:00
alc
c38b9c732f 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.

Submitted by:	tegge
2003-08-02 19:26:09 +00:00
ru
c1f8b453c0 There's already the elink.ko module available, don't embed it here.
Reviewed by:	markm
2003-08-02 18:46:02 +00:00
jhb
f0ef0df712 Both 'c' an 'lines' are unused, the bogus init of lines was accidentally
left behind.
2003-08-02 17:35:00 +00:00
alc
15ec2b9212 Use kmem_alloc_nofault() rather than kmem_alloc_pageable() in proc_rwmem().
See revision 1.140 of kern/sys_pipe.c for a detailed rationale.

Submitted by:	tegge
2003-08-02 17:08:21 +00:00
julian
0aaea9d619 fix braino in last commit.
Beaten with clue-stick by: Davidxu
2003-08-02 16:45:32 +00:00
bde
06b828941c Support the Titan VScom PCI-200HV2 2 port serial card.
MFC after:	3 days
2003-08-02 13:25:31 +00:00
phk
4a97de3d53 Kick Giant compatibility one layer up. 2003-08-02 10:11:58 +00:00
phk
adb4818b64 Grab Giant in bufdonebio() since drivers may not hold it.
This only protects the "struct buf" consumers (ie: DEV_STRATEGY()),
but does not protect BIO_STRATEGY() users.
2003-08-02 09:45:10 +00:00
nyan
545a2236ae Merged from sys/dev/sio/sio.c revision 1.400. 2003-08-02 09:41:31 +00:00
phk
e1e146913d Grab Giant in physio() since non-giant drivers are starting to appear. 2003-08-02 09:40:53 +00:00
nyan
10c63974c2 Merged from sys/dev/ppc/ppc.c revision 1.42. 2003-08-02 09:25:25 +00:00
nyan
8c736a5354 MFi386: revision 1.449. 2003-08-02 09:23:03 +00:00
marcel
108e5926e2 Don't hardcode unit 0 for the current device if we're loaded from an
EFI file system. When booting from a CD and there's already an EFI
system partition on the disk, setting the current device to unit 0
will select the harddisk. This invariably breaks installing FreeBSD
when other operating systems have been installed before.

We obviously want to do the same when we're booting over the network.
Maybe later.

Based on a patch (from memory) from: arun
2003-08-02 08:22:03 +00:00
julian
145ea2a06a Relax the check for bad LDTE allocations. It turns out that
there is code that blindly allocates LDTEs starting at slot 6
and I quess it doesn't really matter to us if they overwrite the BSDI
syscall slot, since it isn't a BSDI binary. Also add some code to help track
down other such users (commented out for now).

Reviewed by:	deischen@
2003-08-02 06:52:36 +00:00
alc
cd7b955e65 - 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.  Submitted by: tegge
 - Remove GIANT_REQUIRED from pmap_mapdev().
2003-08-02 06:17:01 +00:00
sam
c266ab1a40 o remove bmisshack no longer needed with the BSSID fix in v0.9.5.2 of the hal
o add monitor mode support
o fix short preamble handling in beacon setup (noop)
o correct resume handling
2003-08-02 06:14:15 +00:00
sam
107c335599 This commit was generated by cvs2svn to compensate for changes in r118339,
which included commits to RCS files with non-trunk default branches.
2003-08-02 05:48:03 +00:00
sam
19e186a990 Version 0.9.5.2:
o correct BSSID setup in ah_writeAssocid for 5211 and 5212 (fixes
  reception of broadcast frames after association)
o correct transmit retry counts returned by 5211 in ah_procTxDesc
o add missing regulatory domain support that caused use of 11b channels to be
  disallowed with some cards (e.g. mini-pci cards in certain IBM laptops)
o miscellaneous fixes to regulatory domain support
o increase size of 5212 ANI table to avoid overflow
o add monitor mode
o remove OS_QSORT support
o fix handling of HAL_RXDESC_INTREQ in ah_setupRxDesc
o rewrite 5212 descriptor handling for portability
o FreeBSD: track alq_open API change
2003-08-02 05:48:03 +00:00
nyan
7ea5a3d1b4 PC98 uses different mask of IRQ. 2003-08-02 05:14:17 +00:00
alc
507ad47156 Eliminate an abuse of kmem_alloc_pageable() in bufinit()
by using VM_ALLOC_NOOBJ to allocate the bogus page.

Reviewed by:	tegge
2003-08-02 05:05:34 +00:00
alc
4d05c167d2 Use kmem_alloc_nofault() rather than kmem_alloc_pageable() in sf_buf_init().
(See revision 1.140 of kern/sys_pipe.c for a detailed rationale.)

Submitted by:	tegge
2003-08-02 04:18:56 +00:00
marcel
844a52c0a0 Don't use uint64_t. Use unsigned long instead. One is supposed to use
ucontext_t without having to include headers other than <ucontext.h>.
2003-08-02 01:12:31 +00:00
peter
b0bd9db0c6 Fix a dumbass mistake. I had the 'set' and 'get' reversed in the
fpsetround/fpgetround macro pairs.
2003-08-02 00:26:30 +00:00
imp
bd7b1417aa The MI code was modified to filter the devices based on its header
type.  We know about header types 0, 1 and 2.  Ignore the rest in the
MD i386 code when we're looking for bridges.  You cannot look at the
vendor tag.  And if you don't you certainly can't look at function > 0
if the device isn't there.

The new soekris boards' GEODE cpu has issues with the old way.  This
is reported to have fixed it.

MFC After: 2 days
2003-08-01 21:50:09 +00:00
imp
45cad995cd Define PCI_MAXHDRTYPE to be 2. We know about header types 0, 1 and 2.
Update the MI device scanning code to use PCI_MAXHDRTYPE rather than
the hard coded 2.
2003-08-01 21:45:56 +00:00
imp
4181b4df77 Add hw.pci.irq_override_mask, which is a mask of interrupts that are
considered to be good to try when it otherwise has no clue about which
interrupts to try.  This is a band-aide and we really should try to
balance the IRQs that we arbitrarily pick, but it should help some
people that would otherwise get bad IRQs.
2003-08-01 21:31:36 +00:00
alc
9e28da88a0 Update the comment at the head of kmem_alloc_nofault() to describe its
purpose and use.
2003-08-01 19:51:43 +00:00
bmilekic
9caa205e5b Only free the pcpu cache buckets if they are non-NULL.
Crashed this person's machine: harti
Pointy-hat to: me
2003-08-01 17:42:27 +00:00
jdp
a8a8a6510a Add facilities for tuning the "em" driver's interrupt delays without
recompiling the driver.  See the comments near the top of "if_em.h"
for descriptions of these delays.  Four new loader tunables control
the system-wide default values:

    hw.em.tx_int_delay
    hw.em.rx_int_delay
    hw.em.tx_abs_int_delay
    hw.em.rx_abs_int_delay

The tunables are specified in microseconds.  The valid range is
0-67108 usec., and 0 means that the timer is disabled.

There are also four new sysctls (actually, a set of four for each
"em" device in the system) to query and change the interrupt delays
after the system is up:

    hw.em0.tx_int_delay
    hw.em0.rx_int_delay
    hw.em0.tx_abs_int_delay (not present for 82542/3/4 adapters)
    hw.em0.rx_abs_int_delay (not present for 82542/3/4 adapters)

It seems to be OK to change these values even while the adapter is
passing traffic.

Approved by:	Prafulla Deuskar <pdeuskar@FreeBSD.ORG>
MFC after:	4 weeks
2003-08-01 17:33:59 +00:00
simokawa
e43686a8dc Workaround for gcc on alpha/ia64.
(warning: `xferq' might be used uninitialized in this function)
2003-08-01 17:19:12 +00:00
obrien
1c53f0726f Fix kernel build -- 'c' was the unused var, not 'lines'. 2003-08-01 17:00:49 +00:00
imp
39e40ff7c5 Add comment point o2micro people to NEWCARD 2003-08-01 16:10:48 +00:00
rwatson
23fd91f044 Attempt to simplify #ifdef logic for MAC_ALWAYS_LABEL_MBUF.
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2003-08-01 15:45:14 +00:00
marcel
2f78c165a5 Write the preserved registers to (and read them from) struct reg and
struct fpreg.
2003-08-01 07:21:34 +00:00
marcel
f97685045f Fix ordering bug created by previous commit. While here, make ppc(4)
dependent on isa.
2003-08-01 05:28:43 +00:00
ambrisko
e8f9952165 Forgot an added file in the last commit. 2003-08-01 05:02:55 +00:00
simokawa
5bab2bb89d Clean up fwdev.
Allocate iso DMA channel dynamically.  This allows us to have more
/dev/fw* than number of DMA channels for asyn. transactions and etc.
2003-08-01 04:51:21 +00:00
ambrisko
a1fbadfb8d Add printer support to puc(4) driver.
-	Move isa/ppc* to sys/dev/ppc (repo-copy)
      -	Add an attachment method to ppc for puc
      -	In puc we need to walk the chain of parents.
Still to do, is to make ppc(4) & puc(4) work on other platforms.  Testers
wanted.

PR:		38372 (in spirit done differently)
Verified by:	Make universe (if I messed up a platform please fix)
2003-08-01 02:25:32 +00:00
simokawa
631df8957e - Disable faking T_DIRECT as T_RBC because we have PIM_NO_6_BYTE now. 2003-08-01 02:24:39 +00:00
alc
7199d3e24f Remove Giant from writev(2). Eliminate trivial style differences between
writev(2) and readv(2).
2003-08-01 02:21:54 +00:00
simokawa
62a83c4022 - Detect full of DMA channel correctly. 2003-08-01 02:13:25 +00:00
phk
1a2b042c99 Remove unused stuff.
Move used stuff to swap_pager.c where it belongs.

This file no longer exports anything to userland.
2003-07-31 22:19:28 +00:00
rwatson
62ffcdda2d Improve consistency with the Biba policy -- rename
mac_mls_subject_equal_ok() to mac_mls_subject_privileged(),
which more consistently reflects the fact that this is really
about our notion of privilege in the MLS policy.

Since we don't use suser() for privilege in MLS, remove
the suser check from the ifnet relabel ioctl, and replace it
with an MLS privilege check.

Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2003-07-31 20:00:06 +00:00