Commit Graph

67939 Commits

Author SHA1 Message Date
Luigi Rizzo
e4fc250c15 Device Polling code for -current.
Non-SMP, i386-only, no polling in the idle loop at the moment.

To use this code you must compile a kernel with

        options DEVICE_POLLING

and at runtime enable polling with

        sysctl kern.polling.enable=1

The percentage of CPU reserved to userland can be set with

        sysctl kern.polling.user_frac=NN (default is 50)

while the remainder is used by polling device drivers and netisr's.
These are the only two variables that you should need to touch. There
are a few more parameters in kern.polling but the default values
are adequate for all purposes. See the code in kern_poll.c for
more details on them.

Polling in the idle loop will be implemented shortly by introducing
a kernel thread which does the job. Until then, the amount of CPU
dedicated to polling will never exceed (100-user_frac).
The equivalent (actually, better) code for -stable is at

	http://info.iet.unipi.it/~luigi/polling/

and also supports polling in the idle loop.

NOTE to Alpha developers:
There is really nothing in this code that is i386-specific.
If you move the 2 lines supporting the new option from
sys/conf/{files,options}.i386 to sys/conf/{files,options} I am
pretty sure that this should work on the Alpha as well, just that
I do not have a suitable test box to try it. If someone feels like
trying it, I would appreciate it.

NOTE to other developers:
sure some things could be done better, and as always I am open to
constructive criticism, which a few of you have already given and
I greatly appreciated.
However, before proposing radical architectural changes, please
take some time to possibly try out this code, or at the very least
read the comments in kern_poll.c, especially re. the reason why I
am using a soft netisr and cannot (I believe) replace it with a
simple timeout.

Quick description of files touched by this commit:

sys/conf/files.i386
        new file kern/kern_poll.c
sys/conf/options.i386
        new option
sys/i386/i386/trap.c
        poll in trap (disabled by default)
sys/kern/kern_clock.c
        initialization and hardclock hooks.
sys/kern/kern_intr.c
        minor swi_net changes
sys/kern/kern_poll.c
        the bulk of the code.
sys/net/if.h
        new flag
sys/net/if_var.h
        declaration for functions used in device drivers.
sys/net/netisr.h
        NETISR_POLL
sys/dev/fxp/if_fxp.c
sys/dev/fxp/if_fxpvar.h
sys/pci/if_dc.c
sys/pci/if_dcreg.h
sys/pci/if_sis.c
sys/pci/if_sisreg.h
        device driver modifications
2001-12-14 17:56:12 +00:00
Luigi Rizzo
99adc698c1 Let M_LEADINGSPACE write into non-shared mbufs.
A similar thing has been in -stable for weeks and is completely safe.

This has very good performance implications as it saves some data
copying, and sometimes avoids triggering performance bugs in devices
(such as the "dc" and other Tulip clones) which do not like scattered
data.
2001-12-14 17:31:58 +00:00
Ian Dowse
1cb4661d56 Enable UFS_DIRHASH in the GENERIC kernel.
Suggested by:	silby
Reviewed by:	dillon
MFC after:	5 days
2001-12-14 16:27:11 +00:00
Luigi Rizzo
69393d0646 Add prototypes for main() so that these programs compile with -Werror
(which somehow now seems to be the default for compiling -current).
This error popped up while doing a PicoBSD cross-compile on a 4.3-ish system,
it may well be that there are other apps which have similar problems,
but I did not spot them as they are not included in my picobsd config.

Whether adding prototypes for main() is the correct solution or not
I have no idea, a request to -current on the matter went basically
unanswered. Those who have better ideas are welcome to back this out
and replace it with the correct fix.
2001-12-14 16:22:41 +00:00
Mike Heffner
6257f96122 ftp(1) was not the only user of FTP_PASSIVE_MODE, libfetch uses it
too, so add it back
2001-12-14 15:48:55 +00:00
Yoshihiro Takahashi
9cc62fb3d8 Fixed to draw mouse cursor. The syscons driver for PC98 uses different
attributes from i386.

