Commit Graph

100214 Commits

Author SHA1 Message Date
Alan Cox
9a63fc0df0 Simplify sf_buf_alloc(). 2004-03-14 04:06:33 +00:00
Peter Wemm
a5bdcb2a2f Make the process_exit eventhandler run without Giant. Add Giant hooks
in the two consumers that need it.. processes using AIO and netncp.
Update docs.  Say that process_exec is called with Giant, but not to
depend on it.  All our consumers can handle it without Giant.
2004-03-14 02:06:28 +00:00
Peter Wemm
8a412f314e Move the process_fork event out from under Giant. This one is easy,
since there are no consumers in the tree.  Document this.
2004-03-14 01:48:32 +00:00
Robert Watson
57848b8f65 Compare spppq to NULL instead of using spppq as a boolean. 2004-03-14 01:32:44 +00:00
Tom Rhodes
5a19f6d9d4 Fix some style bugs in previous commit.
Fix 'broken' ifdefs.
icc does not support profiling yet so remove unfinished code which was
supposed to help.

Submitted by:	netchild (original version)
Reviewed by:	ru
2004-03-14 01:29:05 +00:00
Matthew N. Dodd
cc4ca9da19 Define AF_ARP/PF_ARP. 2004-03-14 00:49:09 +00:00
Matthew N. Dodd
e952fa39de De-register. 2004-03-14 00:44:11 +00:00
Alan Cox
33651381b7 Allow swap-backed devices to run without Giant. 2004-03-14 00:24:30 +00:00
Poul-Henning Kamp
08aa348d34 TMPDIR is magic, use TMPMNT
Spotted by:	harold barker <hvb@fs0.sm.dsms.com>
2004-03-13 23:01:08 +00:00
Peter Wemm
78c45c5d66 Regen for mpsafe kse_create() 2004-03-13 22:32:17 +00:00
Peter Wemm
37814395c1 Push Giant down a little further:
- no longer serialize on Giant for thread_single*() and family in fork,
  exit and exec
- thread_wait() is mpsafe, assert no Giant
- reduce scope of Giant in exit to not cover thread_wait and just do
  vm_waitproc().
- assert that thread_single() family are not called with Giant
- remove the DROP/PICKUP_GIANT macros from thread_single() family
- assert that thread_suspend_check() s not called with Giant
- remove manual drop_giant hack in thread_suspend_check since we know it
  isn't held.
- remove the DROP/PICKUP_GIANT macros from thread_suspend_check() family
- mark kse_create() mpsafe
2004-03-13 22:31:39 +00:00
Peter Wemm
f8325b428c Re-kill ispcvt on amd64 - rc.d/syscons was fixed ages ago. 2004-03-13 22:18:34 +00:00
Peter Wemm
0fef69a2f9 MFp4: comment out options that don't exist so that they cannot be
accidently added to config files and be silently accepted.
Comment out one bogo-option that crept into NOTES.
2004-03-13 22:16:34 +00:00
Peter Wemm
75294710dd Diff reduction with current. Correct comment about ed etc. 2004-03-13 22:14:18 +00:00
Peter Wemm
73f3495386 Move the non-MD machine/dvcfg.h and machine/physio_proc.h to a common
MI area before they proliferate more.
2004-03-13 19:46:27 +00:00
Peter Wemm
f502c2725e Drastically clean up the legacy host-pci bridge table. We don't need
all the ancient Intel/VIA/SIS/etc chipsets on amd64 systems.  Even the
newer intel stuff won't need this since we use acpi by default and we
don't have all their magic programming information.  Just use a generic
"Host to PCI bridge" name if we ever hit this code.
2004-03-13 19:21:35 +00:00
Peter Wemm
10884719f8 MFi386: nuke pci_cfgintr 2004-03-13 19:19:13 +00:00
Peter Wemm
6e91f30b93 Reduce the scope of the Giant lock being held for non-mpsafe syscalls.
There was way too much code being covered.
2004-03-13 19:15:43 +00:00
Hiroki Sato
ce6fa90bd5 New release note:
64-bit time_t on FreeBSD/sparc64,
	em(4) hiccup during ifconfig em0 alias fixed,
	ng_vlan(4) netgraph node type,
	umass(4) ATAPI MMC commands support,
	rc.d/gbde_swap and gbde_swap_enable in rc.conf,
	mountd(8) -p <port> option,
	nologin(8) syslog support,
	OpenBSD's pf and the related userland utils imported,
	SIZE attribute in distinfo enabled by default.

