108503 Commits

Author SHA1 Message Date
imp
f3f59ffab7 Add missing 'static' 2004-10-06 15:18:12 +00:00
pjd
5da4fe1795 Lock file for gbde devices is optional. 2004-10-06 14:42:35 +00:00
mtm
0a21f474dc Close a race between a thread exiting and the freeing of it's stack.
After some discussion the best option seems to be to signal the thread's
death from within the kernel. This requires that thr_exit() take an
argument.

Discussed with: davidxu, deischen, marcel
MFC after: 3 days
2004-10-06 14:23:00 +00:00
pjd
66f574f537 Look out for geoms without softc.
Reported by:	tegge
2004-10-06 14:15:47 +00:00
davidxu
0a270f4e6a Allocate red zone and stack space together and then split red zone from
allocated space, orignal code left red zone unallocated, but those space
can be allocated by user code, and result was providing no protection.
2004-10-06 08:11:07 +00:00
imp
0ccb4c9971 For older systems with ACPI which don't have a pci <-> pci bridge,
allocate unallocated memory resources from the top 32MB of the address
space rather than the top 2GB.  While the latter works on some
chipsets, it fails badly on others.  32MB is more conservative and
matches what cheap harware from this era is hardwired to pass.
2004-10-06 07:26:52 +00:00
imp
dc2b0adf74 For legacy PCI bridges, limit memory allocation to the top 32MB of
RAM.  Many older, legacy bridges only allow allocation from this
range.  This only appies to devices who don't have their memory
assigned by the BIOS (since we allocate the ranges so assigned
exactly), so should have minimal impact.

Hoewver, for CardBus bridges (cbb), they rarely get the resources
allocated by the BIOS, and this patch helps them greatly.  Typically
the 'bad Vcc' messages are caused by this problem.
2004-10-06 07:22:58 +00:00
brooks
0f55bc1d45 Mention "-d directory" in usage().
Pointy hat to:	brooks
2004-10-06 04:47:37 +00:00
green
a146714a11 Don't recurse the BPF descriptor lock during the BIOCSDLT operation
(and panic).  To try to finish making BPF safe, at the very least,
the BPF descriptor lock really needs to change into a reader/writer
lock that controls access to "settings," and a mutex that controls
access to the selinfo/knote/callout.  Also, use of callout_drain()
instead of callout_stop() (which is really a much more widespread
issue).
2004-10-06 04:25:37 +00:00
suz
7871c65cf0 fixed too delayed routing cache expiry. (tvtohz() converts a time interval to ticks, whereas hzto() converts an absolute time to ticks)
Obtained from: KAME
2004-10-06 03:32:26 +00:00
marcel
b5798c745b Add the Madison II, which is the second generation Madison. The Madison II
is model 2 in the Itanium 2 family and has up to 9MB of L3 cache and clocks
higher than 1.5Ghz. There's no LV variant AFAICT.
2004-10-06 02:43:28 +00:00
davidxu
e1ce006b64 Close a race between thr_create and sysctl -w, the thr_scope_sys could
be changed when thr_create is running, and we tested it for several times.
2004-10-06 02:29:19 +00:00
grog
152055d94b vtryrecycle: Don't rely on type VBAD alone to mean that we don't need
to clean the vnode.  If v_data is set, we still need to
	     clean it.  This code change should catch all incidents of
	     the previous commit (INVARIANTS only).
2004-10-06 02:09:59 +00:00
grog
882d69104e getnewvnode: Weaken the panic "cleaned vnode isn't" to a warning.
Discussion: this panic (or waning) only occurs when the kernel is
  compiled with INVARIANTS.  Otherwise the problem (which means that
  the vp->v_data field isn't NULL, and represents a coding error and
  possibly a memory leak) is silently ignored by setting it to NULL
  later on.

  Panicking here isn't very helpful: by this time, we can only find
  the symptoms.  The panic occurs long after the reason for "not
  cleaning" has been forgotten; in the case in point, it was the
  result of severe file system corruption which left the v_type field
  set to VBAD.  That issue will be addressed by a separate commit.
2004-10-06 02:06:11 +00:00
davidxu
7acde29a24 Restore some code removed in revision 1.193 and 1.194, julian said
he'd like to keep these code.
2004-10-06 00:49:41 +00:00
davidxu
793ea9317e In original kern_execve() code, at the start of the function, it forces
all other threads to suicide, problem is execve() could be failed, and
a failed execve() would change threaded process to unthreaded, this side
effect is unexpected.
The new code introduces a new single threading mode SINGLE_BOUNDARY, in
the mode, all threads should suspend themself at user boundary except
the singler. we can not use SINGLE_NO_EXIT because we want to start from
a clean state if execve() is successful, suspending other threads at unknown
point and later resuming them from there and forcing them to exit at user
boundary may cause the process to start from a dirty state. If execve() is
successful, current thread upgrades to SINGLE_EXIT mode and forces other
threads to suicide at user boundary, otherwise, other threads will be resumed
and their interrupted syscall will be restarted.

