5 years agovnconfig -l: handle gracefully missing regular file
Stathis Kamperis [Mon, 2 Mar 2009 09:16:19 +0000 (09:16 +0000)]
vnconfig -l: handle gracefully missing regular file

Check if VNIOCGET failed to retrieve the path of the regular
file, that is associated with the respective vn device. If so,
treat this kind of error as non-fatal (with respect to the rest
of the vn devices).

5 years agovnconfig: cleanup a bit
Stathis Kamperis [Mon, 2 Mar 2009 21:26:14 +0000 (21:26 +0000)]
vnconfig: cleanup a bit

- constify
- remove bogus cast
- style(9)
- fix typo in comment

5 years agolocaltime(3): Switch from GMT to UTC as the default time zone string.
Sascha Wildner [Sun, 22 Mar 2009 18:22:53 +0000 (19:22 +0100)]
localtime(3): Switch from GMT to UTC as the default time zone string.

5 years agoUse .Dv for ioctls in several manual pages.
Sascha Wildner [Sun, 22 Mar 2009 18:12:57 +0000 (19:12 +0100)]
Use .Dv for ioctls in several manual pages.

5 years agoArgh, this wasn't meant to be committed.
Hasso Tepper [Sun, 22 Mar 2009 12:26:08 +0000 (14:26 +0200)]
Argh, this wasn't meant to be committed.

5 years agoFix target machine define in compiler.
Hasso Tepper [Sun, 22 Mar 2009 09:49:50 +0000 (11:49 +0200)]
Fix target machine define in compiler.

Make(1) doesn't like "target" as a name for variable, seems.

5 years agostat(2): sort error codes
Stathis Kamperis [Sat, 7 Mar 2009 14:55:41 +0000 (14:55 +0000)]
stat(2): sort error codes

5 years agottyname(3): Bump .Dd
Sascha Wildner [Sun, 22 Mar 2009 09:10:10 +0000 (10:10 +0100)]
ttyname(3): Bump .Dd

5 years agottyname(3): mention error codes
Stathis Kamperis [Sat, 7 Mar 2009 17:57:26 +0000 (17:57 +0000)]
ttyname(3): mention error codes

5 years agoisatty(3): mention return values and error codes
Stathis Kamperis [Sat, 7 Mar 2009 15:58:30 +0000 (15:58 +0000)]
isatty(3): mention return values and error codes

5 years agoComment on the purpose of _Exit()
Stathis Kamperis [Sun, 8 Mar 2009 04:44:50 +0000 (04:44 +0000)]
Comment on the purpose of _Exit()

5 years agostdint(7): Update FreeBSD CVS ID and bump .Dd.
Sascha Wildner [Sun, 22 Mar 2009 09:03:56 +0000 (10:03 +0100)]
stdint(7): Update FreeBSD CVS ID and bump .Dd.

5 years agostdint(7): import manual page from FreeBSD
Stathis Kamperis [Sun, 8 Mar 2009 05:29:04 +0000 (05:29 +0000)]
stdint(7): import manual page from FreeBSD

Also document macros for minimum-width integer constants
and macros for greatest-width integer constants, which
aren't mentioned in the original manual page.

5 years agoflockfile(3): Update FreeBSD CVS ID, bump .Dd and add some references.
Sascha Wildner [Sun, 22 Mar 2009 09:01:29 +0000 (10:01 +0100)]
flockfile(3): Update FreeBSD CVS ID, bump .Dd and add some references.

5 years agogetc(3)/putc(3): Bump .Dd
Sascha Wildner [Sun, 22 Mar 2009 08:57:41 +0000 (09:57 +0100)]
getc(3)/putc(3): Bump .Dd

5 years agoflockfile(3): import manual page from FreeBSD
Stathis Kamperis [Sun, 8 Mar 2009 06:55:22 +0000 (06:55 +0000)]
flockfile(3): import manual page from FreeBSD

5 years agosysconf(3): document _SC_PAGESIZE sysconf option
Stathis Kamperis [Sun, 8 Mar 2009 10:49:18 +0000 (10:49 +0000)]
sysconf(3): document _SC_PAGESIZE sysconf option