(when you find errors or inappropriate descriptions, please let me know.)
2004-03-13 16:45:05 +00:00
Hiroki Sato
191ac18641 Fix a typo (s/acecss/access/). 2004-03-13 16:21:39 +00:00
Peter Edwards
ad50c14e4d Recognise the 82845G AGP bridge, and poke it appropriately at
attach/detach time.

Assigning the default behaviour to this particular device is
incorrect, corrupting the video BIOS aperture, and breaking
VESA support in the kernel and XFree86.

Reviewed By:	dfr
MFC after:	1 week
PR:		kern/62906
2004-03-13 16:06:32 +00:00
Ruslan Ermilov
2f00651dae Create hierarchy before installing a new kernel. This is needed
because we require that a new kernel be installed prior to a new
world, and we may need some new directories to succeed.

Once MFCed, this will also help those poor souls who redundantly
``mv /modules /modules.old'' in RELENG_4 before an installkernel.

Requested by:	many
MFC after:	3 days
2004-03-13 15:46:34 +00:00
Scott Long
11d905ecd8 Now that contigfree() does not require Giant, don't grab it in busdma. 2004-03-13 15:42:59 +00:00
Simon L. B. Nielsen
980a9b846b Add Epson Perfection 1670 to the list of supported devices. 2004-03-13 13:54:07 +00:00
Colin Percival
5de697a634 Don peril-sensitive glasses and throw the switch to move nologin(8) from
/sbin to /usr/sbin.  A symlink from /sbin/nologin -> /usr/sbin/nologin
is created for compatibility purposes.

This will probably not cause any problems, but anyone who is doing
anything particularly unusual with nologin(8) or shells in general might
be well advised to check that everything still works.

Bikesheds on:	cvs-all, current
2004-03-13 11:02:37 +00:00
Colin Percival
0bf534c254 Add missing spaces after "logconfig" in example lines.
PR:		docs/64082
Submitted by:	Tsurutani Naoki
MFC after:	3 days
2004-03-13 09:51:43 +00:00
Tim J. Robbins
2a5bb2de6b Add support for the Epson Perfection 1670 scanner. 2004-03-13 08:45:16 +00:00
Tim J. Robbins
7e035f1e26 Regen 2004-03-13 08:25:51 +00:00
Tim J. Robbins
1df4c96417 Add EPSON Perfection 1670 scanner. 2004-03-13 08:21:22 +00:00
Alan Cox
0fcfb99247 Remove GIANT_REQUIRED from contigfree(). 2004-03-13 07:09:15 +00:00
Robert Watson
7ad4bd536a Constify interactive_ports, as its value is static, and therefore doesn't
require synchronization.
2004-03-13 06:16:59 +00:00
Robert Watson
5d8dd01da2 Add annotations to mtx_lock(&Giant) in kern_select() and poll() that
we always grab Giant, even if we're actually only polling objects that
don't require giant.  Once socket locking is merged, there will be
strong motivation to fix this.
2004-03-13 05:58:57 +00:00
Robert Watson
4a1be2f9f9 Remove stale (unused) unit variables from if_tun and if_tap softc's. 2004-03-13 05:51:06 +00:00
Robert Watson
5a78f313fb Constify iso88025_broadcastaddr to make it clear no explicit
synchronization is required.
2004-03-13 05:46:26 +00:00
Robert Watson
2d3b3d66b4 Const-poison atmulticastaddr, which should be read but not modified.
While there, remove (caddr_t) casting of ethernet addresses, which
among other things discards the qualifier.  This makes it clear that
atmulticastaddr does not require synchronization.
2004-03-13 05:27:17 +00:00
Colin Percival
0d9f6ca061 Fix odd grammar in comment.
PR:		docs/64190
Submitted by:	Dan Langille
2004-03-13 05:16:42 +00:00
Colin Percival
3590bb99a0 Add standard copyright notice; fix style bugs. (Reported by bde)
Remove NO_NOLOGIN_LOG option now that we're off the root partition.
2004-03-13 04:41:40 +00:00
Colin Percival
432b2d9531 When nologin(8) is installed in /usr/sbin/, create a symlink from
/sbin/nologin for compatibility purposes.  Also, remove the NO_NOLOGIN_LOG
option; we don't need to worry about conserving space as much on the /usr
partition.

