David E. O'Brien [Wed, 10 Feb 1999 09:16:11 +0000 (09:16 +0000)]
Information on how I did the import.
I still have reservations about choosing the ISC client over the WIDE client,
but I believe the FreeBSD community in general seems to prefer this choice.
Also OpenBSD uses this version and msmith showed that the ISC client gives
us more choices in how we hook the client into sysinstall and /etc/rc*
Kenneth D. Merry [Wed, 10 Feb 1999 00:04:13 +0000 (00:04 +0000)]
Add a prioritization field to the devstat_add_entry() call so that
peripheral drivers can determine where in the devstat(9) list they are
inserted.
This requires recompilation of libdevstat, systat, vmstat, rpc.rstatd, and
any ports that depend on the devstat code, since the size of the devstat
structure has changed. The devstat version number has been incremented as
well to reflect the change.
This sorts devices in the devstat list in "more interesting" to "less
interesting" order. So, for instance, da devices are now more important
than floppy drives, and so will appear before floppy drives in the default
output from systat, iostat, vmstat, etc.
The order of devices is, for now, kept in a central table in devicestat.h.
If individual drivers were able to make a meaningful decision on what
priority they should be at attach time, we could consider splitting the
priority information out into the various drivers. For now, though, they
have no way of knowing that, so it's easier to put them in an easy to find
table.
Also, move the checkversion() call in vmstat(8) to a more logical place.
Thanks to Bruce and David O'Brien for suggestions, for reviewing this, and
for putting up with the long time it has taken me to commit it. Bruce did
object somewhat to the central priority table (he would rather the
priorities be distributed in each driver), so his objection is duly noted
here.
Wes Peters [Tue, 9 Feb 1999 23:55:13 +0000 (23:55 +0000)]
Reviewed by: jkh
Submitted by: wes
Added commentary to ttys to clarify the meaning of the columns.
Added commentary to ttys to clarify the meaning of the columns.
Matthew Dillon [Tue, 9 Feb 1999 17:19:19 +0000 (17:19 +0000)]
Fix bug in mount_mfs whereby mount_mfs would sometimes return before
the mount is completely active, causing the next few commands attempting
to manipulate data on the mount to fail. mount_mfs's parent now tries
to wait for the mount point st_dev to change before returning, indicating
that the mount has gone active.
Matthew Dillon [Tue, 9 Feb 1999 17:17:18 +0000 (17:17 +0000)]
Revamp rc.diskless. Split into rc.diskless1 and rc.diskless2. provide
more opportunities for overriding. Clean up /etc/rc ( remove conf_dir,
remove startup mount special cases, remove other special cases )
Garrett Wollman [Tue, 9 Feb 1999 16:55:46 +0000 (16:55 +0000)]
After wading in the cesspool of ip_input for an hour, I have managed to
convince myself that nothing will break if we permit IP input while
interface addresses are unconfigured. (At worst, they will hit some
ULP's PCB scan and fail if nobody is listening.) So, remove the restriction
that addresses must be configured before packets can be input. Assume
that any unicast packet we receive while unconfigured is potentially ours.
Matthew Dillon [Tue, 9 Feb 1999 01:39:29 +0000 (01:39 +0000)]
Addendum to vm_map coalesce optimization. Also, this was backed-out
because there was a concensus on current in regards to leaving bss r+w+x
instead of r+w. This is in order to maintain reasonable compatibility
with existing JIT compilers (e.g. kaffe) and possibly other programs.
Matt Jacob [Tue, 9 Feb 1999 01:11:35 +0000 (01:11 +0000)]
Roll internal release tag. Roll core version minor. Fix broken DPARM_DEFAULT
define. Add a new config flag param (ISP_CFG_NONVRAM) whose intent it is
to cause NVRAM to be ignored. Add ISPASYNC_LOOP_DOWN and ISPASYNC_LOOP_UP
isp_async enums.
Amazingly enough, I did all my scsi_sa work recently without realizing
that I had a broken isp card whose (unchangeable- it's an old old old
isp1020) NVRAM has sync mode enabled, but disconnect/reconnect disabled-
the ISP_CFG_NONVRAM is definitely warranted when you want to bloody well
ignore the NVRAM and set something sensible.
Matt Jacob [Tue, 9 Feb 1999 01:08:38 +0000 (01:08 +0000)]
Allow fibre channel 'bus resets' to go through. Handle Loop Down/Loop Up
events by freezing/unfreezing the simq- nice to have such control at this
level! Do bus resets in attach layer (non-CAM defined code).
Matt Jacob [Tue, 9 Feb 1999 01:07:06 +0000 (01:07 +0000)]
Roll internal release tag. Print out if we're in a 64 bit PCI slot.
Use fast memory timing NVRAM parameter. Clean up and fix establishment
of default target parameters. Don't use NVRAM if are flagged as not to
do so (I had a busted NVRAM setup which I couldn't edit that enabled SYNC
mode but disabled disconnect/reconnect and wide!!). Fix delays after
resets. BUS resets not done in isp_init anymore- relegated to OS
specific outer layers. Fix a buglet where you can get in a loop for
a NULL xs in the completion list in isp_intr. Add in some defines that
can disable fast posting. Add in code for Loop Up/Loop Down events that
call into the outer layers as to what to do.
Matthew Dillon [Mon, 8 Feb 1999 19:00:15 +0000 (19:00 +0000)]
Revamp vm_object_[q]collapse(). Despite the complexity of this patch,
no major operational changes were made. The three core object->memq loops
were moved into a single inline procedure and various operational
characteristics of the collapse function were documented.
Generate correct DLT_NULL headers before passing packets to bpf.
Do not modify m_len before passing mbuf chains to bpf.
Don't forget to pass packets to bpf when running in Crynwr mode (LINK0).
Partially based on a patch by Bill Fenner <fenner@freebsd.org>.
Roger Hardiman [Mon, 8 Feb 1999 11:53:05 +0000 (11:53 +0000)]
Added check to bktr_mmap() from OpenBSD driver.
Improved MSP34xx reset for bt848 Hauppauge boards.
Added detection for Bt848a.
Vsevolod Lobko<seva@sevasoft.alex-ua.com> added more XUSSR channels.
Submitted by: parts from Vsevolod Lobko<seva@sevasoft.alex-ua.com>
Obtained from: parts from OpenBSD
Bruce Evans [Mon, 8 Feb 1999 06:29:10 +0000 (06:29 +0000)]
Copy from vendor branch. This mainly undoes most of the backing out of
Russian zones/rules in rev.1.12. ache objected mainly to the changes
in the Moscow zone names in rev.1.11 and those changes have been backed
out in the vendor branch.
Julian Elischer [Mon, 8 Feb 1999 05:48:46 +0000 (05:48 +0000)]
Fix for PR 9309.
Divert was not feeding clean data to ifa_ifwithaddr() so it was
giving bad results.
Submitted by: kseel <kseel@utcorp.com>, Ruslan Ermilov <ru@ucb.crimea.ua>
Matthew Dillon [Mon, 8 Feb 1999 02:11:52 +0000 (02:11 +0000)]
If there are 4 or fewer disk devices, we have room to display additional
VM statistics. zfod is moved and %slo-z ( percentage of zero-fills that
were slow, i.e. not pre-zero'd ), and number of pages freed per second.
Matthew Dillon [Mon, 8 Feb 1999 00:37:36 +0000 (00:37 +0000)]
Rip out PQ_ZERO queue. PQ_ZERO functionality is now combined in with
PQ_FREE. There is little operational difference other then the kernel
being a few kilobytes smaller and the code being more readable.
* vm_page_select_free() has been *greatly* simplified.
* The PQ_ZERO page queue and supporting structures have been removed
* vm_page_zero_idle() revamped (see below)
PG_ZERO setting and clearing has been migrated from vm_page_alloc()
to vm_page_free[_zero]() and will eventually be guarenteed to remain
tracked throughout a page's life ( if it isn't already ).
When a page is freed, PG_ZERO pages are appended to the appropriate
tailq in the PQ_FREE queue while non-PG_ZERO pages are prepended.
When locating a new free page, PG_ZERO selection operates from within
vm_page_list_find() ( get page from end of queue instead of beginning
of queue ) and then only occurs in the nominal critical path case. If
the nominal case misses, both normal and zero-page allocation devolves
into the same _vm_page_list_find() select code without any specific
zero-page optimizations.
Additionally, vm_page_zero_idle() has been revamped. Hysteresis has been
added and zero-page tracking adjusted to conform with the other changes.
Currently hysteresis is set at 1/3 (lo) and 1/2 (hi) the number of free
pages. We may wish to increase both parameters as time permits. The
hysteresis is designed to avoid silly zeroing in borderline allocation/free
situations.
Matthew Dillon [Mon, 8 Feb 1999 00:27:56 +0000 (00:27 +0000)]
Backed out vm_map coalesce optimization - it resulted in 22% more page
faults for reasons unknown ( under investigation ).
/usr/bin/time -l make in /usr/src/bin went from 67000 faults to 90000
faults.
John Polstra [Sun, 7 Feb 1999 23:49:56 +0000 (23:49 +0000)]
Change the load address of the ELF dynamic linker from "2L*MAXDSIZ"
to an architecture-specific value defined in <machine/elf.h>. This
solves problems on large-memory systems that have a high value for
MAXDSIZ.
The load address is controlled by a new macro ELF_RTLD_ADDR(vmspace).
On the i386 it is hard-wired to 0x08000000, which is the standard
SVR4 location for the dynamic linker.
On the Alpha, the dynamic linker is loaded MAXDSIZ bytes beyond
the start of the program's data segment. This is the same place
a userland mmap(0, ...) call would put it, so it ends up just below
all the shared libraries. The rationale behind the calculation is
that it allows room for the data segment to grow to its maximum
possible size.
These changes have been tested on the i386 for several months
without problems. They have been tested on the Alpha as well,
though not for nearly as long. I would like to merge the changes
into 3.1 within a week if no problems have surfaced as a result of
them.
Matthew Dillon [Sun, 7 Feb 1999 21:48:23 +0000 (21:48 +0000)]
Remove MAP_ENTRY_IS_A_MAP 'share' maps. These maps were once used to
attempt to optimize forks but were essentially given-up on due to
problems and replaced with an explicit dup of the vm_map_entry structure.
Prior to the removal, they were entirely unused.
Guido van Rooij [Sun, 7 Feb 1999 19:35:40 +0000 (19:35 +0000)]
1) Fix our view of how ibcs2_semid_ds looks. There is no padding int there
(SVR4 does have it so that;s probably the cause of this bug)
2) Add a wrapper function for translation between ibcs2_ipc_perm and
ipc_perm as I think we screwed up when defining the ipc_perm struct and
mixed up 'normal' and creator [ug]id's
3) Fix IBCS2_IPC_STAT semctl. The FreeBSD version needs a union semun
whereas the IBCS2 version gives a struct ibcs2_semid_ds.
Apparently this is all fixed in the SVR4 compatibility code.
PR: 7729
Remove strange-looking quotes. This part of the code is #if'ed out,
and the variable doesn't even exist (though it is referenced elsewhere).
Just make sure it produces error messages when Mike get back to it.
Matt Jacob [Sat, 6 Feb 1999 17:58:06 +0000 (17:58 +0000)]
Hmm- I must be blind. There *was* already an appropriate typedef still
left there. The typedef that was inserted negated the correct typedef.
This may have just been cvs automerge foo. Sorry.
Bill Fenner [Sat, 6 Feb 1999 16:58:50 +0000 (16:58 +0000)]
Don't dump core when p_stat is not in the expected range. This is
only likely to happen when you have a kernel<>userland mismatch,
but it's really annoying when top dumps core and leaves the terminal
in a mangled state; it's much nicer to print nicely formatted gibberish.
Matt Jacob [Sat, 6 Feb 1999 16:39:16 +0000 (16:39 +0000)]
I don't know what happened here- I submitted a *working* patch for
alpha to John Polstra yesterday and it was checked in. Then there
was a bunch of CVS activity, and it ended up with the *broken*
prototype being reinserted. All I see in the history is 'style nits'
as a comment, and I certainly agree with the latter of those two words.
Bruce Evans [Sat, 6 Feb 1999 08:41:06 +0000 (08:41 +0000)]
Added underscores to some names in svr4_locore.s so that it compiles
with -aout. Added translation back to elf names in asnames.h as
usual. The elf names were inconsistent in the aout case even
internally because a macro adds an underscore to just one of them.
Removed commented out code for a previous life of `svr4_esigcode'.
Didn't add an underscore to `svr4_esigcode' since it is correct for
aout although wrong for elf, like most internal names in assembler
files. These names should be in a different namespace so that gprof
can ignore them.
Matthew Dillon [Sat, 6 Feb 1999 07:48:56 +0000 (07:48 +0000)]
Flush delayed-write data out prior to issuing a rename rpc. This appears
to fix the problem w/ NFSV3 whereby a make installworld would get into
high-network-bandwidth situations continuously trying to retry nfs writes
that fail with a 'stale file handle' error.
Bruce Evans [Sat, 6 Feb 1999 07:48:24 +0000 (07:48 +0000)]
Honor ${LDFLAGS} for building svr4_genassym. This is part of fixing
world breakage (mainly for cross-world cases). The world Makefile
attempts to build tools static so that nonexistent or wrong shared
libraries and interpreters don't get used. This is broken anyway
since the world Makefile doesn't know about svr4_genassym.
Force building svr4_genassym static. This is part of "fixing"
aout-to-elf-build breakage. aout-to-elf-build abuses NOTOOLS to
avoid rebuilding all the aout tools. This saves time and avoids
some complications. However, it breaks all the internal tools --
they get linked to target libraries which might not work. Cases
where the host can run the target's static libraries are "fixed"
by encrufting all Makefiles that build internal tools to build the
tools static.
Don't add .depend to CLEANFILES -- it just breaks the separation of
`make cleandepend' from `make clean'.