5 years agogetc(3) and putc(3): document xxx_unlocked() functions from FreeBSD
Stathis Kamperis [Tue, 10 Mar 2009 19:22:26 +0000 (19:22 +0000)]
getc(3) and putc(3): document xxx_unlocked() functions from FreeBSD

- getc_unlocked()
- getchar_unlocked()
- putc_unlocked()
- putchar_unlocked()

5 years agogetc(3) and putc(3): macros are functions now
Stathis Kamperis [Tue, 10 Mar 2009 19:36:31 +0000 (19:36 +0000)]
getc(3) and putc(3): macros are functions now

5 years agoaio_write(2): fix capital letter in the middle of sentence
Stathis Kamperis [Wed, 11 Mar 2009 11:54:53 +0000 (11:54 +0000)]
aio_write(2): fix capital letter in the middle of sentence

5 years agoInstall ciss(4) headers to /usr/include so that userland can find cissio.h.
Sascha Wildner [Sun, 22 Feb 2009 12:21:57 +0000 (13:21 +0100)]
Install ciss(4) headers to /usr/include so that userland can find cissio.h.

5 years agolocaltime(3) & zic(8): Clean up definitions a bit.
Sascha Wildner [Sun, 22 Mar 2009 08:24:30 +0000 (09:24 +0100)]
localtime(3) & zic(8): Clean up definitions a bit.

5 years agonetisr: Set M_HASH and pkthdr.hash if software calculates the packet hash.
Sepherosa Ziehau [Sun, 22 Mar 2009 08:10:42 +0000 (16:10 +0800)]
netisr: Set M_HASH and pkthdr.hash if software calculates the packet hash.

5 years agoemx(4): Pass packet info to ether_input_chain()
Sepherosa Ziehau [Sun, 22 Mar 2009 07:45:14 +0000 (15:45 +0800)]
emx(4): Pass packet info to ether_input_chain()

5 years agoemx(4): Correct RSS configuration.
Sepherosa Ziehau [Sun, 22 Mar 2009 04:59:15 +0000 (12:59 +0800)]
emx(4): Correct RSS configuration.

5 years agoether_input: Gather some RSS debug statistics.
Sepherosa Ziehau [Sat, 21 Mar 2009 12:36:28 +0000 (20:36 +0800)]
ether_input: Gather some RSS debug statistics.

5 years agojme(4): Don't deliver packet info if the packet has unknown layer3
Sepherosa Ziehau [Sat, 21 Mar 2009 11:48:13 +0000 (19:48 +0800)]
jme(4): Don't deliver packet info if the packet has unknown layer3
protocol and is not a fragment.

5 years agojme(4): Allow stats to be writable
Sepherosa Ziehau [Sat, 21 Mar 2009 11:30:52 +0000 (19:30 +0800)]
jme(4): Allow stats to be writable

5 years agoip_demux: Add ip_mport_pktinfo() to map IP packets using packet info
Sepherosa Ziehau [Sat, 21 Mar 2009 10:38:44 +0000 (18:38 +0800)]
ip_demux: Add ip_mport_pktinfo() to map IP packets using packet info

5 years agojme(4): Pass packet info to ether_input_chain()
Sepherosa Ziehau [Sat, 21 Mar 2009 09:49:04 +0000 (17:49 +0800)]
jme(4): Pass packet info to ether_input_chain()

5 years agojme(4): Disable TXCSUM by default to improve bulk data transmit performance
Sepherosa Ziehau [Sat, 21 Mar 2009 06:11:20 +0000 (14:11 +0800)]
jme(4): Disable TXCSUM by default to improve bulk data transmit performance

It looks like when the hardware does the TX checksum in the internal TX
FIFO, the DMA read logic is kinda changed; the bursty read effect seems
to get discounted.

After the TX csum offloading is disabled, the device bulk data transmit
speed finally reach gigE line speed and the tiny packets transmit
performance is only reduced marginally (-6Kpps~-8Kpps).

5 years agotoeplitz: Promote net/toeplitz.c to 'standard' file
Sepherosa Ziehau [Sat, 21 Mar 2009 05:06:48 +0000 (13:06 +0800)]
toeplitz: Promote net/toeplitz.c to 'standard' file

Major part of net/toeplitz.c is not compiled if RSS kernel option
is not specified; only necessary symbols for device drivers are
compiled, so I don't need to put "#ifdef RSS" all over the device
drivers code.

