194378 Commits

Author SHA1 Message Date
rmacklem
ed84ea692f MFC: r259771
The NFSv4.1 client didn't return NFSv4.1 specific error codes
for the Getattr and Recall callbacks. This patch fixes it.
Since the NFSv4.1 specific error codes would only happen for
abnormal circumstances, this patch has little effect, in practice.
2013-12-30 21:24:41 +00:00
rmacklem
0594a08a57 MFC: r259089
Document the noncontigwr NFS mount option.
This is a content change.
2013-12-30 21:20:51 +00:00
rmacklem
72aa8bde0a MFC: r259084
For software builds, the NFS client does many small
synchronous (with FILE_SYNC) writes because non-contiguous
byte ranges in the same buffer cache block are being
written. This patch adds a new mount option "noncontigwr"
which allows the non-contiguous byte ranges to be combined,
with the dirty byte range becoming the superset of the bytes
that are dirty, if the file has not been file locked.
This reduces the number of writes significantly for software
builds. The only case where this change might break existing
applications is where an application is writing
non-overlapping byte ranges within the same buffer cache block
of a file from multiple clients concurrently.
Since such an application would normally do file locking on
the file, avoiding the byte range merge for files that have
been file locked should be sufficient for most (maybe all?) cases.
2013-12-30 21:17:20 +00:00
dim
955c58790e MFC r259928:
In sys/dev/bxe/bxe.c, remove static function bxe_has_tx_work_unload(),
which has never been used.

