imp [Fri, 24 Nov 2006 13:10:30 +0000 (13:10 +0000)]
Make it clear that the device name may contain '/' characters to place
a device in a subdirectory. Also explicitly state that the name is
constructed using fmt like printf would print it.
rwatson [Fri, 24 Nov 2006 11:53:16 +0000 (11:53 +0000)]
Push Giant a bit further off the NFS server in a number of straight
forward cases by converting from unconditional acquisition of Giant
around vnode operations to conditional acquisition:
- Remove nfsrv_access_withgiant(), and cause nfsrv_access() to now
assert that Giant will be held if it is required for the vnode.
- Add nfsrv_fhtovp_locked(), which will drop the NFS server lock if
required, and modify nfsrv_fhtovp() to conditionally acquire
Giant if required.
- In the VOP's not dealing with more than one vnode at a time (i.e.,
not involving a lookup), conditionally acquire Giant.
This removes Giant use for MPSAFE file systems for a number of quite
important RPCs, including getattr, read, write. It leaves
unconditional Giant acquisitions in vnode operations that interact
with the name space or more than one vnode at a time as these
require further work.
delphij [Fri, 24 Nov 2006 09:07:26 +0000 (09:07 +0000)]
Make use of mk/ files from a fresh source tree, rather than
the currently installed ones. This makes it possible to use
the script against Makefiles that uses bsd.own.mk on an old
system.
kientzle [Fri, 24 Nov 2006 05:48:04 +0000 (05:48 +0000)]
Fill in a couple of missing casts: clarify one narrowing conversion
and correct the use of unary minus with an unsigned value. (The unary
minus here is actually being used as a bitwise operation, which is
unusual enough to deserve a clarifying cast.)
kmacy [Fri, 24 Nov 2006 05:27:49 +0000 (05:27 +0000)]
- Comment most of the remaining hypercalls in hcall.S
- implement hypercalls returning a single value
- start fixing the fallout of the recent changes needed to get
the kernel compiling again
jb [Fri, 24 Nov 2006 03:56:25 +0000 (03:56 +0000)]
Fix another parallel make problem with the generated make file.
Define the xxx_OBJPATHS earlier and then use it in the xxx_make
target because each obj is actually made through that.
This allows the crunch to work with -j32 on sun4v.
The makefile generated is still poor, though. It really shouldn't use
the general 'make all' to do the submakes in the app directories being
crunched because each of those objects is listed as a dependency in
the generated crunch makefile. Doing that really requires a unique rule
to generate them.
yar [Thu, 23 Nov 2006 11:55:17 +0000 (11:55 +0000)]
Fix and extend the -j option to pkill/pgrep WRT the jail
wildcard specifications. Earlier the only wildcard syntax
was "-j 0" for "any jail". There were at least
two shortcomings in it: First, jail ID 0 was abused; it
meant "no jail" in other utils, e.g., ps(1). Second, it
was impossible to match processed not in jail, which could
be useful to rc.d developers. Therefore a new syntax is
introduced: "-j any" means any jail while "-j none" means
out of jail. The old syntax is preserved for compatibility,
but now it's deprecated because it's limited and confusing.
Update the respective regression tests. While I'm here,
make the tests more complex but sensitive: Start several
processes, some in jail and some out of jail, so we can
detect that only the right processes are killed by pkill
or matched by pgrep.
bde [Thu, 23 Nov 2006 05:57:15 +0000 (05:57 +0000)]
Initialize a local variable in 2 places just before it is used, not always
at the start of rtalloc1(). This backs out part of revs 1.83 and 1.85.
Profiling on an i386 showed that that for sending tiny packets using
bge, -current takes 7 bzero()s where RELENG_4 takes only 1, and that
bzero()ing is now the dominant overhead (10-12%, up from 1%, but
profiling overestimated this a bit). This commit backs out 2 of the
6 extra bzero()s (1 in each of 2 calls per packet to rtalloc1()). They
were the largest ones by byte count (48 bytes each) but perhaps not
by time (small misaligned ones might take longer).
kmacy [Thu, 23 Nov 2006 02:25:16 +0000 (02:25 +0000)]
In contrast to the non-obvious and flexible nature of the optimized bcopy in t1_copy.S (which
shall retain its CDDL copyright, and thus likely be removed from GENERIC) I have removed the CDDL
from hcall.S because there is zero flexibility in the implementation of hypercalls as they derive
directly from the hypervisor interface which is not copyrighted (ironically the source for the
hypervisor itself is BSD licensed).
It is best to start any bikeshed about this as soon as possible.
kmacy [Thu, 23 Nov 2006 00:52:52 +0000 (00:52 +0000)]
Fix TSO support on sun4v
- incorporate csjp's fix for a mishandled endian conversion
- convert PAGE_SIZE to 4096 for PCIe adapter workaround (my page size is not 4k)
- implement em_read_pcie_cap_reg where we set the max read size on pcie to 4k (taken from mxge)
mohans [Wed, 22 Nov 2006 23:54:29 +0000 (23:54 +0000)]
Fix a race in soclose() where connections could be queued to the
listening socket after the pass that cleans those queues. This
results in these connections being orphaned (and leaked). The fix
is to clean up the so queues after detaching the socket from the
protocol. Thanks to ups and jhb for discussions and a thorough code
review.
rodrigc [Wed, 22 Nov 2006 23:01:40 +0000 (23:01 +0000)]
Mention that the following binaries have been detached
from the build: mount_devfs, mount_ext2fs,
mount_fdescfs, mount_procfs, mount_linprocfs, and mount_std.
rodrigc [Wed, 22 Nov 2006 22:58:10 +0000 (22:58 +0000)]
Detach mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs,
mount_linprocfs, and mount_std from the build. They are no longer
used, and can be replaced with "mount -t fstype".
imp [Wed, 22 Nov 2006 17:56:36 +0000 (17:56 +0000)]
Fix coherency issue. From submitter:
I have been debugging the usb problems some more. Your were
right in your assumption (thanks for the pointer) about lack
of calls to bus_dmamap_sync(). In usbdi.c bus_dmamap_sync()
does get used for transfers that move data from PC to USB and
it is used for transfers that move data from USB to PC. But
someone forgot that control transfers consist of possibly two
data chunks : the request itself and optionally a buffer of
data that should be transfered to or from the USB device. On
requests to the control endpoint without additional data
bus_dmamap_sync() didn't get called. For some reason my first
tests with umass worked (due to enough cache poisening I
guess). The attached patch adds a call to bus_dmamap_sync()
to usbdi.c and now all devices I have tried work out of the
box. I have successfully transfered large files using the
if_axe driver and I have mounted several different umass
devices.
sam [Wed, 22 Nov 2006 17:16:54 +0000 (17:16 +0000)]
Change error codes returned by protocol operations when an inpcb is
marked INP_DROPPED or INP_TIMEWAIT:
o return ECONNRESET instead of EINVAL for close, disconnect, shutdown,
rcvd, rcvoob, and send operations
o return ECONNABORTED instead of EINVAL for accept
These changes should reduce confusion in applications since EINVAL is
normally interpreted to mean an invalid file descriptor. This change
does not conflict with POSIX or other standards I checked. The return
of EINVAL has always been possible but rare; it's become more common
with recent changes to the socket/inpcb handling and with finer-grained
locking and preemption.
Note: there are other instances of EINVAL for this state that were
left unchanged; they should be reviewed.
gallatin [Wed, 22 Nov 2006 16:33:40 +0000 (16:33 +0000)]
Initialization bugfixes and enhancements:
- Fix bug preventing adoption of running firmware
- Set PCIe max read request size to 4KB
- Read PCIe link width from config space
- Assume aligned completions from the southbridge ports
of intel E5000 chips
- Use aligned firmware when link width is x4 or less
- Add hw.mxge.force_firmware tunable to allow user to force
selection of aligned (or unaligned) firmware
jb [Wed, 22 Nov 2006 07:52:14 +0000 (07:52 +0000)]
Add the SUBMAKE_TARGETS (like ppp_make) to the dependency list
for linking the crunched app so that when a parallel make is run
(like -j32 on sun4v), the link waits for the sub-make processes
to complete.
imp [Wed, 22 Nov 2006 06:51:59 +0000 (06:51 +0000)]
MFp4: Make it work :-)
o Don't delay when checking the done bits. There's no gain other
than a small performance hit.
o calculate the clock divisors better (things are still way slow,
so maybe there's more here?)
o don't always fail reset. Always succeed instead.
o fix inverted logic around at91_twi_wait() return value
o remove debug code
o remove unneeded, unworking junk
kmacy [Wed, 22 Nov 2006 04:13:30 +0000 (04:13 +0000)]
remove dead code from tsb.c
switch tsbscratch over to using order of number of pages as opposed to actual number of pages
switch tsb.c over to using wrappers for contig page allocation
jb [Tue, 21 Nov 2006 08:23:20 +0000 (08:23 +0000)]
Remove the KDTRACE option because I can't implement it the
way I intended due to licensing restrictions. I had intended
that it would be defaulted on, with opt-out possible for
companies that don't accept the CDDL. The FreeBSD GENERIC
kernel has to be entirely BSD licensed, so the only alternative
would have been to make KDTRACE an opt-in option. That isn't
a design I favour.
jmg [Tue, 21 Nov 2006 05:46:09 +0000 (05:46 +0000)]
don't mark the cksum as invalid here... off is incorrect when we get
here, it's either unset, or it's valid, so we don't need to do anything
different...
rodrigc [Tue, 21 Nov 2006 04:56:50 +0000 (04:56 +0000)]
Change reference from mount_devfs(8) to mount(8), and add an example.
Remove reference to mount_fdescfs(8), since mount(8) calls nmount()
directly to mount an fdescfs filesystem, instead of forking an
external mount_fdescfs program.
jhb [Mon, 20 Nov 2006 23:30:07 +0000 (23:30 +0000)]
Add suspend/resume support. Unlike many other NIC drivers,
bfe_init_locked() wasn't sufficient to bring the chip back to life, it also
required a call to bfe_chip_reset() during resume.