Submitted by:	chi@bd.mbn.or.jp (Chiharu Shibata)
MFC after:	3 days
2001-12-14 15:27:15 +00:00
Ruslan Ermilov
e237860a3c mdoc(7) police: add -p to the synopsis line as well. 2001-12-14 15:03:32 +00:00
Ruslan Ermilov
85389b3dfa MFCrypto: Remove -r, -s, sort -p. 2001-12-14 14:46:51 +00:00
Ruslan Ermilov
3f36940560 mdoc(7) police: remove -r from SYNOPSIS, sort -p in DESCRIPTION. 2001-12-14 14:41:07 +00:00
Ruslan Ermilov
7f432ff831 mdoc(7) police: bump document date. 2001-12-14 13:49:28 +00:00
Sheldon Hearn
6e5c224e04 Bump __FreeBSD_version for userland smbfs import. 2001-12-14 12:41:56 +00:00
Sheldon Hearn
3becbb252c Arrange for the smbfs examples to be installed.
We don't install dot.nsmbrc or smbfs.sh.sample, since we already install
the former as /etc/nsmb.conf and the latter is unnecessary, since
boot-time mounts can be arranged directly within /etc/fstab without fear
of breaking the boot when the smbfs port (now unnecessary is removed).

The MFC reminder below is subject to <re@FreeBSD.org> approval
priod to 4.5-RELEASE.

MFC after:	1 week
2001-12-14 12:17:03 +00:00
Sheldon Hearn
85519b003a Add bmake glue for src/contrib/smbfs and connect userland smbfs
support to the build.

The MFC reminder below is subject to <re@FreeBSD.org> approval
prior to 4.5-RELEASE.

Reviewed by:	bp, fjoe
MFC:	1 week
2001-12-14 11:41:22 +00:00
Alexey Zelkin
e578c6f17c * cleanup comments and defines
Reviewed by:	bde
2001-12-14 11:36:37 +00:00
Robert Watson
0cbe2ad685 o Clarify the comments on AIO to note that yes, AIO really is unsuitable
for use on machines with untrusted local users, for security as well
  as stability reasons.
o Lack of clarity pointed out by: David Rufino <dr@soniq.net> via bugtraq.
2001-12-14 11:21:16 +00:00
Sheldon Hearn
adbc0684a0 Detail the smbfs-1.4.1 import. 2001-12-14 11:11:31 +00:00
Sheldon Hearn
c45579ad41 This commit was generated by cvs2svn to compensate for changes in r87866,
which included commits to RCS files with non-trunk default branches.
2001-12-14 11:06:03 +00:00
Sheldon Hearn
f1b9d12761 Import smbfs-1.4.1.
This is Boris Popov's SMB/CIFS file system implementation for FreeBSD.

Obtained from:	Boris Popov via ftp://ftp.butya.kz/pub/smbfs/
2001-12-14 11:06:03 +00:00
Kirk McKusick
3ce63c45f7 Add disk I/O scheduling for positively niced processes.
When a positively niced process requests a disk I/O, make
it wait for its nice value of ticks before scheduling its
I/O request if there are any other processes with I/O
requests in the disk queue. For all the gory details, see
the ``Running fsck in the Background'' paper in the Usenix
BSDCon 2002 Conference Proceedings, pages 55-64.
2001-12-14 10:49:15 +00:00
Ruslan Ermilov
1a6ec3e8a3 mdoc(7) police overhaul. 2001-12-14 10:18:15 +00:00
Ruslan Ermilov
9a665c3136 mdoc(7) police overhaul. 2001-12-14 09:48:03 +00:00
Peter Wemm
f99afbb9af Bump configvers for different handling of maxusers. 2001-12-14 09:40:01 +00:00
Peter Wemm
f6916f666c Proper fix for old config setting maxusers to 8. 2001-12-14 09:39:29 +00:00
Ruslan Ermilov
13c8bbf31f Fixed prototype.
Reviewed by:	davidc
2001-12-14 09:25:11 +00:00
Ruslan Ermilov
3bdb698642 mdoc(7) police: don't xref to itself. 2001-12-14 09:22:34 +00:00
Ruslan Ermilov
1f620c2ead mdoc(7) police: markup, grammar and spelling nits.
Reviewed by:	davidc
2001-12-14 09:11:13 +00:00
Ruslan Ermilov
f74d799555 mdoc(7) police: kill the undead whitespace at EOL. 2001-12-14 09:09:21 +00:00
Ruslan Ermilov
34a5940b8c mdoc(7) police: remove hard sentence break which I didn't
submit to Jonathan Mini.
2001-12-14 09:06:11 +00:00
Ruslan Ermilov
ac47c95eea Work around the bugfeature of test(1).
PR:		bin/32822
2001-12-14 08:58:21 +00:00
Matthew Dillon
873a490449 A slightly different version of the vlrureclaim fix.
Reported by: peter, ps
2001-12-14 07:18:31 +00:00
Luigi Rizzo
268cc03905 Remove printf's on mbuf/cluster allocation failures. There are now
equivalent and less dangerous (rate limited) messages in
the mbuf allocation code.