Reviewed by:	edavis
2013-12-30 20:32:27 +00:00
dim
b3248d4703 MFC r259902:
In sys/dev/drm/mach64_dma.c, remove static function mach64_set_dma_eol(),
which has never been used, even by upstream, since its initial upstream
commit (see http://cgit.freedesktop.org/mesa/drm/commit/?id=873e1c4d )
2013-12-30 20:27:58 +00:00
dim
5fce04bd49 MFC r257532 (by adrian):
Fix this build for clang.

MFC r259730:

To avoid having to explicitly test COMPILER_TYPE for setting
clang-specific or gcc-specific flags, introduce the following new
variables for use in Makefiles:

CFLAGS.clang
CFLAGS.gcc
CXXFLAGS.clang
CXXFLAGS.gcc

In bsd.sys.mk, these get appended to the regular CFLAGS or CXXFLAGS for
the right compiler.

MFC r259913:

For libstand and sys/boot, split off gcc-only flags into CFLAGS.gcc.

MFC r259927:

Fix pc98 build, by also forcing COMPILER_TYPE in sys/boot/pc98/boot2's
Makefile.

Pointy hat to:	dim
2013-12-30 20:15:46 +00:00
jmmv
8a773bc134 Fix 'make check-old' warnings when WITHOUT_TESTS is set.
This is a MFC of r258025 and r257940, both of which resolve issues with
dynamically setting the list of obsolete files based on the contents
of /usr/tests.
2013-12-30 14:09:04 +00:00
pluknet
1c55c369e7 MFC r259879: Clean up manual pages after BIND removal. 2013-12-30 13:05:19 +00:00
kib
cc03f8b1e5 MFC r259951:
Do not coalesce stack entry. Pass MAP_STACK_GROWS_DOWN and
MAP_STACK_GROWS_UP flags to vm_map_insert() from vm_map_stack()
2013-12-30 08:57:54 +00:00
mckusick
fc0cf40027 MFC of 256801, 256803, 256808, 256812, 256817, 256845, and 256860.
This set of changes puts in place the infrastructure to allow soft
updates to be multi-threaded. It introduces no functional changes
from its current operation.

MFC of 256860:

Allow kernels without options SOFTUPDATES to build.  This should fix the
embedded tinderboxes.

Reviewed by:    emaste

MFC of 256845:

Fix build problem on ARM (which defaults to building without soft updates).

Reported by:  Tinderbox
Sponsored by: Netflix

MFC of 256817:

Restructuring of the soft updates code to set it up so that the
single kernel-wide soft update lock can be replaced with a
per-filesystem soft-updates lock. This per-filesystem lock will
allow each filesystem to have its own soft-updates flushing thread
rather than being limited to a single soft-updates flushing thread
for the entire kernel.

Move soft update variables out of the ufsmount structure and into
their own mount_softdeps structure referenced by ufsmount field
um_softdep.  Eventually the per-filesystem lock will be in this
structure. For now there is simply a pointer to the kernel-wide
soft updates lock.

Change all instances of ACQUIRE_LOCK and FREE_LOCK to pass the lock
pointer in the mount_softdeps structure instead of a pointer to the
kernel-wide soft-updates lock.

Replace the five hash tables used by soft updates with per-filesystem
copies of these tables allocated in the mount_softdeps structure.

Several functions that flush dependencies when too many are allocated
in the kernel used to operate across all filesystems. They are now
parameterized to flush dependencies from a specified filesystem.
For now, we stick with the round-robin flushing strategy when the
kernel as a whole has too many dependencies allocated.

While there are many lines of changes, there should be no functional
change in the operation of soft updates.

Tested by:    Peter Holm and Scott Long
Sponsored by: Netflix

MFC of 256812:

Fourth of several cleanups to soft dependency implementation.
Add KASSERTS that soft dependency functions only get called
for filesystems running with soft dependencies. Calling these
functions when soft updates are not compiled into the system
become panic's.

No functional change.

Tested by:    Peter Holm and Scott Long
Sponsored by: Netflix

MFC of 256808:

Third of several cleanups to soft dependency implementation.
Ensure that softdep_unmount() and softdep_setup_sbupdate()
only get called for filesystems running with soft dependencies.

No functional change.

Tested by:    Peter Holm and Scott Long
Sponsored by: Netflix

MFC of 256803:

Second of several cleanups to soft dependency implementation.
Delete two unused functions in ffs_sofdep.c.

No functional change.

Tested by:    Peter Holm and Scott Long
Sponsored by: Netflix

MFC of 256801:

First of several cleanups to soft dependency implementation.
Convert three functions exported from ffs_softdep.c to static
functions as they are not used outside of ffs_softdep.c.

No functional change.

Tested by:    Peter Holm and Scott Long
Sponsored by: Netflix
2013-12-30 05:22:22 +00:00
scottl
db06903b84 Merge r256563:
In the flowtable scanner, restart the scan at the last found position,
not at position 0.  Changes the scanner from O(N^2) to O(N).

Reviewed by:    emax
Obtained from:  Netflix
2013-12-30 05:19:27 +00:00
pfg
63558da0f9 MFC r259005, r259092:
gcc: Add -flax-vector-conversions
gcc: new fvisibility-ms-compat option

These are useful for compatibility with newwer gcc and clang.

Obtained from:	gcc 4.3 (rev. 120572, 120688, 126088; GPLv2)
2013-12-30 03:39:46 +00:00
gjb
890135ba9f MFC r259868, r259881, 259955:
r259868 (jmmv):
  Delay copying of resolv.conf into the chroot until /etc
  exists.

r259881 (jmmv):
  Put the release objdir inside the chroot.

259955:
  Move build_doc_ports() to the if...fi block from which it is
  called.

Sponsored by:	The FreeBSD Foundation
2013-12-30 02:19:23 +00:00
jmmv
908cb17891 Add sample test programs.
This is a MFC of the following into stable/10:
- r258299 Add some sample test programs.
- r258552 Generate plain sh test programs from a source file.

As usual, "make tinderbox" clean on ref10-amd64.
2013-12-29 12:30:06 +00:00
pluknet
5b37933bb7 MFC r259922: Fix an apparent typo. 2013-12-29 09:17:43 +00:00
mckusick
9a9f8d23f5 MFC of 258789:
We needlessly panic when trying to flush MKDIR_PARENT dependencies.
We had previously tried to flush all MKDIR_PARENT dependencies (and
all the NEWBLOCK pagedeps) by calling ffs_update(). However this will
only resolve these dependencies in direct blocks. So very large
directories with MKDIR_PARENT dependencies in indirect blocks had
not yet gotten flushed. As the directory is in the midst of doing a
complete sync, we simply defer the checking of the MKDIR_PARENT
dependencies until the indirect blocks have been sync'ed.

Reported by: Shawn Wallbridge of imaginaryforces.com
Tested by:   John-Mark Gurney <jmg@funkthat.com>
PR:          183424
2013-12-29 07:26:48 +00:00
jmmv
2cc168fb9f Update atf to 0.18 and remove the code of the deprecated tools.
This is a MFC into stable/10 of:
- r258286 Update notes for imports of atf.
- r258289 MFV: Import atf-0.18.
- r258290 Drop all ATF tools code.

This is "make tinderbox" clean as run on ref10-amd64 with the default
WITHOUT_TESTS option.  A "make buildworld" with WITH_TESTS set now works
as well.
2013-12-29 02:57:10 +00:00
jmmv
17b80845b0 Plug the ATF tests into the build.
This is a MFC into stable/10 of:
- r257849 Add libatf-c++ to the prebuild libs.
- r257853 Build and install the atf tests.
- r258233 Move all atf directories to the tests mtree.
- r258285 Fix the build of some ATF tests.

This change is "make tinderbox" clean on ref10-amd64 with the default
settings of WITHOUT_TESTS.  It is likely for the WITH_TESTS build to
still be broken because not all relevant changes have been merged yet.
2013-12-28 23:08:58 +00:00
jmmv
b8ce141a40 Set up the /usr/tests hierarchy.
This is a MFC of the following into stable/10:
- r257097 Set up the /usr/tests hierarchy.
- r257098 Add missing WITHOUTTESTS file.
- r257100 Add a tests(7) manual page.
- r257105 Disable WITHTESTS= for now.
- r257848 Fix buildworld when WITHTESTS is enabled.
- r257850 Subsume the functionality of MKATF into MKTESTS.
- r257851 Handle the removal of the test suite when WITHOUTTESTS=yes.
- r257852 Install category Kyuafiles from their category directories.
- r258232 Install BSD.tests.mtree when MKTESTS is yes.

Note that building with WITH_TESTS is still broken at this point (and
hence why WITHOUT_TESTS is the set as the default).  Subsequent pullups
will fix the remaining issues.
2013-12-28 20:05:31 +00:00
pfg
4eef328225 MFC r259666, r259696:
gcc: warnings from -Wformat-security

Obtained from:	Apple GCC 4.2 - 5646 (Radar 5764921)
2013-12-28 20:02:49 +00:00
trociny
cc424717c7 MFC r257155, r257582, r259191, r259192, r259193, r259194, r259195, r259196:
r257155:

Make hastctl list command output current queue sizes.

Reviewed by:	pjd

r257582 (pjd):

Correct alignment.

r259191:

For memsync replication, hio_countdown is used not only as an
indication when a request can be moved to done queue, but also for
detecting the current state of memsync request.

This approach has problems, e.g. leaking a request if memsynk ack from
the secondary failed, or racy usage of write_complete, which should be
called only once per write request, but for memsync can be entered by
local_send_thread and ggate_send_thread simultaneously.

So the following approach is implemented instead:

1) Use hio_countdown only for counting components we waiting to
   complete, i.e. initially it is always 2 for any replication mode.

