Commit Graph

131084 Commits

Author SHA1 Message Date
kmacy
b3f52e360c cxgb_stop is only called from cxgb_ioctl so:
- don't acquire port lock, already held in ioctl
- rename to cxgb_stop_locked
- switch callout_drain to callout_stop to avoid a hang from having the port lock held
2007-03-20 06:21:47 +00:00
jasone
ef1856bb83 Avoid using vsnprintf(3) unless MALLOC_STATS is defined, in order to
avoid substantial potential bloat for static binaries that do not
otherwise use any printf(3)-family functions. [1]

Rearrange arena_run_t so that the region bitmask can be minimally sized
according to constraints related to each bin's size class.  Previously,
the region bitmask was the same size for all run headers, which wasted
a measurable amount of memory.

Rather than making runs for small objects as large as possible, make
runs as small as possible such that header overhead stays below a
certain bound.  There are two exceptions that override the header
overhead bound:

	1) If the bound is impossible to honor, it is relaxed on a
	   per-size-class basis.  Since there is one bit of header
	   overhead per object (plus a constant), it is impossible to
	   achieve a header overhead less than or equal to 1/(# of bits
	   per object).  For the current setting of maximum 0.5% header
	   overhead, this relaxation comes into play for {2, 4, 8,
	   16}-byte objects, for which header overhead is (on 64-bit
	   systems) {7.1, 4.3, 2.2, 1.2}%, respectively.

	2) There is still a cap on small run size, still set to 64kB.
	   This comes into play for {1024, 2048}-byte objects, for which
	   header overhead is {1.6, 3.1}%, respectively.

In practice, this reduces the run sizes, which makes worst case
low-water memory usage due to fragmentation less bad.  It also reduces
worst case high-water run fragmentation due to non-full runs, but this
is only a constant improvement (most important to small short-lived
processes).

Reduce the default chunk size from 2MB to 1MB.  Benchmarks indicate that
the external fragmentation reduction makes 1MB the new sweet spot (as
small as possible without adversely affecting performance).

Reported by:	[1] kientzle
2007-03-20 03:44:10 +00:00
bms
a5925f917c Fix tinderbox; ng_ether needs to see if_findmulti(). 2007-03-20 03:15:43 +00:00
bms
9e60396f0b Use -M and -N for core and kernel image respectively. 2007-03-20 02:08:28 +00:00
njl
e12c81ac96 If we got an OBE/IBF event, we failed to re-enable the GPE. This would
cause the EC to stop handling future events because the GPE stayed masked.
Set a flag when queueing a GPE handler since it will ultimately re-enable
the GPE.  In all other cases, re-enable it ourselves.  I reworked the
patch from the submitter.

Submitted by:	Rong-en Fan <grafan@gmail.com>
2007-03-20 00:58:19 +00:00
bms
4ffc004901 Implement reference counting for ifmultiaddr, in_multi, and in6_multi
structures. Detect when ifnet instances are detached from the network
stack and perform appropriate cleanup to prevent memory leaks.

This has been implemented in such a way as to be backwards ABI compatible.
Kernel consumers are changed to use if_delmulti_ifma(); in_delmulti()
is unable to detect interface removal by design, as it performs searches
on structures which are removed with the interface.

With this architectural change, the panics FreeBSD users have experienced
with carp and pfsync should be resolved.

Obtained from:	p4 branch bms_netdev
Reviewed by:	andre
Sponsored by:	Garance A Drosehn
Idea from:	NetBSD
MFC after:	1 month
2007-03-20 00:36:10 +00:00
jkim
a8db64a5b3 Revert couple of changes from 1.51 and 1.52. Reading link status with BMSR
is okay for most of the chipsets but BCM5701 PHY does not seem to like it.
Set media to IFM_NONE if link is not up instead of the previous value.

Reported by:	Goran Lowkrantz (goran dot lowkrantz at ismobile dot com)
2007-03-19 23:17:39 +00:00
thompsa
260775bb6f etherbroadcastaddr is now unused. 2007-03-19 19:20:35 +00:00
thompsa
62bb42c44c M_BCAST & M_MCAST are now set by ether_input before passing to the bridge. 2007-03-19 19:13:02 +00:00
andre
9ddf9fc256 Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
brian
c235d1165c When we write extended attributes, assert that the inode hasn't
already been deleted.  The assertion is important to show that
we won't end up accounting for extended attribute blocks (using
fs_pendingblocks) in our subsequent call to fs_alloc().

Agreed verbally by: mckusick