5 years agotoeplitz: Hash function renaming
Sepherosa Ziehau [Sat, 21 Mar 2009 04:19:27 +0000 (12:19 +0800)]
toeplitz: Hash function renaming

toeplitz_hash     -> toeplitz_rawhash_addr
toeplitz_hash_tcp -> toeplitz_rawhash_addrport

Add toeplitz_hash() which mask the raw Toeplitz hash value with
ncpus2_mask.  This function will be used by device drivers too.

5 years agojme(4): Don't mess with M_PKTHDR
Sepherosa Ziehau [Sat, 21 Mar 2009 03:43:46 +0000 (11:43 +0800)]
jme(4): Don't mess with M_PKTHDR

5 years agoether_input/ktr: Add ether_input_chain end KTR into several proper places.
Sepherosa Ziehau [Sat, 21 Mar 2009 03:10:52 +0000 (11:10 +0800)]
ether_input/ktr: Add ether_input_chain end KTR into several proper places.

5 years agoether_input/rss: Pass packet info to ether_input_chain.
Sepherosa Ziehau [Sat, 21 Mar 2009 02:46:12 +0000 (10:46 +0800)]
ether_input/rss: Pass packet info to ether_input_chain.

- Pass packet info to ether_input_chain(), if netisr_find_pktinfo_port()
  could locate the msgport, then short circuit the rest of the ether_input
  code and dispatch the ethernet packet directly.
- Revoke the pi_hash field in pktinfo and extend the pktinfo_portfn_t to
  accpet an mbuf parameter, so that pktinfo_portfn_t could change the mbuf
  hash value.  e.g. pktinfo_portfn_cpu0() will always set m_pkthdr.hash
  to 0.
- Adjust ether_input_chain() callers accordingly.

5 years agombuf: Add M_HASH mbuf flag and use the 'pad' field in pkthdr as 'hash'
Sepherosa Ziehau [Sat, 21 Mar 2009 01:35:09 +0000 (09:35 +0800)]
mbuf: Add M_HASH mbuf flag and use the 'pad' field in pkthdr as 'hash'

'hash' field in pkthdr is valid iff M_HASH is set.

5 years agoether_input: Factor out ether_dispatch()
Sepherosa Ziehau [Fri, 20 Mar 2009 11:41:09 +0000 (19:41 +0800)]
ether_input: Factor out ether_dispatch()

This function send the ethernet packet to the target msgport or
just queue it to the mbuf chain.

5 years agonetisr: Add pktinfo struct; add new netisr method to find msgport using pktinfo
Sepherosa Ziehau [Fri, 20 Mar 2009 11:17:58 +0000 (19:17 +0800)]
netisr: Add pktinfo struct; add new netisr method to find msgport using pktinfo

The new netisr method, ni_mport_pktinfo, returns NULL if the passed in pktinfo
does not contain enough information to determine the msgport.

5 years agoRename lwkt_portfn_t to pkt_portfn_t
Sepherosa Ziehau [Thu, 19 Mar 2009 11:09:43 +0000 (19:09 +0800)]
Rename lwkt_portfn_t to pkt_portfn_t

Well, this function actually maps a network packet to a lwkt_port

5 years agojme(4): Using code logic to create redirect table.
Sepherosa Ziehau [Wed, 18 Mar 2009 13:11:19 +0000 (21:11 +0800)]
jme(4): Using code logic to create redirect table.

- Avoid using magic number when creating redirect table, apply
  code logic instead.
- Add comment about how the redirect table is filled.

5 years agojme(4): Get key from Toeplitz code
Sepherosa Ziehau [Wed, 18 Mar 2009 12:20:27 +0000 (20:20 +0800)]
jme(4): Get key from Toeplitz code

5 years agotoeplitz: Add toeplitz_get_key() and nuke toeplitz_get_keyseed()
Sepherosa Ziehau [Wed, 18 Mar 2009 12:17:42 +0000 (20:17 +0800)]
toeplitz: Add toeplitz_get_key() and nuke toeplitz_get_keyseed()

toeplitz_get_key() hides more implementation details (i.e. key
seed replication) from callers than toeplitz_get_keyseed().