Reviewed by: julian
2004-10-06 00:40:41 +00:00
green
c2f56cb723 Forced commit to note the submitter.
Submitted by:	stefanf
2004-10-05 23:50:10 +00:00
green
481a4ac3e6 Make sure to return 0 from kernel_getnfile() since if there were an
error, it would exit() (and it needs to return a value).
2004-10-05 23:49:27 +00:00
brooks
626003d727 Don't prepend the directory specified by -d when the file is a relative
path.  Doing so makes no sense.  I'm not sure allowing relative paths
makes sense either, but I'm not going to break that now.
2004-10-05 22:16:31 +00:00
julian
d5dfe59f9e Fix whitespace botch that only showed up in the commit message diff :-/
MFC after:	4 days
2004-10-05 22:14:02 +00:00
brooks
daab88cfb1 Bump __FreeBSD_version for addition of newsyslog -d. 2004-10-05 22:09:12 +00:00
julian
b4640b18f7 Slight cleanup in the single threading code.
MFC after:	4 days
2004-10-05 22:05:25 +00:00
julian
57fb03da54 When preempting a thread, put it back on the HEAD of its run queue.
(Only really implemented in 4bsd)

MFC after:	4 days
2004-10-05 22:03:10 +00:00
julian
7d0504ed38 Oops. left out part of the diff.
MFC after:	4 days
2004-10-05 21:26:27 +00:00
njl
122c371535 Update a comment that was outdated. 2004-10-05 21:24:20 +00:00
julian
7b170fd9fa Use some macros to trach available scheduler slots to allow
easier debugging.

MFC after:	4 days
2004-10-05 21:10:44 +00:00
julian
8587c9806d light rearrangement of some code to get some locking
more correct

MFC after:	4 days
2004-10-05 20:48:16 +00:00
njl
d99a39abe6 Back out the -s flag and go back to dumping the SSDTs by default. 2004-10-05 20:45:05 +00:00
njl
e1524c78c8 Update the man page with new info about overriding your DSDT.
MFC after:	3 days
2004-10-05 20:42:16 +00:00
njl
346ca09478 When the user overrides the DSDT, replace any SSDTs with a simple no-op
table.  acpidump(8) concatenates the body of the DSDT and SSDTs so an
edited ASL will contain all the necessary information.  We can't use a
completely empty table since ACPI-CA reports this as a problem.

MFC after:	3 days
2004-10-05 20:41:44 +00:00
julian
2094122f86 Break out to a separate function, the code to revert a multithreaded
process back to officially being a non-threaded program.

MFC after:	4 days
2004-10-05 20:39:26 +00:00
sheldonh
7b912cdcc8 Regen:
* Hart:		rev 494 of pcidevs.txt (2004-09-02)
* Boemler:	vendors.txt (2004-09-30)

Approved by:	re (hrs)
2004-10-05 20:10:35 +00:00
sam
c5a66f8d8b add 80211watch program 2004-10-05 19:53:32 +00:00
sam
c42407335a simple program to watch 802.11 events through a routing socket 2004-10-05 19:51:34 +00:00
sam
4be594580c Add 802.11-specific events that are dispatched through the routing socket.
This really doesn't belong here but is preferred (for the moment) over
adding yet another mechanism for sending msgs from the kernel to user apps.

Reviewed by:	imp
2004-10-05 19:48:33 +00:00
sam
e5887a56e2 add ETHERTYPE_PAE for EAPOL/802.1x 2004-10-05 19:28:52 +00:00
imp
3af0442894 Add note about regulatory domains to avoid confusion.
Reviewed by: sam@
2004-10-05 19:27:40 +00:00
jhb
ce2d3f89af Rework how we store process times in the kernel such that we always store
the raw values including for child process statistics and only compute the
system and user timevals on demand.

- Fix the various kern_wait() syscall wrappers to only pass in a rusage
  pointer if they are going to use the result.
- Add a kern_getrusage() function for the ABI syscalls to use so that they
  don't have to play stackgap games to call getrusage().
- Fix the svr4_sys_times() syscall to just call calcru() to calculate the
  times it needs rather than calling getrusage() twice with associated
  stackgap, etc.