Note that usr.sbin/nologin is not yet hooked up to the build.
2004-03-13 04:39:45 +00:00
Bruce Evans
0249823ecb Align the offset in vn_rdwr_inchunks() so that at most the first and
the last chunk are misaligned relative to a MAXBSIZE byte boundary.
vn_rdwr_inchunks() is used mainly for elf core dumps, and elf sections
are usually perfectly misaligned relative to MAXBSIZE, and chunking
prevents the file system from doing much realigning.

This gives a surprisingly large speedup for core dumps -- from 50 to
13 seconds for a 512MB core dump here.  The pessimization was mostly
from an interaction of the misalignment with IO_DIRECT.  It increased
the number of i/o's for each chunk by a factor of 5 (3 writes and 2
read-before-writes instead of 1 write).
2004-03-13 02:56:27 +00:00
Brooks Davis
bc1470f1f1 Don't allow interfaces to be renamed to the empty string.
While I'm here, errors aren't bools.

Pointed out by:	hmp
2004-03-13 02:35:03 +00:00
Brooks Davis
196f7f54d2 Remove if_withname. It came in with the KAME import, but never got
used.  Should someone need its functionality, it's a really expensive
implementation of:
	ifnet_byindex(sdl->sdl_index)

Reviewed by:    bde, ume
2004-03-13 02:31:40 +00:00
Bruce Evans
ce5d505cc6 Fixed some English usage errors. 2004-03-13 00:56:11 +00:00
Bruce Evans
eb0e26192e Fixed description of cx device. Use similar wording for ctau device
(NETGRAPH_CRONYX toggles NETGRAPH support for both).  Fixed formatting
of description of cx device.

Discussed with:	rik
2004-03-13 00:46:33 +00:00
Christian Brueffer
ea1ba34196 Capitalize I/O 2004-03-13 00:12:09 +00:00
Colin Percival
7d85b9aa14 Fix 10 year old size-of-bcopy bug.
PR:		bin/43930
Submitted by:	Alan Barrett
Approved by:	rwatson (mentor)
MFNetBSD:	revision 1.35
MFC after:	3 days
2004-03-13 00:11:05 +00:00
Ruslan Ermilov
08b82c6b74 The print mask's first part is the base, not the total number of bit
identifiers.
2004-03-12 23:52:32 +00:00
Ruslan Ermilov
aec32663a4 Show the polling(4) flag on the interface. 2004-03-12 23:43:40 +00:00
Tom Rhodes
a122cca953 These are changes to allow to use the Intel C/C++ compiler (lang/icc)
to build the kernel. It doesn't affect the operation if gcc.

Most of the changes are just adding __INTEL_COMPILER to #ifdef's, as
icc v8 may define __GNUC__ some parts may look strange but are
necessary.