5 years agopax(1): Remove argument names from prototypes.
Sascha Wildner [Wed, 18 Mar 2009 10:39:52 +0000 (11:39 +0100)]
pax(1): Remove argument names from prototypes.

5 years agopax(1): Fix WARNS regression
Sascha Wildner [Wed, 18 Mar 2009 10:30:53 +0000 (11:30 +0100)]
pax(1): Fix WARNS regression

5 years agomotd(5) manual page: "Update" the example for DragonFly.
Sascha Wildner [Tue, 17 Mar 2009 21:43:45 +0000 (22:43 +0100)]
motd(5) manual page: "Update" the example for DragonFly.

Reported-by: free-coder
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1316>

5 years agoshlock(1) manual page: Fix typo
Sascha Wildner [Tue, 17 Mar 2009 21:40:33 +0000 (22:40 +0100)]
shlock(1) manual page: Fix typo

Reported-by: free-coder
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1316>

5 years agoCreate destination on copy if it doesn't exists.
Hasso Tepper [Tue, 17 Mar 2009 14:41:03 +0000 (16:41 +0200)]
Create destination on copy if it doesn't exists.

Should conform to SUSv3 and fixes a lot of building failures in pkgsrc.

Digged-out-by: Alex Hornung
5 years agoatphy: Reset PHY after extracting MII capabilities, since reset will
Sepherosa Ziehau [Tue, 17 Mar 2009 12:58:18 +0000 (20:58 +0800)]
atphy: Reset PHY after extracting MII capabilities, since reset will
trigger auto negotiation, which depends on MII capabilities.

5 years agoale(4): Don't read/write 1000baseT specific MII registers on 10/100M only device
Sepherosa Ziehau [Tue, 17 Mar 2009 12:53:37 +0000 (20:53 +0800)]
ale(4): Don't read/write 1000baseT specific MII registers on 10/100M only device

It looks like on 10/100M only device they do contain "valid" 1000baseT values.

5 years agobce/bge(4): Allow txcsum/rxcsum to be set individually
Sepherosa Ziehau [Tue, 17 Mar 2009 12:41:48 +0000 (20:41 +0800)]
bce/bge(4): Allow txcsum/rxcsum to be set individually

5 years agotcp_wrapper: Make sure that the buf has more than 1byte, before calling fgets()
Sepherosa Ziehau [Tue, 17 Mar 2009 11:46:52 +0000 (19:46 +0800)]
tcp_wrapper: Make sure that the buf has more than 1byte, before calling fgets()

FreeBSD-PR: kern/132705
Obtained-from: OpenBSD

5 years agoether_demux: Add comment
Sepherosa Ziehau [Tue, 17 Mar 2009 11:09:27 +0000 (19:09 +0800)]
ether_demux: Add comment

5 years agobridge: If we could enter bridge_input, then M_ETHER_BRIDGED will not be set.
Sepherosa Ziehau [Tue, 17 Mar 2009 11:04:32 +0000 (19:04 +0800)]
bridge: If we could enter bridge_input, then M_ETHER_BRIDGED will not be set.

5 years agoether_input: Add M_ETHER_VLANCHECKED
Sepherosa Ziehau [Tue, 17 Mar 2009 11:00:37 +0000 (19:00 +0800)]
ether_input: Add M_ETHER_VLANCHECKED

- In ether_input_handler(), if ether_vlancheck() has not been called
  (M_ETHER_VLANCHECKED) call it there; this could happen with upcoming
  RSS changes.
- Clear ethernet protocol mbuf flags before entering upper layer.

5 years agoether_input: Factor out ether_vlancheck()
Sepherosa Ziehau [Mon, 16 Mar 2009 12:39:53 +0000 (20:39 +0800)]
ether_input: Factor out ether_vlancheck()

5 years agoAdd M_LENCHECKED mbuf flag.
Sepherosa Ziehau [Sun, 15 Mar 2009 09:40:24 +0000 (17:40 +0800)]
Add M_LENCHECKED mbuf flag.

This flag indicates that various protocol length fields of the packet
are checked.  It is only used by IPv4 currently (ip_lengthcheck()).

5 years agoDefine M_ETHER_BRIDGED to M_PROTO1
Sepherosa Ziehau [Sun, 15 Mar 2009 08:42:07 +0000 (16:42 +0800)]