- Add a new rusage_ext structure to store raw time stats such as tick counts
  for user, system, and interrupt time as well as a bintime of the total
  runtime.  A new p_rux field in struct proc replaces the same inline fields
  from struct proc (i.e. p_[isu]ticks, p_[isu]u, and p_runtime).  A new p_crux
  field in struct proc contains the "raw" child time usage statistics.
  ruadd() has been changed to handle adding the associated rusage_ext
  structures as well as the values in rusage.  Effectively, the values in
  rusage_ext replace the ru_utime and ru_stime values in struct rusage.  These
  two fields in struct rusage are no longer used in the kernel.
- calcru() has been split into a static worker function calcru1() that
  calculates appropriate timevals for user and system time as well as updating
  the rux_[isu]u fields of a passed in rusage_ext structure.  calcru() uses a
  copy of the process' p_rux structure to compute the timevals after updating
  the runtime appropriately if any of the threads in that process are
  currently executing.  It also now only locks sched_lock internally while
  doing the rux_runtime fixup.  calcru() now only requires the caller to
  hold the proc lock and calcru1() only requires the proc lock internally.
  calcru() also no longer allows callers to ask for an interrupt timeval
  since none of them actually did.
- calcru() now correctly handles threads executing on other CPUs.
- A new calccru() function computes the child system and user timevals by
  calling calcru1() on p_crux.  Note that this means that any code that wants
  child times must now call this function rather than reading from p_cru
  directly.  This function also requires the proc lock.
- This finishes the locking for rusage and friends so some of the Giant locks
  in exit1() and kern_wait() are now gone.
- The locking in ttyinfo() has been tweaked so that a shared lock of the
  proctree lock is used to protect the process group rather than the process
  group lock.  By holding this lock until the end of the function we now
  ensure that the process/thread that we pick to dump info about will no
  longer vanish while we are trying to output its info to the console.

Submitted by:	bde (mostly)
MFC after:	1 month
2004-10-05 18:51:11 +00:00
ps
c8e4aa1cd5 - Estimate the amount of data in flight in sack recovery and use it
to control the packets injected while in sack recovery (for both
  retransmissions and new data).
- Cleanups to the sack codepaths in tcp_output.c and tcp_sack.c.
- Add a new sysctl (net.inet.tcp.sack.initburst) that controls the
  number of sack retransmissions done upon initiation of sack recovery.

Submitted by:	Mohan Srinivasan <mohans@yahoo-inc.com>
2004-10-05 18:36:24 +00:00
jhb
9536269a6d Add a critical section in turnstile_unpend() from before dropping the
turnstile chain lock until after making all the awakened threads
runnable.  First, this fixes a priority inversion race.  Second, this
attempts to finish waking up all of the threads waiting on a turnstile
before doing a preemption.

Reviewed by:	Stephan Uphoff (who found the priority inversion race)
2004-10-05 18:00:30 +00:00
takawata
c3db025caa Minor Bug fix. Some file was not translated. 2004-10-05 16:53:37 +00:00
ru
c67e4fe829 Fixed symlinking of /etc/namedb.
Reported by:	Jeremy Chadwick
2004-10-05 13:03:08 +00:00
pjd
c944ef39d6 Back out changes which were introduced to delay mounting root file system.
Those changes were made on gmirror needs, but now gmirror handles this
by itself.
2004-10-05 11:26:43 +00:00
pjd
3f28bf167b Before root file system is mounted, wait for mirrors in degraded state. 2004-10-05 11:17:08 +00:00
davidxu
aa22b44625 Use scheduler api to adjust thread priority. 2004-10-05 09:10:30 +00:00
mlaier
c5e647a2a2 Make pflogd cope with module unload (and the sudden disappearing of pflog0).
Instead of eating all the available CPU we now shutdown gracefully.

Submitted by:	yongari
MFC after:	3 days
2004-10-05 08:26:34 +00:00
ru
d9df4f59eb Re-enable descending into the "atm" subdir. 2004-10-05 07:47:46 +00:00
phk
0654d8c0e2 Use generic tty code instead of local copy.
Also divorce this driver from the sio driver.
2004-10-05 07:42:19 +00:00
imp
ea0652cf81 Yet another case of resources:
+        * 9:   0x3f0-0x3f3,0x3f4-0x3f5,0x3f7

This requires only one change to support.  Rather than keying on the
size of the resource being 2, instead key off the end & 7 being 3.
This covers the same cases that the size of 2 would catch, but also
covers the new above case.

In addition, I think it is clearer to use the end in preference to the
size and start for case #8 as well.  Turns two tests into one, and
catches no other cases.

Make minor commentary changes to deal with new case #9.

# This change is specifically minimal to allow easy MFC.  A more
# extensive change will go into current once I've had a chance to test
# it on a lot of hardware...
2004-10-05 07:18:11 +00:00
ru
5d8d686529 This commit was generated by cvs2svn to compensate for changes in r136136,
which included commits to RCS files with non-trunk default branches.
2004-10-05 06:14:29 +00:00