MFC after:	3 weeks
2007-03-19 18:51:02 +00:00
andre
d5afb20001 Match up SYSCTL_INT declarations in style. 2007-03-19 18:42:27 +00:00
andre
693f8d3cab Space to tab in SB_* defines to match with rest of file. 2007-03-19 18:40:31 +00:00
bms
0ad9209c94 Clean up the ether_input() path by using the M_PROMISC flag.
Main points of this change:
 * Drop frames immediately if the interface is not marked IFF_UP.
 * Always trim off the frame checksum if present.
 * Always use M_VLANTAG in preference to passing 802.1Q frames
   to consumers.
 * Use __func__ consistently for KASSERT().
 * Use the M_PROMISC flag to detect situations where ether_input()
   may reenter itself on the same call graph with the same mbuf which
   was promiscuously received on behalf of subsystems such as
   netgraph, carp, and vlan.
 * 802.1P frames (that is, VLAN frames with an ID of 0) will now be
   passed to layer 3 input paths.
 * Deal with the special case for CARP in a sane way.

This is a significant rewrite of code on the critical path. Please report
any issues to me if they arise. Frames will now only pass through dummynet
if M_PROMISC is cleared, to avoid problems with re-entry.

The handling of CARP needs to be revisited architecturally. The M_PROMISC
flag may potentially be demoted to a link-layer flag only as it is in
NetBSD, where the idea originated.

Discussed on:	net
Idea from:	NetBSD
Reviewed by:	yar
MFC after:	1 month
2007-03-19 18:39:36 +00:00
andre
515a501549 Maintain a pointer and offset pair into the socket buffer mbuf chain to
avoid traversal of the entire socket buffer for larger offsets on stream
sockets.

Adjust tcp_output() make use of it.

Tested by:	gallatin
2007-03-19 18:35:13 +00:00
bms
52a90d88fa Document net.link.tap.up_on_open.
PR:		110383
Submitted by:	Frank Behrens
MFC after:	2 weeks
2007-03-19 18:27:00 +00:00
bms
9d0975ba99 Add a sysctl net.link.tap.up_on_open which defaults to zero; when it
is non-zero, tap(4) instances will be marked IFF_UP on attach.

PR:		110383
Requested by:	Frank Behrens
MFC after:	2 weeks
2007-03-19 18:17:31 +00:00
bms
70b3eda27c Make clean for !INET6.
Remove non-FreeBSD code.
Sort includes.
2007-03-19 18:13:02 +00:00
yar
33d5501a32 Now <net/if_arp.h> is unused here. 2007-03-19 18:01:39 +00:00
bms
21bccff9b0 Teach pfsync(4) that its member interfaces may go away.
This change partially resolves the issue in the PR. Further architectural
fixes, in the form of reference counting, are needed.

PR:		86848
Reviewed by:	yar
MFC after:	1 month
2007-03-19 17:52:15 +00:00
yar
b5f0c3495e if_vlan no more depends on INET. 2007-03-19 17:34:31 +00:00
yar
2396d74a2c Fix a nameless constant: 6 -> ETHER_ADDR_LEN
Tested with:	md5(1)
2007-03-19 16:58:07 +00:00
bms
e6b26f1d88 Merge latest ifmcstat (with changes for FreeBSD).
Possibly merge or split with netstat -g.

TODO: Make !defined(INET6) clean.
TODO: Add -M/-N instead of -k.
TODO: Use sysctls instead of kvm.

Obtained from:	KAME
MFC after:	2 weeks
2007-03-19 16:45:06 +00:00
brueffer
330d710495 One more s/ethernet/Ethernet/ I missed in the previous revision. 2007-03-19 16:36:34 +00:00
yar
3590987ee8 Now that this driver uses ether_ioctl(), it no longer needs
the INET related include files.
2007-03-19 16:31:28 +00:00
ariff
11b8264f96 Destroy channel DMA tag during resource cleanup. 2007-03-19 16:06:26 +00:00
trhodes
ec817b37e0 Improve previous commit by using setusercontext(3) and removing the group
option.  Bump doc date for manual page changes.

Reviewed by:	rwatson, ru, will (older version)
2007-03-19 12:12:53 +00:00
delphij
4aa02da9fa libarchive.so.3 was turned to libarchive.so.4 by
the src/lib/libarchive/Makefile,v 1.59 change, so
reflect this.
2007-03-19 11:15:53 +00:00
rrs
56faff0a74 Adds a hash table to speed local address lookup
on a per VRF basis (BSD has only one VRF currently).
Hash table is sized to 16 but may need to be adjusted
for machines with large numbers of addresses.
Reviewed by:	gnn
2007-03-19 11:11:16 +00:00
delphij
d9b60cf6fa - Remove an unneeded comma
- Remove a redundant .Xc
 - Spell "Largely" as it should.