5 years agoDuplicated M_PROTO1 in M_COPYFLAGS
Sepherosa Ziehau [Sun, 15 Mar 2009 08:31:44 +0000 (16:31 +0800)]
Duplicated M_PROTO1 in M_COPYFLAGS

5 years ago802.11: Clear M_PROTO? flags before calling ifnet.if_input
Sepherosa Ziehau [Sun, 15 Mar 2009 08:19:00 +0000 (16:19 +0800)]
802.11: Clear M_PROTO? flags before calling ifnet.if_input

5 years agoDefer ethernet mcast/bcast address detection to ether_input_handler()
Sepherosa Ziehau [Sun, 15 Mar 2009 03:20:40 +0000 (11:20 +0800)]
Defer ethernet mcast/bcast address detection to ether_input_handler()

5 years agoip_demux: If RSS kernel option is set, use Toeplitz hash function
Sepherosa Ziehau [Sat, 14 Mar 2009 12:59:11 +0000 (20:59 +0800)]
ip_demux: If RSS kernel option is set, use Toeplitz hash function

5 years agoSync zoneinfo database with tzdata2009c from elsie.
Sascha Wildner [Mon, 16 Mar 2009 21:52:42 +0000 (22:52 +0100)]
Sync zoneinfo database with tzdata2009c from elsie.

northamerica:   8.26 -> 8.27

Cuba started DST one week earlier than previously thought.

5 years agoRemove CVS Id from DragonFly fortune file
Matthias Schmidt [Mon, 16 Mar 2009 14:26:06 +0000 (15:26 +0100)]
Remove CVS Id from DragonFly fortune file

Remove the ID as the information is now misleading.  The content is
newer as the ID suggests.

Spotted-by: hasso@
5 years agoHAMMER VFS - rebalancing, zero unused fields in boundary element
Matthew Dillon [Mon, 16 Mar 2009 04:45:57 +0000 (21:45 -0700)]
HAMMER VFS - rebalancing, zero unused fields in boundary element

The rebalancer was not zeroing certain unused fields in a newly created
boundary element when truncating an existing internal B-Tree node.

While these fields are not used by the filesystem for boundary elements,
they are still expected to be zero'd out.

5 years agoHAMMER VFS - Add a B-Tree rebalancing feature.
Matthew Dillon [Sun, 15 Mar 2009 22:28:38 +0000 (15:28 -0700)]
HAMMER VFS - Add a B-Tree rebalancing feature.

This is the initial commit of B-Tree rebalancing support for HAMMER.
The rebalancer may be run using the 'hammer rebalance' utility directive.

The leafs in a HAMMER B-Tree all reside at the same depth.  Insertions and
deletions only collapse the B-Tree when a leaf node becomes empty and then
only if any necessary recursion (possibly reaching the root node) succeeds.
No balancing occurs during normal operation and B-Tree nodes can wind up
with wildly different element counts which bloats the tree and makes
searches less efficient.

The rebalancer effectively does a depth-first traversal of the B-Tree,
visiting leaf nodes first and parent nodes as a trailing function on the
way back up the tree.  For any given internal node the sum total of
elements contained in its children is divided by the number of children.
The effective number of children is reduced as is practical to obtain a 75%
fill level.  The elements are then packed into the children and any
wholely empty children left over are deleted.  The rebalancer does not
create new B-Tree nodes.

Element packing is fairly complex, requiring tracked cursors, on-media
parent pointers, mirror TIDs, and boundary elements to be updated.  The
rebalancer must hold a large number of B-Tree nodes exclusively locked
while running.

5 years agoRemove conditionals based on #if defined(i386) which wrapped code which was
Matthew Dillon [Sun, 15 Mar 2009 19:26:06 +0000 (12:26 -0700)]
Remove conditionals based on #if defined(i386) which wrapped code which was
unused.  Gcc does not define 'i386' anyway, it uses __i386__.

This also fixes some clang issues.