2) To distinguish between "memsync ack" and "memsync fin" responses
   from the secondary, add and use hio_memsyncacked field.

3) write_complete() in component threads is called only before
   releasing hio_countdown (i.e. before the hio may be returned to the
   done queue).

4) Add and use hio_writecount refcounter to detect when
   write_complete() can be called in memsync case.

Reported by:	Pete French petefrench ingresso.co.uk
Tested by:	Pete French petefrench ingresso.co.uk

r259192:

Add some macros to make the code more readable (no functional chages).

r259193:

Fix compiler warnings.

r259194:

In remote_send_thread, if sending a request fails don't take the
request back from the receive queue -- it might already be processed
by remote_recv_thread, which lead to crashes like below:

  (primary) Unable to receive reply header: Connection reset by peer.
  (primary) Unable to send request (Connection reset by peer):
      WRITE(954662912, 131072).
  (primary) Disconnected from kopusha:7772.
  (primary) Increasing localcnt to 1.
  (primary) Assertion failed: (old > 0), function refcnt_release,
      file refcnt.h, line 62.

Taking the request back was not necessary (it would properly be
processed by the remote_recv_thread) and only complicated things.

r259195:

Send wakeup to threads waiting on empty queue before releasing the
lock to decrease spurious wakeups.

Submitted by:	davidxu

r259196:

Check remote protocol version only for the first connection (when it
is actually sent by the remote node).