2007-03-19 07:49:11 +00:00
rrs
af970e3016 - errno -> becomes error in sctp_output.c and sctputil.c
- SB_CLEAR macro defined and used for sb clearing.
- Fix for CMT express_sack_handling did not do proper
  pseudo-cumack updates.
- Get rid of extraneous function that was never used ip_2_ip6_hdr()
- Fixed source address selection bug (initialization problem).
- Source address selection debug added.
2007-03-19 06:53:02 +00:00
sam
40843dd888 display two new Intel feature bits
Submitted by:	"Rui Paulo" <rpaulo@gmail.com>
MFC after:	2 weeks
2007-03-19 05:23:42 +00:00
jkoshy
b5f826c9a6 Correct a typo.
Submitted by:	 Kai Wang <kaiw27 at gmail dot com>
2007-03-19 03:52:20 +00:00
simokawa
3de30923f8 Poll only while interrupt is disabled.
MFC: 3 days after
2007-03-19 03:41:27 +00:00
simokawa
60fa0cb729 Wait SCLK to be stable after LPS enabled.
This should fix NMI problem in fwphy_rddata().

PR: kern/94146 kern/100356
MFC: after 3 days
2007-03-19 03:35:45 +00:00
kensmith
2c33182610 Bump __FreeBSD_version after changes to how insmntque(), getnewvnode(), and
vfs_hash_insert() work.
2007-03-19 00:19:35 +00:00
rik
4e46a492aa Give a chance for packet to appear with a correct input interfaces
in case of multiple interfaces with the same MAC in the same bridge.
This commit do not solve the entire problem. Only case where packet
arrived from such interface.

PR:     kern/109815
MFC after:      7 days
Submitted by:   Eygene Ryabinkin and rik@
Discussed with: bms@, thompsa@, yar@
2007-03-18 23:28:53 +00:00
bms
b7e4c99744 In IPv4 fast forwarding path, send ICMP unreachable messages for
routes which have RTF_REJECT set *and* a zero expiry timer.

PR:		kern/109246
MFC after:	10 days
Submitted by:	Ingo Flaschberger
2007-03-18 23:05:20 +00:00
julian
f0adcfa59c More corrections, this time from Wojciech Koszek 2007-03-18 19:28:44 +00:00
julian
218f75032c Spelling and whitespace fixes from Dunne Whitty 2007-03-18 18:57:38 +00:00
ariff
a4a010cdbf Enforce sample size alignment on first direct-copy channel. 2007-03-18 18:26:40 +00:00
rwatson
c7032e862d Prefer more traditional spellings of some words in comments. 2007-03-18 16:49:50 +00:00
bms
1342a3e1d5 Point out that PIM is the way to go.
MFC after:	3 days
2007-03-18 15:34:57 +00:00
bms
d0cd4f87d4 Document a major IGMP related annoyance.
Add comments about IGMP bits which will go when we take SSM.
Xref multicast(4).

MFC after:	3 days
2007-03-18 15:31:06 +00:00
nyan
7b95a6e570 MFi386: revision 1.650
Eliminate an unused parameter.
2007-03-18 03:25:40 +00:00
pjd
d128126120 Don't deny unmounting file systems for jailed processes immediately, allow
prison_priv_check() to decide what to do.

This change is suppose not to change current (security) behaviour
in any way.

This change is simlar to the change of PRIV_VFS_MOUNT in previous revision.
2007-03-18 02:39:19 +00:00
njl
a8ba35fb00 Disable burst mode by default. Testing has shown that while it works on
most systems, it causes the EC not to respond for some Acer and Compaq/HP
laptops.  This is the default value for Linux also.  For systems that need
it, burst mode can be enabled via the tunable/sysctl:
	debug.acpi.ec.burst="1"
2007-03-18 01:03:03 +00:00
njl
29d911985b Explain more about the "C" qualifier for Celsius.
MFC after:	3 days
2007-03-18 00:57:07 +00:00
jeff
07c8782e65 - Handle the case where slptime == runtime.
Submitted by:	Atoine Brodin
2007-03-17 23:32:48 +00:00
alc
70052005d2 Eliminate an unused parameter. 2007-03-17 19:42:06 +00:00