imp [Fri, 24 Mar 2006 06:33:25 +0000 (06:33 +0000)]
Add explicit dependency on cam. This is necessary when both aha.ko and
cam.ko are modules so that aha.ko's undefined symbols can be satisfied by
cam.ko.
davidxu [Fri, 24 Mar 2006 00:50:06 +0000 (00:50 +0000)]
1. Move code for scanning pending I/O from aio_fsync to aio_aqueue,
it has less overhead.
2. Avoid scheduling task if maximum number of I/O threads is reached.
jasone [Fri, 24 Mar 2006 00:28:08 +0000 (00:28 +0000)]
Add USE_BRK-specific code in malloc_init_hard() to allow the first
internally used chunk to start at the beginning of the heap, rather
than at a chunk-aligned address. This reduces mapped memory somewhat
for 32-bit architectures.
Add the arena_run_link_t type and use it wherever a run object is only
used as a ring 'header'. This saves approximately 40 kB of memory per
arena.
Remove an obsolete (no longer used) code path from base_alloc(), which
supported the internal allocation of objects larger than the chunk
size.
Enhance chunk_dealloc() to cache chunk addresses for all deallocated
chunks. This has no impact for most programs, but has the potential
to reduce VM map fragmentation for programs that use huge
allocations.
rwatson [Fri, 24 Mar 2006 00:00:23 +0000 (00:00 +0000)]
Comment that raw output filter code for IPX should run in a netisr so as
to avoid recursing the socket code, as this input path can run in the
call stack of an output path.
peter [Thu, 23 Mar 2006 23:37:06 +0000 (23:37 +0000)]
Document that the documented 2GB mmap limit is actually a
documentation bug. We switched to page indexes some time around
FreeBSD 2.2. The actual 'len' limit is the maximum file size or what
will fit in your address space, whichever comes first. It should be
possible to make 1TB files on 32 bit systems, but of course address space
runs out long before then.
rwatson [Thu, 23 Mar 2006 23:07:56 +0000 (23:07 +0000)]
When the kernel is compiled with options IPXIP, run the network stack
with Giant, as there is current unsafety in the IPX tunneled over IP
code. There have been no reports of trouble, but there probably would
be if anyone were running this code at high speed on SMP systems.
kris [Thu, 23 Mar 2006 22:58:42 +0000 (22:58 +0000)]
Fix a bug in the NFS/TCP retransmission path.
The bug was that earlier, if a request was retransmitted,
we would do subsequent retransmits every 10 msecs.
This can cause data corruption under moderate loads by reordering
operations as seen by the client NFS attribute cache, and on the
server side when the retransmission occurs after the original request
has left the duplicate cache, since the operation will be committed
for a second time.
Further work on retransmission handling is needed (e.g. they are still
being done sent too often since they are scaled by HZ, and the size of
the dup cache is too small and easily overwhelmed on busy servers).
des [Thu, 23 Mar 2006 21:31:42 +0000 (21:31 +0000)]
Fix utmp. There is some clever logic in configure.ac which attempts to
determine whether struct utmp contains the ut_host and ut_time fields.
Unfortunately, it reports a false negative for both on FreeBSD, and I
didn't check the resulting config.h closely enough to catch the error.
rwatson [Thu, 23 Mar 2006 19:58:12 +0000 (19:58 +0000)]
Move spx_savesi from being a global variable to an automatically allocated
variable on the spx_input() stack. It's not very large, and this will
avoid parallelism issues when spx_input() runs in more than one thread at
a time.
rwatson [Thu, 23 Mar 2006 19:50:00 +0000 (19:50 +0000)]
Admit to ourselves that we don't actually implement pr_ctlinput() for
IPX or SPX, as the code in the implementing functions is essentially
a no-op. Replace with a comment indicating we don't implement these
currently.
ru [Thu, 23 Mar 2006 08:48:38 +0000 (08:48 +0000)]
Add an example of how to set up a 3-wire serial terminal.
Usually, getty(8) does the trick, but if you just need a
serial console without getty(8), here's how.
ru [Thu, 23 Mar 2006 07:48:58 +0000 (07:48 +0000)]
Assert that /dev/null is a character device in a chroot early. Otherwise,
we might get surprises later, like /dev/null having error in the 4th line
reported by make(1). :-)
Tested by: Dmitriy Kirhlarov (who attempted to make release in a jail)
cognet [Wed, 22 Mar 2006 22:31:31 +0000 (22:31 +0000)]
MFp4: Don't force single-user now we can go multi-user.
Call cninit() only after the pagetable has been set, as locore.S won't
map the system device for us anymore.
ariff [Wed, 22 Mar 2006 21:29:47 +0000 (21:29 +0000)]
Misc. fixups:
- [1] Make the driver friendly towards kernel without PREEMPTION.
Use msleep(9) instead of simple unlock-check_variable-lock mechanisme
since the later not really effective in non-preemptible kernel
(especially during codec detection routine).
- Free most driver resources in a sane manner to avoid possible
double free and panics especially during device detach and codec
detection failure.
cognet [Wed, 22 Mar 2006 21:23:27 +0000 (21:23 +0000)]
MFp4: If we're mapping the vector page (this will happen if we didn't
relocate it), do not attempt to call pmap_vac_me_harder() on the page.
At this point m will be NULL, and we know we won't have any cache
issues with this page.
kientzle [Wed, 22 Mar 2006 02:42:17 +0000 (02:42 +0000)]
Even if a system does not support restoring extended attributes,
it's only a failure if there were actually attributes to be restored.
In particular, this fixes the problem where tar -xp always returned
a failure code on FreeBSD (which doesn't yet have all of the extended
attribute support).
iedowse [Wed, 22 Mar 2006 02:04:12 +0000 (02:04 +0000)]
Correct the calculation of the report size and only look at reports
that have the specified kind, instead of assuming that there is
only one report of the right kind in the report descriptor.
jeff [Tue, 21 Mar 2006 23:58:37 +0000 (23:58 +0000)]
- Remove explicit calls to lock and unlock Giant and replace them with
VFS_LOCK_GIANT/VFS_UNLOCK_GIANT calls. This completely removes Giant
acquisition in the syscall path for ffs.
Bug fix to kern_fhstatfs from: Todd Miller <Todd.Miller@sparta.com>
Sponsored by: Isilon Systems, Inc.
netchild [Tue, 21 Mar 2006 21:56:04 +0000 (21:56 +0000)]
Fix the LINT build on alpha:
- rename some file local structure definitions, the names clash with
autogenerated names
- on !alpha add some compatibility defines for those renamed structures
- make some functions globally visible on alpha
damien [Tue, 21 Mar 2006 21:15:43 +0000 (21:15 +0000)]
o fixes the locking of if_init().
o don't send management frames if the IFF_DRV_RUNNING flag is not set.
this prevents the timeout watchdog from being potentially re-armed
when the interface is brought down.
fixes a crash that occurs with RT2661 based adapters.
reported by Arnaud Lacombe.
alc [Tue, 21 Mar 2006 18:07:42 +0000 (18:07 +0000)]
Eliminate unnecessary invalidations of the entire TLB by pmap_remove().
Specifically, on mappings with PG_G set pmap_remove() not only performs
the necessary per-page invlpg invalidations but also performs an
unnecessary invalidation of the entire set of non-PG_G entries.
kientzle [Tue, 21 Mar 2006 17:03:51 +0000 (17:03 +0000)]
Extended attribute support on write for Linux; FreeBSD hooks are
forthcoming. This commit also has a number of style(9) fixes and
minor corrections so the code works better with the build system being
used for non-FreeBSD builds.
Many thanks to: Jaakko Heinonen, who proposed a mechanism for extended
attribute support and implemented both the machine-independent portion
and the Linux-specific portion.
kientzle [Tue, 21 Mar 2006 16:55:46 +0000 (16:55 +0000)]
POSIX.1e-style Extended Attribute support
This commit implements storing/reading POSIX.1e-style extended
attribute information in "pax" format archives. An outline of the
storage format is in the tar.5 manpage. The archive_read_extract()
function has code to restore those archives to disk for Linux; FreeBSD
implementation is forthcoming.
Many thanks to Jaakko Heinonen for finding flaws in earlier
proposals and doing the bulk of the coding in this work.
ume [Tue, 21 Mar 2006 16:11:11 +0000 (16:11 +0000)]
Update the resolver in libc to BIND9's one.
Since, res_sendsigned(3) and the friends use MD5 functions, it is
hard to include them without having MD5 functions in libc. So,
res_sendsigned(3) is not merged into libc.
Since, res_update(3) in BIND9 is not binary compatible with our
res_update(3), res_update(3) is leaved as is, except some
necessary modifications.
The res_update(3) and the friends are not essential part of the
resolver. They are not defined in resolv.h but defined in
res_update.h separately in BIND9. Further, they are not called from
our tree. So, I hide them from our resolv.h, but leave them only
for binary backward compatibility (perhaps, no one calls them).
Since, struct __res_state_ext is not exposed in BIND9, I hide it
from our resolv.h. And, global variable _res_ext is removed. It
breaks binary backward compatibility. But, since it is not used from
outside of our libc, I think it is safe.
glebius [Tue, 21 Mar 2006 14:29:48 +0000 (14:29 +0000)]
o Introduce carp_multicast_cleanup(), which removes and frees
multicast addresses from carp interface. [1]
o Rewrite carpdetach(), so that it does the following things: [1]
- Stops callouts.
- Decrements carp_suppress_preempt, if needed.
- Downs interface and sets CARP state to INIT.
- Calls carp_multicast_cleanup().
- Detaches softc from carp_if and if we are the last frees
the carp_if.
o Use new carpdetach() in carp_clone_destroy().
o In carp_ifdetach() acquire the carp_if lock and cleanup all
interfaces hanging on carp_if. [1]
o Make carp_ifdetach() static and use EVENT(9) to call it
from if_detach(). [2]
o In carp_setrun() exit if the softc doesn't have a valid pointer
to parent. [1]