MFC after: 3 days
2001-12-14 05:56:35 +00:00
Kirk McKusick
d8bddaa85d Add disk I/O scheduling for positively niced processes.
When a positively niced process requests a disk I/O, make
it wait for its nice value of ticks before scheduling its
I/O request if there are any other processes with I/O
requests in the disk queue. For all the gory details, see
the ``Running fsck in the Background'' paper in the Usenix
BSDCon 2002 Conference Proceedings, pages 55-64.
2001-12-14 05:50:44 +00:00
David Greenman
05463bb58d Moved the updating of if_ibytes from ether_demux() to ether_input() to fix
a bug where the interface input bytes count wasn't updated when bridging
is enabled.

MFC after:	3 days
2001-12-14 04:41:07 +00:00
Bruce A. Mah
0c9755a23b Whitespace and capitalization fixes to sync with RELENG_4. 2001-12-14 04:29:57 +00:00
Matthew Dillon
7ca592e093 Too many people are compiling kernels with maxusers set to 0 without the new
config.  Hack the kernel to force auto-sizing if the old config is used.
2001-12-14 04:01:08 +00:00
Mike Heffner
f6efcf6413 ftp(1) uses passive mode by default now, therefore remove
FTP_PASSIVE_MODE=YES.

Pointed out by:	billf
2001-12-14 02:08:23 +00:00
Matthew Dillon
3ebeaf5984 This fixes a large number of bugs in our NFS client side code. A recent
commit by Kirk also fixed a softupdates bug that could easily be triggered
by server side NFS.

	* An edge case with shared R+W mmap()'s and truncate whereby
	  the system would inappropriately clear the dirty bits on
	  still-dirty data.  (applicable to all filesystems)

	  THIS FIX TEMPORARILY DISABLED PENDING FURTHER TESTING.
	  see vm/vm_page.c line 1641

	* The straddle case for VM pages and buffer cache buffers when
	  truncating.  (applicable to NFS client side)

	* Possible SMP database corruption due to vm_pager_unmap_page()
	  not clearing the TLB for the other cpu's.  (applicable to NFS
	  client side but could effect all filesystems).  Note: not
	  considered serious since the corruption occurs beyond the file
	  EOF.

	* When flusing a dirty buffer due to B_CACHE getting cleared,
	  we were accidently setting B_CACHE again (that is, bwrite() sets
	  B_CACHE), when we really want it to stay clear after the write
	  is complete.  This resulted in a corrupt buffer.  (applicable
	  to all filesystems but probably only triggered by NFS)

	* We have to call vtruncbuf() when ftruncate()ing to remove
	  any buffer cache buffers.  This is still tentitive, I may
	  be able to remove it due to the second bug fix.  (applicable
	  to NFS client side)

	* vnode_pager_setsize() race against nfs_vinvalbuf()... we have
	  to set n_size before calling nfs_vinvalbuf or the NFS code
	  may recursively vnode_pager_setsize() to the original value
	  before the truncate.  This is what was causing the user mmap
	  bus faults in the nfs tester program.  (applicable to NFS
	  client side)

	* Fix to softupdates (see ufs/ffs/ffs_inode.c 1.73, commit made
	  by Kirk).