Requested-by: Alex Hornung
5 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Sun, 15 Mar 2009 00:35:39 +0000 (17:35 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

5 years agoHAMMER Utility: Change B-Tree, inodes, and dir reblocking params, add rebalance
Matthew Dillon [Sun, 15 Mar 2009 00:22:40 +0000 (17:22 -0700)]
HAMMER Utility: Change B-Tree, inodes, and dir reblocking params, add rebalance

* The normal cleanup operations now reblock all B-Tree, inode, and directory
  elements in the normal daily reblock mode instead of only the ones in
  fragmented big-blocks.  Bulk data is handled by the 30-day recopy mode.

* Add a new directive 'rebalance' (a future VFS ioctl).  This directive will
  tell the HAMMER VFS to rebalance the B-Tree.  HAMMER B-Trees are always
  balanced by depth but degenerate cases with minimal elements in a node
  can easily build up.  The new directive will rebalance the elements in
  each B-Tree node.

* The hammer cleanup directive was not reblocking directories.  Now it does.

It usually does not take very long to reblock the B-Tree nodes, inodes, or
directory elements.  Reblocking these unconditionally, instead of just
reblocking fragmented allocation areas, keeps the B-Tree in a more optimal
layout, though there is still a lack of correlation between inode numbers
and directory scan order.

5 years agorss: Add RSS_DEBUG kernel option
Sepherosa Ziehau [Sat, 14 Mar 2009 09:02:12 +0000 (17:02 +0800)]
rss: Add RSS_DEBUG kernel option

5 years agorss: Add Toeplitz hash function
Sepherosa Ziehau [Sat, 14 Mar 2009 08:14:45 +0000 (16:14 +0800)]
rss: Add Toeplitz hash function

5 years agoip_demux: Wrap INP_MPORT_HASH_{TCP,UDP}() around INP_MPORT_HASH()
Sepherosa Ziehau [Sat, 14 Mar 2009 06:11:16 +0000 (14:11 +0800)]
ip_demux: Wrap INP_MPORT_HASH_{TCP,UDP}() around INP_MPORT_HASH()

5 years agoip_demux: Test IN_MULTICAST() if RSS kernel option is not enabled.
Sepherosa Ziehau [Sat, 14 Mar 2009 06:01:29 +0000 (14:01 +0800)]
ip_demux: Test IN_MULTICAST() if RSS kernel option is not enabled.

5 years agoAdd static ARP support.
Sepherosa Ziehau [Sat, 14 Mar 2009 03:41:35 +0000 (11:41 +0800)]
Add static ARP support.

Obtained-from: FreeBSD

5 years agoemx(4): Fix comment
Sepherosa Ziehau [Sat, 14 Mar 2009 02:56:25 +0000 (10:56 +0800)]
emx(4): Fix comment

5 years agoifconfig(8): Remove string of if_flags, which will never be adopted.
Sepherosa Ziehau [Sat, 14 Mar 2009 02:54:42 +0000 (10:54 +0800)]
ifconfig(8): Remove string of if_flags, which will never be adopted.

5 years agojme(4): Correct SIOCSIFCAP ioctl handling
Sepherosa Ziehau [Sat, 14 Mar 2009 02:22:25 +0000 (10:22 +0800)]
jme(4): Correct SIOCSIFCAP ioctl handling

- Upper layer will always check if_capabilities against ifreq,
  so we don't need to check if_capabilities again.
- When IFCAP_RSS changes, the jme_init() should be called only if
  the interface is running.
- Don't use compile time condition for the code handling IFCAP_RSS.

5 years agoemx(4): Support IFCAP_RSS
Sepherosa Ziehau [Sat, 14 Mar 2009 02:20:53 +0000 (10:20 +0800)]
emx(4): Support IFCAP_RSS

5 years agorss: Add RSS kernel option; Add IFCAP_RSS iface capability
Sepherosa Ziehau [Fri, 13 Mar 2009 12:46:37 +0000 (20:46 +0800)]
rss: Add RSS kernel option; Add IFCAP_RSS iface capability

Convert jme(4) to use the new IFCAP_RSS.

5 years agoUpdate cpdup rev to 1.12.
Matthew Dillon [Fri, 13 Mar 2009 04:15:46 +0000 (21:15 -0700)]
Update cpdup rev to 1.12.

5 years agoFix kernel panic on NULL pointer deref w/ certain ktrace commands, allow -c -f.
Matthew Dillon [Thu, 12 Mar 2009 16:15:10 +0000 (09:15 -0700)]
Fix kernel panic on NULL pointer deref w/ certain ktrace commands, allow -c -f.

Fix a kernel panic on a NULL pointer dereference with certain ktrace -c

Allow the -c -f <file> combination (taken from FreeBSD).

Submitted-by: Stathis Kamperis <beket>
5 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Thu, 12 Mar 2009 16:08:55 +0000 (09:08 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

5 years agoHAMMER VFS - return shorter-form softlinks "@@-1:%05d" when appropriate.
Matthew Dillon [Thu, 12 Mar 2009 16:03:08 +0000 (09:03 -0700)]
HAMMER VFS - return shorter-form softlinks "@@-1:%05d" when appropriate.

The HAMMER VFS supports a short "@@-1:%05d" for master PFSs.  Adjust the
HAMMER VFS to return softlinks in that form and adjust the hammer cleanup
code to recognize softlinks in that form.

Note that PFS softlinks are created as "@@PFS%05d", but the HAMMER VFS
presents them in an expanded form which allows the HAMMER VFS to reflect
the latest synchronized transaction id on slave PFSs.  This also prevents
slave PFSs from confusing DragonFly's namecache as each snapshot will appear
to be an entirely different path.

Unfortunately this does mean that cpdup/cp/tar will pickup a translated
softlink and not the actual one.  It's just something else to remember
about these 'weird' PFS mount points.

Suggested-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>
5 years agoemx(4): Move EMX_RSS_DEBUG into opt_emx.h
Sepherosa Ziehau [Thu, 12 Mar 2009 12:00:55 +0000 (20:00 +0800)]
emx(4): Move EMX_RSS_DEBUG into opt_emx.h

5 years agojme(4): Move JME_RSS_DEBUG into opt_jme.h
Sepherosa Ziehau [Thu, 12 Mar 2009 11:24:52 +0000 (19:24 +0800)]
jme(4): Move JME_RSS_DEBUG into opt_jme.h

5 years agoidentcpu.c: Add MOVBE feature string.
Sascha Wildner [Wed, 11 Mar 2009 19:02:10 +0000 (20:02 +0100)]
identcpu.c: Add MOVBE feature string.

5 years agoExtract PFS null mounts from anywhere in the filesystem, instead of just
Matthew Dillon [Wed, 11 Mar 2009 17:45:38 +0000 (10:45 -0700)]
Extract PFS null mounts from anywhere in the filesystem, instead of just
from the /pfs subdirectory.

Submitted-by: pgeorgi (via bugs)
5 years agoem(4): Enable RX after RDH is configured (backport from emx(4)).
Sepherosa Ziehau [Tue, 10 Mar 2009 13:14:22 +0000 (21:14 +0800)]
em(4): Enable RX after RDH is configured (backport from emx(4)).

According to Intel OpenSDM's RDH description:
"... If software were to write to this register while the receive
 function was enabled, the on-chip descriptor buffers can be
 invalidated and other indeterminate operations might result ..."

Maybe we were just that lucky, the driver actually worked ...

5 years agoem(4): Backport part of 62e0614e4c59f94c83cdf24ebf5995add53f03bf
Sepherosa Ziehau [Tue, 10 Mar 2009 13:10:23 +0000 (21:10 +0800)]
em(4): Backport part of 62e0614e4c59f94c83cdf24ebf5995add53f03bf

Used transmit descriptors do not need to be cleared in txeof and

5 years agoem(4): Backport cc8fffade4528dd788a4789998ed3d1e85f9644a
Sepherosa Ziehau [Tue, 10 Mar 2009 12:00:40 +0000 (20:00 +0800)]
em(4): Backport cc8fffade4528dd788a4789998ed3d1e85f9644a

Use E1000_ICR_ macros when check against value read from ICR

5 years agoem(4): Backport part of 62e0614e4c59f94c83cdf24ebf5995add53f03bf
Sepherosa Ziehau [Tue, 10 Mar 2009 11:58:10 +0000 (19:58 +0800)]
em(4): Backport part of 62e0614e4c59f94c83cdf24ebf5995add53f03bf

em_buffer.m_head is only set/cleared in the last em_buffer associated
with the packet, so we don't need to keep clearing it in transmit
descriptor setup loop.

5 years agonetwork: Turn on adaptive MPSAFE for network threads, and MPSAFE for IP and ARP
Sepherosa Ziehau [Tue, 10 Mar 2009 10:56:40 +0000 (18:56 +0800)]
network: Turn on adaptive MPSAFE for network threads, and MPSAFE for IP and ARP

Approved-by dillon@

5 years agoInstall ncurses_dll.h to unbreak devel/ncursesw from pkgsrc.
Hasso Tepper [Mon, 9 Mar 2009 13:52:11 +0000 (15:52 +0200)]
Install ncurses_dll.h to unbreak devel/ncursesw from pkgsrc.

Pkgsrc assumes that our ncurses is good enough to use, but installs
ncursesw/ncurses.h header which includes ncurses_dll.h. So, compiling
every piece of software using ncursesw/ncurses.h just failed.

5 years agosignals: rename CURSIGNB to CURSIG_NOBLOCK and unify implementation
Simon Schubert [Sat, 7 Mar 2009 18:35:10 +0000 (19:35 +0100)]
signals: rename CURSIGNB to CURSIG_NOBLOCK and unify implementation

CURSIG() is defined as __cursig() and CURSIGNB() as __cursignb().
However both __cursig() and __cursignb() do almost the same thing, so
consolidate the code into one function.

5 years agosignals: rework when CURSIG/issignal can stop a thread for tracing
Simon Schubert [Sat, 7 Mar 2009 17:09:13 +0000 (18:09 +0100)]
signals: rework when CURSIG/issignal can stop a thread for tracing

When tracing a process, it can happen that the thread would get stopped
due to the signal and its tracing.  In this case the tracing parent
would get notified and it might choose to let the process to serve the

However if this stop+trace is happening somewhere deep in the kernel due
to a call to CURSIG(), it might happen that the same signal again is the
cause for a stop+trace cycle because of another call to CURSIG() while
the call stack is unwinding.

Introduce CURSIG_TRACE(), which explicitly allows stopping for tracing
signal delivery.  This is only called from userret().
All other instances of CURSIG() may still block/sleep because of SA_STOP
signals, but these invocations may not trace + repost signals.

As such, the only place where trace + repost of signals can happen now
is userret().  Nevertheless, CURSIG() still decides not to ignore a
currently ignored signal and rather lets the kernel unwind until this
signal arrives in the CURSIG_TRACE() called from userret().

5 years agosignals: stop all threads of a process before taking a checkpoint
Simon Schubert [Sat, 7 Mar 2009 16:35:02 +0000 (17:35 +0100)]
signals: stop all threads of a process before taking a checkpoint

If we want to checkpoint a multi-threaded process, we need to wait until
the process is in a quiescent state, otherwise our checkpoint might be

5 years agostay in tstop() as long as the process is stopped
Simon Schubert [Sat, 7 Mar 2009 16:54:37 +0000 (17:54 +0100)]
stay in tstop() as long as the process is stopped

Under some conditions (mainly related to multi-threaded processes and
tracing (gdb)), wakeups, scheduling and stops can lead to a race which
will leave the process stopped and wait()ed, but the P_WAITED flag
cleared.  This happens because a thread in tstop() might have been woken
up, but not yet scheduled.  If the process in turn would get stopped
again (another bug), the thread in tstop() would be counted as stopped,
but would only be waiting to be scheduled to transition into LSRUN.

Prevent this by checking for SSLEEP in tstop() before returning.

5 years agodon't loop printing the diagnostic "waiting for lwps to exit"
Simon Schubert [Sat, 7 Mar 2009 16:37:16 +0000 (17:37 +0100)]
don't loop printing the diagnostic "waiting for lwps to exit"

This diagnostic never was really useful and only clutters the message
buffer.  Also don't poll the process state once a second, but rely on
the wakeups from exiting threads.

5 years agoemx(4): Add tunable to enable/disable multi-RX queue support
Sepherosa Ziehau [Mon, 9 Mar 2009 13:13:59 +0000 (21:13 +0800)]
emx(4): Add tunable to enable/disable multi-RX queue support

Multi-RX queue support is disabled on UP kernel, even if this
tunable is enabled.

5 years agoemx(4): Add multi-RX queue support
Sepherosa Ziehau [Sun, 8 Mar 2009 12:59:27 +0000 (20:59 +0800)]
emx(4): Add multi-RX queue support