Mike Smith [Tue, 27 Jan 1998 16:49:35 +0000 (16:49 +0000)]
Fix operation with the Iomega Zip 100 ATAPI.
All known versions of this drive (firmware 21.* and 23.*) will lock up
if presented with a read/write request of > 64 blocks. In the presence
of such a unit, I/O requests of > 64 blocks are fragmented to avoid
this.
Mike Smith [Tue, 27 Jan 1998 16:45:23 +0000 (16:45 +0000)]
Check the status port after waiting for DRQ; some drives seem to be very
slow coming off the bus (eg. Iomega's ATAPI Zip). Failure to do
this results in a false probe of an ATAPI device with garbage
data.
Kazutaka YOKOTA [Tue, 27 Jan 1998 13:36:59 +0000 (13:36 +0000)]
- Correct inconsistencies among keymaps.
- define CTL-ALT-ESC as `debug' key in all keymaps. (FAQ mentions this
key sequence but not all keymaps had it!)
- define CTL-SPACE as NUL in all keymaps.
- define CTL-ALT-SPACE as `suspend' key in all but Russiun keymaps.
- Fix Japanese keymaps. Some CTL- keystrokes were wrong.
- Remove accent (dead) key definitions from spanish.iso.kbd,
fr.iso.kbd and icelandic.iso.kbd. Create spanish.iso.acc.kbd,
fr.iso.acc.kbd and icelandic.iso.acc.kbd with accent key definitions
instead.
- Update INDEX.keymaps and Makefile.
David Greenman [Tue, 27 Jan 1998 09:15:13 +0000 (09:15 +0000)]
Improved connection establishment performance by doing local port lookups via
a hashed port list. In the new scheme, in_pcblookup() goes away and is
replaced by a new routine, in_pcblookup_local() for doing the local port
check. Note that this implementation is space inefficient in that the PCB
struct is now too large to fit into 128 bytes. I might deal with this in the
future by using the new zone allocator, but I wanted these changes to be
extensively tested in their current form first.
Also:
1) Fixed off-by-one errors in the port lookup loops in in_pcbbind().
2) Got rid of some unneeded rehashing. Adding a new routine, in_pcbinshash()
to do the initialial hash insertion.
3) Renamed in_pcblookuphash() to in_pcblookup_hash() for easier readability.
4) Added a new routine, in_pcbremlists() to remove the PCB from the various
hash lists.
5) Added/deleted comments where appropriate.
6) Removed unnecessary splnet() locking. In general, the PCB functions should
be called at splnet()...there are unfortunately a few exceptions, however.
7) Reorganized a few structs for better cache line behavior.
8) Killed my TCP_ACK_HACK kludge. It may come back in a different form in
the future, however.
These changes have been tested on wcarchive for more than a month. In tests
done here, connection establishment overhead is reduced by more than 50
times, thus getting rid of one of the major networking scalability problems.
Still to do: make tcp_fastimo/tcp_slowtimo scale well for systems with a
large number of connections. tcp_fastimo is easy; tcp_slowtimo is difficult.
WARNING: Anything that knows about inpcb and tcpcb structs will have to be
recompiled; at the very least, this includes netstat(1).
Bruce Evans [Mon, 26 Jan 1998 20:36:38 +0000 (20:36 +0000)]
Generate symlinks to the "sys" and <machine> directories and put
them in the include path. This fixes recent breakage of the syscons
LKMs and general brokenness of the include paths (headers under
/usr/include were used in many cases).
Peter Wemm [Mon, 26 Jan 1998 03:09:57 +0000 (03:09 +0000)]
Import cvs-1.9.23 as at 19980123. There are a number of really nice
things fixed in here, including the '-ko' vs. -A problem with
remote cvs which caused all files with -ko to be resent each time
(which is damn painful over a modem, I can tell you). It also found a
heap of stray empty directories that should have been pruned with the -P
flag to cvs update but were not for some reason.
It also has the fully integrated rcs and diff, so no more fork/exec
overheads for rcs,ci,patch,diff,etc. This means that it parses the control
data in the rcs files only once rather than twice or more.
If the 'cvs diff' vs. Index thing is going to be fixed for future patch
compatability, this is the place to do it.
The status command prints the audio position, the media catalog and the
volume value for the disc. It is now possible to specify additional arguments
(audio, volume, media) to print only a subset of the full status.
This is particularly useful with drives which stop playing when asked to
return the catalog number.
KATO Takenori [Sun, 25 Jan 1998 12:01:38 +0000 (12:01 +0000)]
Even though BIOS writer's guide recommends cpuid instruction of Cyrix
6x86MX CPU is enabled (BIOS should not disable it), some BIOS disables
it via CCR4. In this case, cpu variable becomes CPU_486 and
identblue() is called. Because Cyrix 6x86MX has MSR and doesn't have
MSR1002, wrmsr instruction generates general protection fault.
John Birrell [Sun, 25 Jan 1998 09:49:00 +0000 (09:49 +0000)]
Change MACHINE -> MACHINE_ARCH so that the design make sense on those
machines where the processor chip determines the compiler, and where
multiple machines use the same architecture.
John Dyson [Sun, 25 Jan 1998 06:24:09 +0000 (06:24 +0000)]
Various NFS fixes:
Make vfs_bio buffer mgmt work better.
Buffers were being used after brelse.
Make nfs_getpages work independently of other NFS
interfaces. This eliminates some difficult
recursion problems and decreases pagefault
overhead.
Remove an erroneous vfs_unbusy_pages.
Fix a reentrancy problem, with nfs_vinvalbuf when
vnode is already being rundown.
Reassignbuf wasn't being called when needed under
certain circumstances.
John Dyson [Sun, 25 Jan 1998 06:14:26 +0000 (06:14 +0000)]
Various NFS fixes:
Make vfs_bio buffer mgmt work better.
Buffers were being used after brelse.
Make nfs_getpages work independently of other NFS
interfaces. This eliminates some difficult
recursion problems and decreases pagefault
overhead.
Remove an erroneous vfs_unbusy_pages.
Fix a reentrancy problem, with nfs_vinvalbuf when
vnode is already being rundown.
Reassignbuf wasn't being called when needed under
certain circumstances.
Eivind Eklund [Sat, 24 Jan 1998 02:54:56 +0000 (02:54 +0000)]
Make all file-system (MFS, FFS, NFS, LFS, DEVFS) related option new-style.
This introduce an xxxFS_BOOT for each of the rootable filesystems.
(Presently not required, but encouraged to allow a smooth move of option *FS
to opt_dontuse.h later.)
LFS is temporarily disabled, and will be re-enabled tomorrow.
John Dyson [Sat, 24 Jan 1998 02:01:46 +0000 (02:01 +0000)]
Add better support for larger I/O clusters, including larger physical
I/O. The support is not mature yet, and some of the underlying implementation
needs help. However, support does exist for IDE devices now.
Bring back handbook and FAQ by adding a mechanism for bootstrap ports
to the build. This will need more review as we go into it, but it should
do the basic job for now.
In !dists case, invoke the custom dist menu rather than the toplevel
dist menu. This makes a good deal more sense and should have been
this way all along.
Søren Schmidt [Thu, 22 Jan 1998 19:34:31 +0000 (19:34 +0000)]
Use /bin/pwd instead of a potentially shell builtin that does
not return the "real" path.
This makes it possible to have the .o files put in the /usr/obj
hierachy instead of in the /usr/src one.
John Dyson [Thu, 22 Jan 1998 17:30:44 +0000 (17:30 +0000)]
VM level code cleanups.
1) Start using TSM.
Struct procs continue to point to upages structure, after being freed.
Struct vmspace continues to point to pte object and kva space for kstack.
u_map is now superfluous.
2) vm_map's don't need to be reference counted. They always exist either
in the kernel or in a vmspace. The vmspaces are managed by reference
counts.
3) Remove the "wired" vm_map nonsense.
4) No need to keep a cache of kernel stack kva's.
5) Get rid of strange looking ++var, and change to var++.
6) Change more data structures to use our "zone" allocator. Added
struct proc, struct vmspace and struct vnode. This saves a significant
amount of kva space and physical memory. Additionally, this enables
TSM for the zone managed memory.
7) Keep ioopt disabled for now.
8) Remove the now bogus "single use" map concept.
9) Use generation counts or id's for data structures residing in TSM, where
it allows us to avoid unneeded restart overhead during traversals, where
blocking might occur.
10) Account better for memory deficits, so the pageout daemon will be able
to make enough memory available (experimental.)
11) Fix some vnode locking problems. (From Tor, I think.)
12) Add a check in ufs_lookup, to avoid lots of unneeded calls to bcmp.
(experimental.)
13) Significantly shrink, cleanup, and make slightly faster the vm_fault.c
code. Use generation counts, get rid of unneded collpase operations,
and clean up the cluster code.
14) Make vm_zone more suitable for TSM.
This commit is partially as a result of discussions and contributions from
other people, including DG, Tor Egge, PHK, and probably others that I
have forgotten to attribute (so let me know, if I forgot.)
This is not the infamous, final cleanup of the vnode stuff, but a necessary
step. Vnode mgmt should be correct, but things might still change, and
there is still some missing stuff (like ioopt, and physical backing of
non-merged cache files, debugging of layering concepts.)