Additional changes:
 - in_cksum.[ch]:
   * use a generic C version instead of the assembly version in the !gcc
     case (ASM code breaks with the optimizations icc does)
     -> no bad checksums with an icc compiled kernel
     Help from:		andre, grehan, das
     Stolen from: 	alpha version via ppc version
     The entire checksum code should IMHO be replaced with the DragonFly
     version (because it isn't guaranteed future revisions of gcc will
     include similar optimizations) as in:
        ---snip---
          Revision  Changes    Path
          1.12      +1 -0      src/sys/conf/files.i386
          1.4       +142 -558  src/sys/i386/i386/in_cksum.c
          1.5       +33 -69    src/sys/i386/include/in_cksum.h
          1.5       +2 -0      src/sys/netinet/igmp.c
          1.6       +0 -1      src/sys/netinet/in.h
          1.6       +2 -0      src/sys/netinet/ip_icmp.c

          1.4       +3 -4      src/contrib/ipfilter/ip_compat.h
          1.3       +1 -2      src/sbin/natd/icmp.c
          1.4       +0 -1      src/sbin/natd/natd.c
          1.48      +1 -0      src/sys/conf/files
          1.2       +0 -1      src/sys/conf/files.amd64
          1.13      +0 -1      src/sys/conf/files.i386
          1.5       +0 -1      src/sys/conf/files.pc98
          1.7       +1 -1      src/sys/contrib/ipfilter/netinet/fil.c
          1.10      +2 -3      src/sys/contrib/ipfilter/netinet/ip_compat.h
          1.10      +1 -1      src/sys/contrib/ipfilter/netinet/ip_fil.c
          1.7       +1 -1      src/sys/dev/netif/txp/if_txp.c
          1.7       +1 -1      src/sys/net/ip_mroute/ip_mroute.c
          1.7       +1 -2      src/sys/net/ipfw/ip_fw2.c
          1.6       +1 -2      src/sys/netinet/igmp.c
          1.4       +158 -116  src/sys/netinet/in_cksum.c
          1.6       +1 -1      src/sys/netinet/ip_gre.c
          1.7       +1 -2      src/sys/netinet/ip_icmp.c
          1.10      +1 -1      src/sys/netinet/ip_input.c
          1.10      +1 -2      src/sys/netinet/ip_output.c
          1.13      +1 -2      src/sys/netinet/tcp_input.c
          1.9       +1 -2      src/sys/netinet/tcp_output.c
          1.10      +1 -1      src/sys/netinet/tcp_subr.c
          1.10      +1 -1      src/sys/netinet/tcp_syncache.c
          1.9       +1 -2      src/sys/netinet/udp_usrreq.c

          1.5       +1 -2      src/sys/netinet6/ipsec.c
          1.5       +1 -2      src/sys/netproto/ipsec/ipsec.c
          1.5       +1 -1      src/sys/netproto/ipsec/ipsec_input.c
          1.4       +1 -2      src/sys/netproto/ipsec/ipsec_output.c

          and finally remove
            sys/i386/i386        in_cksum.c
            sys/i386/include     in_cksum.h
        ---snip---
 - endian.h:
   * DTRT in C++ mode
 - quad.h:
   * we don't use gcc v1 anymore, remove support for it
   Suggested by:	bde (long ago)
 - assym.h:
   * avoid zero-length arrays (remove dependency on a gcc specific
     feature)
     This change changes the contents of the object file, but as it's
     only used to generate some values for a header, and the generator
     knows how to handle this, there's no impact in the gcc case.
   Explained by:	bde
   Submitted by:	Marius Strobl <marius@alchemy.franken.de>
 - aicasm.c:
   * minor change to teach it about the way icc spells "-nostdinc"
   Not approved by:	gibbs (no reply to my mail)
 - bump __FreeBSD_version (lang/icc needs to know about the changes)

Incarnations of this patch survive gcc compiles since a loooong time,
I use it on my desktop. An icc compiled kernel works since Nov. 2003
(exceptions: snd_* if used as modules), it survives a build of the
entire ports collection with icc.

Parts of this commit contains suggestions or submissions from
Marius Strobl <marius@alchemy.franken.de>.

Reviewed by:	-arch
Submitted by:	netchild
2004-03-12 21:45:33 +00:00
Tom Rhodes
06d6e4fcfe This are the build infrastructure changes to allow to use the
Intel C/C++ compiler (lang/icc) to build the kernel.

The icc CPUTYPE CFLAGS use icc v7 syntax, icc v8 moans about them, but
doesn't abort. They also produce CPU specific code (new instructions
of the CPU, not only CPU specific scheduling), so if you get coredumps
with signal 4 (SIGILL, illegal instruction) you've used the wrong
CPUTYPE.

Incarnations of this patch survive gcc compiles and my make universe.
I use it on my desktop.

To use it update share/mk, add
	/usr/local/intel/compiler70/ia32/bin	(icc v7, works)
or
	/usr/local/intel_cc_80/bin		(icc v8, doesn't work)
to your PATH, make sure you have a new kernel compile directory
(e.g. MYKERNEL_icc) and run
	CFLAGS="-O2 -ip" CC=icc make depend
	CFLAGS="-O2 -ip" CC=icc make
in it.

Don't compile with -ipo, the build infrastructure uses ld directly to
link the kernel and the modules, but -ipo needs the link step to be
performed with Intel's linker.

Problems with icc v8:
 - panic: npx0 cannot be emulated on an SMP system
 - UP: first start of /bin/sh results in a FP exception

Parts of this commit contains suggestions or submissions from
Marius Strobl <marius@alchemy.franken.de>.

Reviewed by:	silence on -arch
Submitted by:	netchild
2004-03-12 21:36:12 +00:00
Ruslan Ermilov
7700eb86e7 Do what the execve(2) manpage says and enforce what a Strictly
Conforming POSIX application should do by disallowing the argv
argument to be NULL.

PR:		kern/33738
Submitted by:	Marc Olzheim, Serge van den Boom
OK'ed by:	nectar
2004-03-12 21:06:20 +00:00