Testing program written by: Avadis Tevanian, Jr.
Testing program supplied by: jkh / Apple (see Dec2001 posting to freebsd-hackers with Subject 'NFS: How to make FreeBS fall on its face in one easy step')
MFC after:	1 week
2001-12-14 01:16:57 +00:00
Bruce A. Mah
247e80274d New release note: lukemftp. 2001-12-14 01:14:41 +00:00
Luigi Rizzo
8de7d83bc0 Add a '-l' flag to show CPU load for the various states, similar to what
"top" does (thinking of it, i could have as well used the same format line!)

This only makes sense when "-w" option is also specified, because the
load is computed as the difference between subsequent samples.

I think this (and the "-d" feature which shows differences in the
network statistics counts) would also make sense in the standard
vmstat and netstat.
2001-12-14 01:10:50 +00:00
Matthew Dillon
c8b4c292c0 Add maxusers auto-sizing description to NOTES file for -current 2001-12-14 01:01:20 +00:00
Robert Watson
48f1ba5b0d o Wording fix in comment.
Submitted by:	tanimura via p4
2001-12-14 00:38:01 +00:00
Kirk McKusick
cc5a92334f Minimize the time necessary to suspend operations on a filesystem
when taking a snapshot. The two time consuming operations are
scanning all the filesystem bitmaps to determine which blocks
are in use and scanning all the other snapshots so as to be able
to expunge their blocks from the view of the current snapshot.
The bitmap scanning is broken into two passes. Before suspending
the filesystem all bitmaps are scanned. After the suspension,
those bitmaps that changed after being scanned the first time
are rescanned. Typically there are few bitmaps that need to be
rescanned. The expunging of other snapshots is now done after
the suspension is released by observing that we can easily
identify any blocks that were allocated to them after the
suspension (they will be maked as `not needing to be copied'
in the just created snapshot). For all the gory details, see
the ``Running fsck in the Background'' paper in the Usenix
BSDCon 2002 Conference Proceedings, pages 55-64.
2001-12-14 00:15:06 +00:00
David E. O'Brien
f414f5dc5c Convert C++ style comments to proper C ones.
Clean up C comments just a tad.
Fix ID's.
2001-12-13 23:48:34 +00:00
Mike Heffner
bfacd15a50 Connect lukemftp to the build as the default ftp client. Lukemftp
supports most of the previous features of FreeBSD ftp, but has been
better maintained and includes new features.
2001-12-13 23:46:44 +00:00
Peter Wemm
9446b36bab If we were called to allocate a vnode that is not associated with a
mount point, do not dereference the NULL mp argument.
2001-12-13 23:46:01 +00:00
Brian Feldman
63b42c1943 Remove stale prototype for sonewconn3(). 2001-12-13 22:16:54 +00:00
Robert Watson
f8cf411e49 o Back out portions of 1.50 and 1.47, eliminating sonewconn3() and
always deriving the credential for a newly accepted connection from
  the listen socket.  Previously, the selection of the credential
  depended on the protocol: UNIX domain sockets would use the
  connecting process's credential, and protocols supporting a creation
  of the socket before the receiving end called accept() would use
  the listening socket.  After this change, it is always the listening
  credential.

Reviewed by:	green
2001-12-13 22:09:37 +00:00
Bruce A. Mah
d337b6b915 New release notes: boot loader -p for i386, maxusers autosizing,
burncd(8) for VCDs/SVCDs, newfs(8) new 16K/2K block/frag defaults,
watch(8) -f.

Updated release note: sis(4) VAN and note its MFC done a long time
ago.
2001-12-13 21:18:56 +00:00
Alexey Zelkin
243e90d646 Also fix cases when thousands separator should be put before number. For
example before for grouping sequence "\003\003" number 123456 was formated
as ",123,456", now "123,456".
2001-12-13 21:05:27 +00:00
Mike Silbersack
ebacce5e99 Limit maxprocperuid to 9/10 maxproc, and limit maxfilesperproc to 9/10
maxfiles.  This should make local resource exhaustion attacks easier
to handle with a non-tweaked setup.

MFC after:	3 days
2001-12-13 20:00:45 +00:00