Otherwise it generated confusing "Negotiated protocol version 1" debug
messages when processing the second connection.
2013-12-28 19:21:22 +00:00
jmmv
4fc4ae2567 Pull up fixes to allow building tests along scripts and data files.
MFC of the following into stable/10:
- r257095 Allow mixing bsd.files.mk with bsd.subdir.mk.
- r258095 Allow this (bsd.progs.mk) to work with fmake.
- r258330 Need to also test for defined(${v}_${PROG}) in bsd.progs.mk.
- r259209 Make bsd.progs.mk work in directories with SCRIPTS but no PROGS.

This is all 'make tinderbox' clean as run on ref10-amd64.
2013-12-28 16:08:10 +00:00
peter
db4a84c1c2 Catch up with r259980 and handle renamed deflate.c. 2013-12-28 15:19:47 +00:00
jmmv
4fa84cba37 MFC r257631: Add myself to the committers-src list and to the calendar. 2013-12-28 13:08:47 +00:00
dim
0ea883f161 MFC r259897:
In sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c, remove static functions
mk_cpl_barrier_ulp(), mk_get_tcb_ulp() and mk_set_tcb_field_ulp(), which
are all unused since r237263.
2013-12-28 02:15:30 +00:00
dim
3473287ac7 MFC r259896:
In sys/dev/cxgb/common/cxgb_mc5.c, remove static function
dbgi_wr_addr3(), which is unused since r167514.
2013-12-28 02:11:17 +00:00
dim
ecbf461bca MFC r259893:
In sys/vm/vm_pageout.c, since vm_pageout_worker() takes a void * as
argument, cast the incoming 0 argument to void *, to silence a warning
from clang 3.4 ("expression which evaluates to zero treated as a null
pointer constant of type 'void *' [-Wnon-literal-null-conversion]").
2013-12-28 02:07:29 +00:00
dim
d0987645bf MFC r259892:
In sys/kern/vfs_mountroot.c, remove static function parse_isspace(),
which is unused since r214006.
2013-12-28 02:00:33 +00:00
dim
9191fc023f MFC r259888:
Pull in r183971 from upstream llvm trunk:

  X86: cvtpi2ps is just an SSE instruction with MMX operands. It has no AVX
  equivalent.

  Give it the right register format so we can also emit it when AVX is enabled.

This should fix a "Cannot select: intrinsic %llvm.x86.sse.cvtpi2ps" fatal error
in clang while building the gnuradio port for amd64.

Reported by:	db
2013-12-28 01:56:04 +00:00
dim
d517c0e1a4 MFC r259876:
In sys/kern/subr_witness.c, remove static function
witness_lock_order_key_empty(), which is unused since r181695.
2013-12-28 01:52:52 +00:00
dim
e1aa82b3d2 MFC r259880:
In sys/dev/sym/sym_hipd.c, remove static functions sym_que_first(),
sym_que_last() and sym_remque_tail(), which are all unused since r53790.
2013-12-28 01:47:19 +00:00
dim
03dc4a0e5e MFC r259875:
In sys/kern/sched_ule.c, remove static function sched_both(), which is
unused since r232207.
2013-12-28 01:42:20 +00:00
dim
d72ff8ac8e MFC r259869:
In sys/dev/mwl/if_mwl.c, put the static RD4() function under #ifdef
MWL_DEBUG guards, since it only used in DPRINTF statements.
2013-12-28 01:33:42 +00:00
dim
d66753f8cd MFC r259842:
Remove some unused static const strings under sys/rpc, which have never
been used since the initial commit (r177633).

MFC r259843:

Move a static const variable to the #if 0 part where it is only used.
(Note the #if 0 part has been inactive since the initial commit,
r177633, so maybe it should be removed altogether).
2013-12-28 01:26:26 +00:00
dim
5b742ab941 MFC r259840:
In sys/netinet6/in6_mcast.c, in6m_is_ifp_detached() is only used
whenever KTR is defined, so put it between #ifdef KTR guards.  This
avoids a warning about a unused function if KTR is not enabled.
2013-12-28 01:19:48 +00:00
dim
58bc1e001e MFC r259839:
In sys/netinet/in_mcast.c, inm_is_ifp_detached() is only used whenever
KTR is defined, so put it between #ifdef KTR guards.  This avoids a
warning about a unused function if KTR is not enabled.
2013-12-28 01:15:34 +00:00
dim
20a8dfaced MFC r259833:
Remove another unused static const variable num_chip_names, from
aic7xxx.c this time.

Noticed by:	pluknet
2013-12-28 01:08:40 +00:00
peter
cb16a1bd34 MFC r259109: allow ZFS to co-habitate with crypto / aesni 2013-12-28 01:03:30 +00:00
dim
9536e2a918 MFC r259827:
Remove unused static const variable num_chip_names from aic79xx.c.

Reviewed by:	gibbs
2013-12-28 00:53:20 +00:00
dim
8bd563e158 MFC r259825:
Remove unused static function adwccbstatus() from adw(4).

Reviewed by:	gibbs
2013-12-28 00:16:58 +00:00
dim
7b0e1bcf7d MFC r259756:
Get rid of register keyword usage in gperf, it is totally obsolete for
C++, and this allows gperf to be compiled for C++11 without a warning
about it.
2013-12-28 00:03:15 +00:00
delphij
a74695269c MFC r259973:
Tighten default restrictions for ntpd(8) server and provide a link
to NTP access restriction documentation.
2013-12-27 23:09:40 +00:00
markj
62fbf016fd MFC r258000:
Consistently add the relocation offset only when the ELF type is not
ET_EXEC. This fixes several problems with the DTrace pid provider not
being able to match probes.
2013-12-27 23:00:56 +00:00
markj
c911703d60 MFC r257670:
Modify the libproc breakpoint add/remove functions to stop the target
process if it has not already been stopped, since this is required for
ptrace(2) to work.

libdtrace does not seem to stop target processes before trying to remove
their breakpoints, so we were previously failing to remove the breakpoint
on r_debug_state() in rtld. This was causing processes to die with SIGTRAP
if they called dlopen(3) after dtrace(1) had detached.
2013-12-27 22:30:36 +00:00
markj
c8ab069033 MFC r257300:
Fix an off-by-one error when checking whether a given address is within
the extent of a symbol.
2013-12-27 22:19:19 +00:00
adrian
899f5ffc89 Revert r252694 from stable/10 to fix instabilities seen with jemalloc + dhclient/sshd.
This is a direct commit to stable/10 as the VM code has changed
since the stable/10 branch.

PR:		kern/185046
2013-12-27 22:05:51 +00:00
jmmv
e125f95c9c Split and extend bsd.test.mk into {atf,plain,tap}.test.mk.
This is a MFC of:

- r256761 Clearly split the logic to build ATF and plain tests apart.
- r256762 Add the automatic generation of Atffile files.
- r256763 Add the automatic generation of Kyuafile files.
- r256764 Plug atf-run into the 'test' target.
- r256765 Plug kyua into the 'test' target.
- r257096 Move the TESTSBASE definition to bsd.own.mk.
- r257099 Add missing plain.test.mk.
- r258297 Remove registration of C++ test programs into PROGS.
- r258298 Fix the build of plain test programs.
- r258551 Install plain.test.mk.
- r259208 Add tap.test.mk.

Approved by:	rpaulo (mentor)
2013-12-27 22:00:22 +00:00
jhb
33f454b5c1 MFC 258063,258064,258066,258097,258185,259134:
- Add an -s option to the regression tests that specifies a path to an
  alternate etcupdate.sh script to test.  This allows a non-installed
  version of the script to be tested more easily.
- Add a pre-world mode of updating similar to the -p option that can be
  passed to mergemaster.
- Fix a couple of issues with -F:
  - Fix ALWAYS_INSTALL to take precedence over the FreeBSD ID checks.
  - Fix the -F option in the case that the only upstream change is a
    change in the FreeBSD ID and the local file is removed.
- Refresh /etc/localtime after each update using tzsetup -r.
- Regenerate /var/db/services.db when /etc/services changes.
2013-12-27 19:53:42 +00:00
pfg
020ad1f282 gcc: Merge upstream changes.
Include types in error message for build_binary_op.

Mostly cosmetic changes, to reduce differences with Apple's gcc.

Obtained from:	gcc 4.3 (rev. 120611, 124839, 125239; GPLv2)
2013-12-27 16:06:08 +00:00
jhb
285471a802 MFC 259014: There is no sysctl with the MIB { CTL_KERN, KERN_MAXID }. 2013-12-26 16:57:36 +00:00