Sascha Wildner [Tue, 27 May 2008 12:08:29 +0000 (12:08 +0000)]
Sync zoneinfo database with tzdata2008c from elsie.
africa: 8.10 -> 8.11
asia: 8.18 -> 8.20
africa - Morocco observes DST in 2008
asia - Choibalsan is now 8 hours off UTC
- Pakistan observes DST in 2008
Sepherosa Ziehau [Tue, 27 May 2008 12:07:01 +0000 (12:07 +0000)]
Only collect 'count' packets when polling(4) is used. Set softc cached
RX consumer index to the value we have processed before break out of the
loop, so we could come back again upon next poll.
Michael Neumann [Tue, 27 May 2008 12:00:47 +0000 (12:00 +0000)]
Add a boot loader tunable hw.usb.hack_defer_exploration, which if set
to 0 reverts to the old USB behaviour, i.e. USB keyboards should be again
usable early at boot. By default, this is set to 1 which will avoid hanging
the system on qemu and my HP compaq laptop and maybe others.
Note that this is a hack around a shortcoming in the current USB stack and
will go away once the shortcoming has been fixed.
Sepherosa Ziehau [Tue, 27 May 2008 11:39:42 +0000 (11:39 +0000)]
- Apply same adjustment to softc cached TX/RX BD index
- Clear used_tx_bd in bce_free_tx_chain
Obtained-from: FreeBSD if_bce.c rev 1.{36,37}
Matthew Dillon [Tue, 27 May 2008 07:48:00 +0000 (07:48 +0000)]
Do not try to set-up the bridge or tap interfaces when connecting to
a unix domain socket instead of a tap interface.
Matthew Dillon [Tue, 27 May 2008 07:46:57 +0000 (07:46 +0000)]
Add vknetd to the build.
Matthew Dillon [Tue, 27 May 2008 05:25:36 +0000 (05:25 +0000)]
Get rid of an old and terrible hack. Local stream sockets enqueue packets
directly on the peer's sockbuf, rather then the sender's sockbuf. That
part of the code is fine, but in order to prevent the sender from queueing
infinite mbufs (because its sockbuf appears to be empty when you do that)
the code dynamically messed around with the sender's high water mark.
This blew up the new SOCK_SEQPACKET. In particular, it blows up the
use of the PR_ATOMIC on stream sockets and can cause spurious EMSGSIZE
errors to be returned instead of the EWOULDBLOCK that should have been
returned.
Also fix, or partially the resource limit code which tries to reduce the
high water mark when a user is using too many mbufs. This never worked
well and still doesn't, but it is in better shape now.
Get rid of the crufty code and simply add a flag to the signalsockbuf,
SSB_STOP, to stop the sender.
Also adjust the vkernel to increase the default socket buffer when
connecting to vknet instead of if_tap. VKE currently issues non-blocking
writes to vknet/tap and we do not want to lose packets for no good reason.
Matthew Dillon [Tue, 27 May 2008 01:58:02 +0000 (01:58 +0000)]
Create a new daemon called vknetd. This daemon uses the new SOCK_SEQPACKET
feature to create a virtualized packet bridge accessible by userland (in
particular, user-run virtual kernels).
Matthew Dillon [Tue, 27 May 2008 01:10:47 +0000 (01:10 +0000)]
* Implement SOCK_SEQPACKET sockets for local communications. These sockets
operate like SOCK_STREAM but each write() builds a record and each read()
reads a record. That is, the data is not aggregated together or allowed
to be partially read.
This allows local sockets to have the same packetization characteristics
as if_tap when desired.
* Add a feature to the vkernel which allows a unix domain socket to be
specified for the network interface rather then a TAP interface. The
vkernel will connect to the socket using SOCK_SEQPACKET and read and
write packets to it.
* Clean up some libc/kernel namespace collisions related to including
sys/socket.h.
Nicolas Thery [Mon, 26 May 2008 17:11:09 +0000 (17:11 +0000)]
Allocate lwkt threads from objcache instead of custom per-cpu cache backed
by zone.
Reviewed-by: dillon@
Sepherosa Ziehau [Mon, 26 May 2008 14:23:25 +0000 (14:23 +0000)]
Avoid panic upon module unloading
Michael Neumann [Mon, 26 May 2008 14:00:46 +0000 (14:00 +0000)]
Allow a NULL pointer as argument to usb_get_next_event(), and don't
allocate a "struct usb_event" on stack in usb_add_event().
Obtained-from: NetBSD/usb.c 1.83
Michael Neumann [Mon, 26 May 2008 13:56:08 +0000 (13:56 +0000)]
Remove __HAVE_GENERIC_SOFT_INTERRUPTS ifdefs as we don't support the
softintr_* API of NetBSD.
Sepherosa Ziehau [Mon, 26 May 2008 13:29:33 +0000 (13:29 +0000)]
Fix following possible bugs for SIOCSIFADDR, if in_ifinit() fails
Conditions:
o ifaceX has an AF_INET ia
o SIOCSIFADDR is used to change address, and new address' hash value is
different from ia's
o ia is currently in hash bucket B1
o ia is removed from B1 and installed into hash table using new address
hash value, assume its new hash bucket is B2, and B1 != B2
1) Dangling ia reference in inaddr hash table
o ifnet.if_ioctl fails
o ia is reinstalled into hash bucket B1, but without being first removed
from hash bucket B2
Hash bucket B2 will have a dangling reference to ia
2) ia is left in wrong hash bucket
o rtinit fails
o ia's address is restored to oldaddr
ia itself is left in hash bucket indexed by new address's hash value
- In in_ifinit(), if it fails, unlink ia from inaddr hash table instead of
delaying the unlinking to in_control_internal(). If necessary reinstall
ia into inaddr hash table with original address
- After the above fix, in_control_internal() needs to unlink ia from inaddr
only if cmd is SIOCDIFADDR and ia resides in inaddr hash table. Whether
ia is in inaddr hash table or not, is currently indicated by ia address's
family; add XXX comment that this assumption is not good
- Constfy 'sin' parameter to in_ifinit()
Reviewed-by: dillon@
Michael Neumann [Mon, 26 May 2008 13:24:59 +0000 (13:24 +0000)]
Fix typos and cosmetic changes.
Michael Neumann [Mon, 26 May 2008 12:37:44 +0000 (12:37 +0000)]
Get completely rid of sc_dev in usb_softc and uhub_softc structures. Instead
of directly passing around the softc structure, pass the device_t around and
access the softc structure via device_get_softc.
Michael Neumann [Mon, 26 May 2008 12:02:42 +0000 (12:02 +0000)]
Expand delay macro into DELAY.
Hasso Tepper [Sun, 25 May 2008 21:34:49 +0000 (21:34 +0000)]
Add pthread_atfork() implementation to libc_r. libthread_xu has it already,
but it was unusable due to missing code in libc_r.
Obtained-from: FreeBSD
Nicolas Thery [Sun, 25 May 2008 18:47:26 +0000 (18:47 +0000)]
Fix warnings (missing casts).
Matthew Dillon [Sun, 25 May 2008 18:41:33 +0000 (18:41 +0000)]
HAMMER 48/Many: finish vop_setattr support, ncreate/nmknod/etc, minor bug fixes.
* Properly set the initial uid and gid when creating a new filesystem object.
* Finish implementing hammer_vop_setattr(). Use the new VOP helper functions
to validate the cred for chmod, chown, and chgrp operations, and to clear
suid/sgid when a file's owner/group is changed.
Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
Matthew Dillon [Sun, 25 May 2008 18:34:46 +0000 (18:34 +0000)]
Add vop_helper_chmod() and vop_helper_chown(). These helper functions
implement the guts of a standard unix chmod or chown operation, including
validation based on creds.
Sascha Wildner [Sun, 25 May 2008 18:11:47 +0000 (18:11 +0000)]
Fix .Er abuse.
Michael Neumann [Sun, 25 May 2008 17:48:33 +0000 (17:48 +0000)]
Remove duplicate include of header file "sys/bus.h".
Michael Neumann [Sun, 25 May 2008 16:53:41 +0000 (16:53 +0000)]
Defer boot-time exploration of USB busses until all devices in the
system have been attached, but no later. This ensures that we do
not explore ohci or uhci busses before the companion ehci controller
has been initialised, so it should fix the problem of multi-speed
USB devices getting attached as USB 1 devices first and then
re-attached as USB 2.
This fixes issue #946 for qemu and my HP Compaq 6710b laptop.
Obtained-from: FreeBSD/usb.c 1.104 to 1.106 and NetBSD/usb.c 1.35
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue947>
Michael Neumann [Sun, 25 May 2008 16:38:36 +0000 (16:38 +0000)]
Make sure to use delay() in usb_delay_ms() while cold booting.
Obtained-from: NetBSD/usb_subr.c 1.64
Sascha Wildner [Sun, 25 May 2008 14:04:32 +0000 (14:04 +0000)]
Perform some mdoc cleanup.
Sepherosa Ziehau [Sun, 25 May 2008 09:44:31 +0000 (09:44 +0000)]
- Count and defrag mbuf before setup TX desc
- Drop excessively fragmented packets
- Set ifnet.if_timer, if TX desc has been setup
- Reset ifnet.if_timer, only if there are no pending TX descs
- Add IFF_OACTIVE and ifnet.if_timer related processing in fxp_tick(),
which performs TXEOF operation
- Add XXX comment about a possible missing ifnet.if_timer setting in
fxp_init()
Sascha Wildner [Sun, 25 May 2008 08:18:26 +0000 (08:18 +0000)]
Make c89 work by using 'cc' as execv()'s argv[0] to satisfy objformat.
Matthew Dillon [Sat, 24 May 2008 19:08:28 +0000 (19:08 +0000)]
Fix a very old bug where the root mount was not getting a filesystem syncer
assigned to it. This caused the more recent vnode recycling code to fail
to recycle vnodes on the root mount, leading to resource starvation.
Reported-by: Peter Avalos <pavalos@theshell.com>,
Michael Neumann <mneumann@ntecs.de>
Matthew Dillon [Sat, 24 May 2008 17:22:39 +0000 (17:22 +0000)]
Bump version to 1.11.
Matthew Dillon [Sat, 24 May 2008 17:21:36 +0000 (17:21 +0000)]
Use a per-bucket mutex to reduce contention and fix a seg-fault from a
race in the transaction hash table.
Sepherosa Ziehau [Sat, 24 May 2008 12:52:49 +0000 (12:52 +0000)]
Use "pause" in spin loop.
Suggested-by: dillon@
Simon Schubert [Sat, 24 May 2008 09:15:43 +0000 (09:15 +0000)]
Properly work with path names which contain a dot.
Noticed-by: swildner@
Sascha Wildner [Sat, 24 May 2008 09:11:09 +0000 (09:11 +0000)]
Fix two cases where device_printf() was used with an empty format.
Sepherosa Ziehau [Sat, 24 May 2008 08:04:42 +0000 (08:04 +0000)]
Avoid possible memory leakage.
Sepherosa Ziehau [Sat, 24 May 2008 07:41:25 +0000 (07:41 +0000)]
- Put inaddr hash table alterations in crit section
- Hold ifnet.if_serializer only around ifnet.if_ioctl
Sepherosa Ziehau [Sat, 24 May 2008 06:54:54 +0000 (06:54 +0000)]
- Add blank lines between code segments
- Add comment
- Minor style changes
Sepherosa Ziehau [Sat, 24 May 2008 06:03:23 +0000 (06:03 +0000)]
No need to cast
Sepherosa Ziehau [Sat, 24 May 2008 05:22:44 +0000 (05:22 +0000)]
Hold ifnet.if_serializer around ifnet.if_ioctl; rtinit() does not need
ifnet.if_serializer's protection.
Sepherosa Ziehau [Sat, 24 May 2008 04:59:14 +0000 (04:59 +0000)]
Minor style change. Add blank line between two 'switch' code blocks.
Sepherosa Ziehau [Sat, 24 May 2008 04:19:31 +0000 (04:19 +0000)]
Minor white space and style changes
Sepherosa Ziehau [Sat, 24 May 2008 03:57:26 +0000 (03:57 +0000)]
Add comment
Sascha Wildner [Fri, 23 May 2008 23:40:59 +0000 (23:40 +0000)]
Fix a warning and raise WARNS to 6.
Matthew Dillon [Fri, 23 May 2008 19:46:37 +0000 (19:46 +0000)]
Calls to DIOCSYNCSLICEINFO were being made with the assumption that
CD_FLAG_OPEN indicated an already-open device. With recent changes this
flag is set prior to the check and the calls were being made without
any slice information, causing a panic. For now follow what FreeBSD did
and just remove the calls.
Remove redundant setting of CD_FLAG_OPEN.
Reported-by: VOROSKOI Andras <sinknull@crater.dragonflybsd.org>,
Michael Neumann <mneumann@ntecs.de>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1016>
Sepherosa Ziehau [Fri, 23 May 2008 15:36:59 +0000 (15:36 +0000)]
- Print L3 cache (on NorthBridge) information
- Correct L2 cache associative and register mapping
Sepherosa Ziehau [Fri, 23 May 2008 15:34:03 +0000 (15:34 +0000)]
- For 350 chips, don't set various INTR bits in TX control word; turning INTR
bits on seems to confuse hardware TX engine
- For 350 chips, set TX desc's buffer physical address before turning on the
TX desc valid bit
- In an_start, set IFF_OACTIVE, if there is no free TX desc called; this avoids
confusing functions which schedule ifnet.if_start
- Minor style and white space changes
Submitted-by: Jost Tobias Springenberg <jspringe@uos.de>
Matthew Dillon [Fri, 23 May 2008 06:55:11 +0000 (06:55 +0000)]
Fix a pipelining performance issue due to the way reading from the socket
was implemented. Instead of having the threads compete for read-access to
the socket, create a single thread whos responsibility is to read traffic
from the socket and route it to the appropriate transaction. This greatly
improves parallel threading performance for cpdup's to remote hosts.
Nicolas Thery [Thu, 22 May 2008 20:01:55 +0000 (20:01 +0000)]
Remove commented out references to lwkt_* source files as lwkt is no more
supported userland.
Hasso Tepper [Thu, 22 May 2008 06:50:14 +0000 (06:50 +0000)]
Add support for for the AI_NUMERICSERV getaddrinfo(3) flag. While pulling
documentation for it from FreeBSD, add missing info about other flags as
well.
Obtained-from: KAME and FreeBSD
Matthew Dillon [Thu, 22 May 2008 04:14:01 +0000 (04:14 +0000)]
HAMMER 47/Many: Stabilization pass
* Fix a buffer cache deadlock. Buffers representing pending I/O must be
thrown away (by calling biodone()'d) when cleaning a deleted inode out on
the backend. Otherwise the truncation can deadlock against them.
Sascha Wildner [Thu, 22 May 2008 04:00:43 +0000 (04:00 +0000)]
Add KTR_KERNENTRY to ktr(4) and LINT.
Michael Neumann [Wed, 21 May 2008 19:56:46 +0000 (19:56 +0000)]
kprintf to device_printf conversion.
Matthew Dillon [Wed, 21 May 2008 18:49:49 +0000 (18:49 +0000)]
Bring in fixes for a bug which occurs when the filesystem become fulls.
This bug could result in 'ffs blkfree: freeing free block' panics.
However, this may not fix all such panics. The jury is still out as of this
commit.
Obtained-from: FreeBSD/ffs_balloc.c 1.52 and 1.53
Michael Neumann [Wed, 21 May 2008 14:45:25 +0000 (14:45 +0000)]
test test
Simon Schubert [Wed, 21 May 2008 14:07:41 +0000 (14:07 +0000)]
Update blacklists to more thorough versions.
Obtained-from: Debian openssh-blacklist 0.3
Submitted-by: Atte Peltomaki <koston@iki.fi>
Hasso Tepper [Tue, 20 May 2008 21:13:39 +0000 (21:13 +0000)]
Merge error fix.
Spotted-by: corecode and Rumko.
Matthew Dillon [Tue, 20 May 2008 19:23:25 +0000 (19:23 +0000)]
Add a define for IEEE80211_FC1_PROTECTED.
Taken-From: OpenBSD
Submitted-by: Cristi Magherusan <majeru@gentoo.ro>
Matthew Dillon [Tue, 20 May 2008 19:14:38 +0000 (19:14 +0000)]
Properly track the write-open count when updating a msdos mount from RW to RO,
or from RO to RW.
Reported-by: Rumko <rumcic@gmail.com>
Matthew Dillon [Tue, 20 May 2008 18:23:33 +0000 (18:23 +0000)]
Add a DELAY(500) during the register init phase to give the device some time
to initialize before attempting to read its memory space.
Taken-From: FreeBSD
Hasso Tepper [Tue, 20 May 2008 12:14:10 +0000 (12:14 +0000)]
Update the traceroute(8) to the newest code from FreeBSD HEAD. Besides many
typo, style etc fixes this brings in the ability to specify protocol used
for probes: UDP6, ICMPv6 and NONE (useful for testing firewalls).
Obtained-from: FreeBSD
Matthew Dillon [Mon, 19 May 2008 16:39:09 +0000 (16:39 +0000)]
Fix an overflow in the time calculation.
Sascha Wildner [Mon, 19 May 2008 11:34:23 +0000 (11:34 +0000)]
Use correct date.
Simon Schubert [Mon, 19 May 2008 10:46:39 +0000 (10:46 +0000)]
Enable MS-style pragma push/pop.
Obtained-from: FreeBSD
Noticed-by: RussianE3 @ #dragonflybsd
Simon Schubert [Mon, 19 May 2008 10:29:58 +0000 (10:29 +0000)]
Fill CPU info for vkernels. This makes KTR use TSC in vkernels.
Simon Schubert [Mon, 19 May 2008 10:28:06 +0000 (10:28 +0000)]
Add KTR for tracing userland->kernel entries, i.e. faults and syscalls.
Simon Schubert [Mon, 19 May 2008 10:26:02 +0000 (10:26 +0000)]
Add macros for the linker, which might be different than the compiler.
Simon Schubert [Mon, 19 May 2008 10:21:31 +0000 (10:21 +0000)]
Don't manually declare select, instead include sys/select.h.
Simon Schubert [Mon, 19 May 2008 10:19:49 +0000 (10:19 +0000)]
Don't #include <sys/select.h> from sys/types.h, to conform to SUS.
Some old BSD programs assume that sys/types.h is basically enough
to get all types and even functions declared, so adjust these.
sys/param.h still works as kitchensink and includes sys/select.h.
Simon Schubert [Mon, 19 May 2008 10:13:08 +0000 (10:13 +0000)]
Change asf defaults and flags to suit Dragonfly more.
Simon Schubert [Mon, 19 May 2008 10:06:34 +0000 (10:06 +0000)]
Declare lsearch(3)/lfind(3), move them to libc and make them POSIX compliant.
Obtained-from: FreeBSD
Simon Schubert [Mon, 19 May 2008 10:05:18 +0000 (10:05 +0000)]
Declare lsearch(3)/lfind(3), move them to libc and make them POSIX compliant.
Obtained-from: FreeBSD
Matthew Dillon [Sun, 18 May 2008 21:47:06 +0000 (21:47 +0000)]
HAMMER 46B/Many: Stabilization pass
* Add a feature to vmntvnodescan() to only do one pass on the vnode list.
Have HAMMER use it.
* Fix a buffer cache leak. Buffers could wind up disassociated from their
HAMMER structures while in a B_LOCKED state, preventing the kernel from
reusing them.
Nicolas Thery [Sun, 18 May 2008 20:57:56 +0000 (20:57 +0000)]
Remove obsolete userland lwkt.
Approved-By: dillon@
(http://leaf.dragonflybsd.org/mailarchive/kernel/2008-05/msg00053.html)
Peter Avalos [Sun, 18 May 2008 20:30:23 +0000 (20:30 +0000)]
Sync CAM with FreeBSD using lockmgr locks instead of mutexes.
Note: This is mostly a code sync with FreeBSD which improves stability
in addition to the items listed below. This provides a framework for
releasing the mplock, but for now it's still there.
Add an xpt_print function to reduce most of the xpt_print_path/printf
pairs. Convert the core code to use it.
Initial cut at Basic Domain Validation.
Make cam_xpt's pronouncements match camcontrol (Tagged -> Command) Queueing.
Pay attention to return value from xpt_bus_register in xpt_init.
Add an xpt_rescan function and a thread that will field rescan requests.
The purpose of this is to allow a SIM (or other entities) to request a bus
rescan and have it then fielded in a different (process) context from the
caller.
Check the return value from cam_periph_acquire.
Drop the periph/sim lock when calling disk_destroy().
Drop the topology lock before calling the periph oninvalidate and dtor
vectors.
For the XPT_SASYNC_CB operation, only decouple the broadcast to the bus
and device lists instead of decoupling the whole operation. This avoids
problems with SIMs going away.
Split the camisr into per-SIM done queues. This optimizes the locking a
little bit and allows for direct dispatch of the doneq from certain
contexts that would otherwise face recursive locking problems.
Zero the CCBs when mallocing them.
Only schedule the xpt_finishconfig_task once.
Eliminate the use of M_TEMP.
Add a helper function for registering async callbacks.
Release the bus reference that is acquired when doing a CAMIOCOMMAND ioctl.
Zero scsi_readcapacity allocations so we can really tell if there has
been data returned.
Remove duplicate includes and fix typos.
Add a bunch of definitions and structures to support newer drivers.
When probing a newly found device, don't automatically assume that the
device supports retrieving a serial number. Instead, first query the
list of VPD pages it does support, and only query the serial number if
it's supported, else silently move on. This eliminates a lot of noise
during verbose booting, and will likely eliminate the need for most
NOSERIAL quirks.
Reduce diffs from FreeBSD.
Obtained-from: FreeBSD
Nicolas Thery [Sun, 18 May 2008 20:02:02 +0000 (20:02 +0000)]
Allocate struct lwp instances with kmalloc() instead of zalloc() for MP safety.
Sepherosa Ziehau [Sun, 18 May 2008 08:10:03 +0000 (08:10 +0000)]
Count if_opackets and if_oerrors.
Sepherosa Ziehau [Sun, 18 May 2008 07:47:14 +0000 (07:47 +0000)]
Count if_opackets.
Reported-by: Xin LI <delphij@delphij.net>
Matthew Dillon [Sun, 18 May 2008 05:54:31 +0000 (05:54 +0000)]
Fix a number of core kernel issues related to HAMMER operation.
* The cluster code was incorrectly using the maximum IO size from
the filesystem on which /dev is mounted instead of the maximum
IO size of the block device. This became evident when HAMMER
(with 16K blocks) tried to call cluster_read() via /dev/ad6s1h
(on UFS with 8K blocks).
* Change the way the VNLRU code works to avoid an infinite loop in
vmntvnodescan(). The vnode LRU recycling code was cycling vnodes
from the head of mp->mnt_nvnodelist to the tail. Under certain heavy
load conditions this could cause a vmntvnodescan() to never finish
running and eventually hit a count assertion (at 1,000,000 vnodes scanned).
Instead of cycling the vnodes in the mnt_nvnodelist, use the syncer
vnode (mount->mnt_syncer) as a placemarker and move *IT* within the
list to represent the LRU scan. By not cycling vnodes to the end
of the list, vmntvnodescan() can no longer get into an infinite loop.
* Change the mount->mnt_syncer logic slightly to avoid races against
a background sync while unmounting. The field is no longer cleared
by the sync_reclaim() call but is instead cleared by the unmount code
before vrele()ing the special vnode.
Sepherosa Ziehau [Sun, 18 May 2008 05:12:08 +0000 (05:12 +0000)]
- Add devq which stores mbuf dequeued from ifnet.if_snd during ifnet.if_sart.
This is mainly used to avoid confusing functions scheduling ifnet.if_start
- Add tapifstop() which drains devq and clear IFF_RUNNING and IFF_OACTIVE.
- In tapopen(), move TAP_OPEN flag testing before announcing ifnet_attach_event
- Remove ifnet.if_serializer holding around ifq operation.
- White space and minor style changes.
Sepherosa Ziehau [Sun, 18 May 2008 04:38:44 +0000 (04:38 +0000)]
Return after calling bridge_ouput_p.
Reported-by: dillon@
Peter Avalos [Sun, 18 May 2008 03:02:53 +0000 (03:02 +0000)]
It's "useful" not "usefull".
Sepherosa Ziehau [Sun, 18 May 2008 02:40:41 +0000 (02:40 +0000)]
KNOTE still needs mplock, so tapifstart() could be called in MPSAFE theads.
Matthew Dillon [Sun, 18 May 2008 01:49:44 +0000 (01:49 +0000)]
HAMMER Utilities: Update for HAMMER changes.
* Update for localization changes made in the filesystem.
* Make minor feature adjustments.
Matthew Dillon [Sun, 18 May 2008 01:48:50 +0000 (01:48 +0000)]
HAMMER 46/Many: Performance pass, media changes, bug fixes.
* Add a localization field to the B-Tree element which has sorting priority
over the object id.
Use the localization field to separate inode entries from file data. This
allows the reblocker to cluster inode information together and greatly
improves directory/stat performance.
* Enhance the reblocker to reblock internal B-Tree nodes as well as leaves.
* Enhance the reblocker by adding 'reblock-inodes' in addition to
'reblock-data' and 'reblock-btree', allowing individual types of
meta-data to be independantly reblocked.
* Fix a bug in hammer_bread(). The buffer's zoneX_offset field was
sometimes not being properly masked, resulting in unnecessary blockmap
lookups. Also add hammer_clrxlate_buffer() to clear the translation
cache for a hammer_buffer.
* Fix numerous issues with hmp->sync_lock.
* Fix a buffer exhaustion issue in the pruner and reblocker due to not
counting I/O's in progress as being dirty.
* Enhance the symlink implementation. Take advantage of the extra 24 bytes
of space in the inode data to directly store symlinks <= 24 bytes.
* Use cluster_read() to gang read I/O's into 64KB chunks. Rely on
localization and the reblocker and pruner to make doing the larger
I/O's worthwhile.
These changes reduce ls -lR overhead on 43383 files (half created with cpdup,
half totally randomly created with blogbench). Overhead went from 35 seconds
after reblocking, before the changes, to 5 seconds after reblocking,
after the changes.
Matthew Dillon [Sun, 18 May 2008 01:35:40 +0000 (01:35 +0000)]
Change cluster_read() to not block on read-ahead buffers it is unable to
immediately lock. HAMMER needs this because HAMMER will cluster at the
device level and becaue of that the cluster can cover multiple buffer
types and inodes.
Peter Avalos [Sat, 17 May 2008 22:48:04 +0000 (22:48 +0000)]
Sync with NetBSD:
Add EL_REFRESH and rl_forced_update_display().
Nicolas Thery [Sat, 17 May 2008 22:04:07 +0000 (22:04 +0000)]
Remove unused proc_zone declaration.
Peter Avalos [Sat, 17 May 2008 22:01:12 +0000 (22:01 +0000)]
Move patches for tnftp into contrib/ and remove -I- to make gcc4 quieter.
Peter Avalos [Sat, 17 May 2008 21:53:39 +0000 (21:53 +0000)]
Quiet gcc4. -I- isn't required any more.
Peter Avalos [Sat, 17 May 2008 21:51:47 +0000 (21:51 +0000)]
Changes for libarchive-2.4.17 import.
Peter Avalos [Sat, 17 May 2008 21:50:43 +0000 (21:50 +0000)]
Merge from vendor branch LIBARCHIVE:
Import libarchive-2.4.17. See NEWS for details.
Peter Avalos [Sat, 17 May 2008 21:50:43 +0000 (21:50 +0000)]
Import libarchive-2.4.17. See NEWS for details.
Peter Avalos [Sat, 17 May 2008 21:46:19 +0000 (21:46 +0000)]
Merge from vendor branch TNFTP:
Sync with NetBSD:
Use the service name to getaddrinfo() (along with the host name), so that
features such as DNS Service Discovery have a better chance of working.
Display the service name in various status & error messages.
Don't getservbyname() the :port component of a URL; RFC 3986 says it's
just an unsigned number, not a service name.
Only attempt to el_parse() a command unknown by the default parser
if editing is enabled.
Fixes NetBSD PR bin/38589
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4
and ipv6 respectively.
Peter Avalos [Sat, 17 May 2008 21:46:19 +0000 (21:46 +0000)]
Sync with NetBSD:
Use the service name to getaddrinfo() (along with the host name), so that
features such as DNS Service Discovery have a better chance of working.
Display the service name in various status & error messages.
Don't getservbyname() the :port component of a URL; RFC 3986 says it's
just an unsigned number, not a service name.
Only attempt to el_parse() a command unknown by the default parser
if editing is enabled.
Fixes NetBSD PR bin/38589
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4
and ipv6 respectively.
Matthew Dillon [Sat, 17 May 2008 20:33:36 +0000 (20:33 +0000)]
Syntax cleanup and also commit a missing piece of the jail_allow_raw_sockets
sysctl.
Peter Avalos [Sat, 17 May 2008 19:31:28 +0000 (19:31 +0000)]
Merge from vendor branch LESS:
Update to less-418:
Fix search bug when using -R and text contains ANSI color escape sequences.
Fix crash when using -r with UTF-8 text containing 0x9B bytes.
Fix display bug when using ' command to move less than one page forward.
Update GPL to version 3.
Peter Avalos [Sat, 17 May 2008 19:31:28 +0000 (19:31 +0000)]
Update to less-418:
Fix search bug when using -R and text contains ANSI color escape sequences.
Fix crash when using -r with UTF-8 text containing 0x9B bytes.
Fix display bug when using ' command to move less than one page forward.
Update GPL to version 3.
Matthew Dillon [Sat, 17 May 2008 18:20:33 +0000 (18:20 +0000)]
Add a sysctl jail.allow_raw_sockets (default to diabled) which allows
jails to use raw sockets.
Submitted-by: "Kevin L. Kane" <kevin.kane@gmail.com>
Sascha Wildner [Sat, 17 May 2008 09:16:13 +0000 (09:16 +0000)]
Our man can use local files, thus mark as done.
Matthew Dillon [Fri, 16 May 2008 18:39:03 +0000 (18:39 +0000)]
HAMMER Utilities: Stabilization pass.
* Fix a bug in 'hammer show' which caused the cache to expand indefinitely.