summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* MFC r278449, r278926:gjb2015-12-304-22/+34
| | | | | | | | | | | | | r278449: Enable multi-threaded xz(1) compression for release install media. r278926 (rpaulo): Use xz(1) via pipe when compressing the release distribution tarballs. Tested on: stable/10@r292855 Sponsored by: The FreeBSD Foundation
* MFC r292765: Allocate separate scratch space for scanner purposes.mav2015-12-302-114/+95
| | | | | | | | This space does not require DMA syncing. It reduces lock scope of the DMA scratch space. It allows whole DMA scratch space to be used to I/O, so now we can fetch up to ~1000 ports from SNS. Due to the last fact, increase maximal number of ports from 256 to 1024.
* MFC r292764: Split DMA buffers for request, response and ATIO queues.mav2015-12-303-180/+222
|
* MFC r292745: Use single DMA tag for scratch areas of all virtual ports.mav2015-12-302-28/+32
|
* MFC r292741: Make port logins asynchronous, following r292739 logic.mav2015-12-301-66/+55
| | | | | This is even more important since it involves more network operations and more prone to delays and timeouts.
* MFC r292739: Make virtual ports control asynchronous.mav2015-12-303-87/+111
| | | | | | | | | | | | Before this change virtual ports control IOCBs were executed synchronously via Execute IOCB mailbox command. It required exclusive use of scratch space of driver and mailbox registers of the hardware. Because of that shared resources use this code could not really sleep, having to spin for completion, blocking any other operation. This change introduces new asynchronous design, sending the IOCBs directly on request queue and gracefully waiting for their return on response queue. Returned IOCBs are identified with unified handle space from r292725.
* MFC r292725: Unify handles allocation for initiator and target IOCBs.mav2015-12-307-191/+60
| | | | | | I am not sure why this was split long ago, but I see no reason for it. At this point this unification just slightly reduces memory usage, but as next step I plan to reuse shared handle space for other IOCB types.
* MFC r292715: Clear virtual port's port database when disabling it.mav2015-12-303-165/+153
| | | | | Previously it was done only on full chip reinit, that caused old ports resurrect in case of virtual port reenabling.
* MFC r292690: Some polishing for command timeouts handling.mav2015-12-303-20/+23
|
* MFC r292610: Fix speed setting by NVRAM for 24xx and above chips.mav2015-12-301-2/+26
|
* Bump __FreeBSD_version per pci(4) changes made in r292907ngie2015-12-301-1/+1
| | | | Sponsored by: EMC / Isilon Storage Division
* MFC r270212,r270332:ngie2015-12-305-22/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This helps reduce the diff in pci(4) between head and stable/10 to help pave the way for bringing in IOV/nv(9) more cleanly Differential Revision: https://reviews.freebsd.org/D4728 Relnotes: yes Reviewed by: hselasky (ofed piece), royger (overall change) Sponsored by: EMC / Isilon Storage Division r270212 (by royger): pci: make MSI(-X) enable and disable methods of the PCI bus Make the functions pci_disable_msi, pci_enable_msi and pci_enable_msix methods of the newbus PCI bus. This code should not include any functional change. Sponsored by: Citrix Systems R&D Reviewed by: imp, jhb Differential Revision: https://reviews.freebsd.org/D354 dev/pci/pci.c: - Convert the mentioned functions to newbus methods. - Fix the callers of the converted functions. sys/dev/pci/pci_private.h: dev/pci/pci_if.m: - Declare the new methods. dev/pci/pcivar.h: - Add helpers to call the newbus methods. ofed/include/linux/pci.h: - Add define to prevent the ofed version of pci_enable_msix from clashing with the FreeBSD native version. r270332 (by royger): pci: add a new pci_child_added newbus method. This is needed so when running under Xen the calls to pci_child_added can be intercepted and a custom Xen method can be used to register those devices with Xen. This should not include any functional change, since the Xen implementation will be added in a following patch and the native implementation is a noop. Sponsored by: Citrix Systems R&D Reviewed by: jhb dev/pci/pci.c: dev/pci/pci_if.m: dev/pci/pci_private.h: dev/pci/pcivar.h: - Add the pci_child_added newbus method.
* MFC r267858:royger2015-12-302-68/+25
| | | | | | | | | | | | xen/virtio: fix balloon drivers to not mark pages as WIRED In the Xen case make sure pages are zeroed before giving them back to the hypervisor, or else we might be leaking data. Also remove the balloon_{append/retrieve} and link pages directly into the ballooned_pages queue using the plinks.q field in the page struct. Sponsored by: Citrix Systems R&D Requested by: bapt
* MFC r292658: Install ld also as ld.bfd, for use with cc -fuse-ld=bfdemaste2015-12-301-0/+1
|
* MFC of 291244, 291380, 291459, 291460, 291671, and 291743:mckusick2015-12-305-131/+364
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This MFC includes changes to better manage the vnode freelist and to streamline the allocation and freeing of vnodes. Note that to maintain the KPI the VI_AGE flag is left defined in sys/vnode.h though its use is dropped as described in 291380. To maintain KBI the vfs.vlru_alloc_cache_src sysctl variable remains though it no longer has any effect as described in 291244. MFC of 291244: Move the comment about resident pages preventing vnode from leaving active list, into the header comment for vdrop(), which is the function that decides whether to leave the vnode on the list. Note that dirty page write-out in vinactive() is asynchronous. Discussed with: alc Sponsored by: The FreeBSD Foundation MFC of 291380: Remove VI_AGE vnode iflag, it is unused. Noted by: bde Sponsored by: The FreeBSD Foundation MFC of 291459: For performance reasons, it is useful to have a single string used as the name of a filesystem when setting it as the first parameter to the getnewvnode() function. Most filesystems call getnewvnode from just one place so can use a literal string as the first parameter. However, NFS calls getnewvnode from two places, so we create a global constant string that can be used by the two instances. This change also collapses two instances of getnewvnode() in the UFS filesystem to a single call. Reviewed by: kib Tested by: Peter Holm MFC of 291460: As the kernel allocates and frees vnodes, it fully initializes them on every allocation and fully releases them on every free. These are not trivial costs: it starts by zeroing a large structure then initializes a mutex, a lock manager lock, an rw lock, four lists, and six pointers. And looking at vfs.vnodes_created, these operations are being done millions of times an hour on a busy machine. As a performance optimization, this code update uses the uma_init and uma_fini routines to do these initializations and cleanups only as the vnodes enter and leave the vnode_zone. With this change the initializations are only done kern.maxvnodes times at system startup and then only rarely again. The frees are done only if the vnode_zone shrinks which never happens in practice. For those curious about the avoided work, look at the vnode_init() and vnode_fini() functions in kern/vfs_subr.c to see the code that has been removed from the main vnode allocation/free path. Reviewed by: kib Tested by: Peter Holm MFC of 291671: We need to zero out the union of pointers in a freed vnode structure. Fix from: Mateusz Guzik Tested by: Jason Unovitch MFC of 291743: We need to zero out the clustering variables in a freed vnode structure. For completeness add a VNASSERT that there are no threads waiting on a range lock (this was previously checked on every vnode free). Reported by; Rick Macklem Fix from: Mateusz Guzik
* crunchide: Restore IA-64 support accidentally lost in r292421 mismergeemaste2015-12-291-0/+1
| | | | Reported by: ngie
* MFC r265842,r266120,r266121,r266959,r267148,r269985,r281789,r282261,r285064:ngie2015-12-292-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r265842 (by eadler): arcconfig: add one Add a .arcconfig to allow arc to work in its usual way. r266120 (by bapt): Add project name to the arc config it is still required when arcanist is used with SVN r266121 (by bapt): Add the missing coma r266959 (by eadler): arc: add linting for python files r267148 (by bapt): Prevent arc commands from overwriting history r269985 (by gjb): Update the URL to the phabricator instance. Sponsored by: The FreeBSD Foundation r281789 (by eadler): phabricator related changes: - don't lint either contrib or crypto: these are both externally written directories - add additional linters for spelling (check common typos like teh -> the) - chmod linter checks for executible bit on bad files - merge-conflict checks for merge conflict tokens then may have been resolved incorrectly - filename checks for back characters in filenames - json for json syntax correctness - remove history.immutable: it is meaningless on subversion, and causes workflow problems when trying to use git. It it set to 'true' by default with hg r282261 (by eadler): Phabricator: enable "history.immutable": With certain arc workflows leaving history.immutable as false results in using the upstream template instead of our usual commit template. Since the git workflow issues alluded to in my prior commit message can be worked around, set history.immutable once again. r285064 (by mat): Add repository.callsign, to help arcanist figure out what repo it's doing things on when not using Subversion. With hat: phabric-admin@ Sponsored by: Absolight
* MFC r292621:kib2015-12-291-7/+14
| | | | | Keep devfs mount locked for the whole duration of the devfs_setattr(), and ensure that our dirent is instantiated.
* MFC r292620:kib2015-12-291-1/+2
| | | | Show the actual error code when interpreter cannot be loaded.
* MFC r292585:ngie2015-12-291-0/+1
| | | | | | | | | Prevent use-after-free with ctx->ns in set_nameservers(..), which could occur if the memory wasn't allocated again later on Reported by: Coverity Submitted by: Miles Ohlrich <miles.ohlrich@isilon.com> Sponsored by: EMC / Isilon Storage Division
* MFC r292582:ngie2015-12-291-2/+3
| | | | | | | | Dump out the output from flock_helper on failure so failures with the test app can be debugged Obtained from: Isilon OneFS (^/onefs/head@r511419) Sponsored by: EMC / Isilon Storage Division
* MFC r292581:ngie2015-12-292-1/+14
| | | | | | | | | | | | Use stable output to a test file instead of depending on the OS name being grep'able in /bin/sh This fixes the situation where the OS has been rebranded to something other than `FreeBSD` Obtained from: Isilon OneFS (^/onefs/head@r511419) Reviewed by: cem, Daniel O'Connor <darius@dons.net.au> Sponsored by: EMC / Isilon Storage Division
* MFC r292578:ngie2015-12-292-0/+24
| | | | | | | | | | | | | | Don't dump core files with lib/libc/ssp/ssp_test and lib/libc/gen/assert_test The default `sysctl kern.corefile` value is compatible with `kyua test` (FreeBSD will dump to the current directory). If it's set to an absolute path however, `kyua test` will not be able to clean up the corefiles after the fact The corefiles have little value when testing the behavior of feature behavior, so just disable corefile generation Obtained from: Isilon OneFS (^/onefs/head@r511419) Sponsored by: EMC / Isilon Storage Division
* MFC r292550, r292595:ume2015-12-291-12/+4
| | | | | Simplify _map_v4v6_address(). We don't need to use a temporary buffer, here.
* MFC r292569:ngie2015-12-283-21/+31
| | | | | | | | | | | | | | | | | | | | | Make the mac_portacl testcases work / more robust - A trap(1) call has been added to the test scripts to better ensure that the tests do a better job at trying to restore the test host state at the end of the tests (if the test was interrupted before it would leave the system in an odd state, potentially making the test results for subsequent runs non-deterministic). - Add root user checks - Fix nc(1) usage: -- -o is deprecated -- Using `-w 10` will make the call timeout after 10 seconds so it doesn't block indefinitely - Use local variables - Be more terse in the error messages - Parameterize out "127.0.0.1" Sponsored by: EMC / Isilon Storage Division
* MFC r292317,r292318,r292323,r292324,r292665:ngie2015-12-2815-0/+5797
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r292317: Integrate tools/regression/lib/libc/resolv into the FreeBSD test suite as lib/libc/tests/resolv Convert the testcases to ATF Sponsored by: EMC / Isilon Storage Division r292318: Add Makefile accidentally missed in r292317 Sponsored by: EMC / Isilon Storage Division r292323: Integrate tools/regression/lib/libc/nss into the FreeBSD test suite as lib/libc/tests/nss - Convert the testcases to ATF - Do some style(9) cleanups: -- Sort headers -- Apply indentation fixes -- Remove superfluous parentheses - Explicitly print out debug printfs for use with `kyua {debug,report}`; for items that were overly noisy, they've been put behind #ifdef DEBUG conditionals - Fix some format strings Sponsored by: EMC / Isilon Storage Division r292324: Iterate down lib/libc/tests/nss... Sponsored by: EMC / Isilon Storage Division r292665: Increase the timeout for resolv_test from the default (300 seconds) to 450 seconds This is required on slower network connections, and on older releases (stable/10 seems to be slower as far as name resolution goes.. not sure why yet). Remove an outdated comment in the Makefile from when I was working on this code over a year ago on github Sponsored by: EMC / Isilon Storage Division
* MFC r290515: periodic: Fix backwards compatibility forjilles2015-12-281-2/+2
| | | | | | | | | | | daily_status_security_* vars. Most daily_status_security_* variables in periodic.conf were changed to security_status_* in SVN r254974. The compatibility code for the old names did not work. PR: 204331 Submitted by: martin at lispworks.com
* MFC r290337: Add sysrc(8) support for "rc.conf.d"dteske2015-12-282-12/+238
| | | | | | Differential Revision: https://reviews.freebsd.org/D3551 Reviewed by: allanjude Relnotes: yes
* MFC r292541:kib2015-12-281-32/+32
| | | | Recheck curthread->td_su after the VFS_SYNC() call.
* MFC r292445, r292554:ume2015-12-282-8/+6
| | | | Use _map_v4v6_address().
* MFC r292539:ume2015-12-281-1/+6
| | | | | | | If we end up following a CNAME chain that does not find any data return that instead of internal error. PR: 156684
* MFC r292706:pkelsey2015-12-2813-19/+881
| | | | | | | | | | Implementation of server-side TCP Fast Open (TFO) [RFC7413]. TFO is disabled by default in the kernel build. See the top comment in sys/netinet/tcp_fastopen.c for implementation particulars. Differential Revision: https://reviews.freebsd.org/D4350 Sponsored by: Verisign, Inc.
* MFC r292507,r292508:ngie2015-12-284-9/+9
| | | | | | | | | | | | | | | | | | | r292507: - Use LOCALBASE instead of KYUA_PREFIX for the --prefix to kyua(1) - Use LOCALBASE instead of hardcoding /usr/local for perl Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Reviewed by: emaste, Evan Cramer <eccramer@gmail.com> Sponsored by: EMC / Isilon Storage Division r292508: Document LOCALBASE in the bsd.test.mk section Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Reviewed by: emaste, Evan Cramer <eccramer@gmail.com> Sponsored by: EMC / Isilon Storage Division
* MFC r292518.cy2015-12-271-2/+2
| | | | | | | Don't assume checksums will be calculated later when fastfoward is enabled (by default in r290383). PR: 72210
* MFC r292489:ngie2015-12-271-0/+2
| | | | | | | | | Disable test-ctrig.t testcases which fail assertions on i386 Tested on: stable/10 (amd64/i386), head (amd64/i386) PR: 205446 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division
* MFC r292492,r292495,r292647:ngie2015-12-271-12/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | r292492: - Use nitems instead of handrolling the macro - Use a separate variable for tracking the testcase count instead of hardcoding the offset for the testcases Sponsored by: EMC / Isilon Storage Division r292495: Initialize j so it doesn't print out a garbage index Use it consistently instead of i in the first loop Sponsored by: EMC / Isilon Storage Division r292647: Use j instead of a hardcoded index (9) and increment it after running the NaNs testcases Pointyhat to: ngie Sponsored by: EMC / Isilon Storage Division
* MFC: r285684 (partial)marius2015-12-271-0/+2
| | | | | Record dependencies of gdb/gdbtui/kgdb on binutils/lib{bfd,iberty,opcodes}, fixing parallel builds.
* MFC r292661:ngie2015-12-271-2/+0
| | | | | | | | | | | Remove redundant vmbus_select_outgoing_channel declaration already handled in include/hyperv.h This unbreaks the gcc 4.2.1 kernel build of hyperv Differential Revision: https://reviews.freebsd.org/D4684 Reviewed by: royger Sponsored by: EMC / Isilon Storage Division
* MFC r284969:ngie2015-12-271-1/+1
| | | | | | | | | r284969 (by lwhsu): - Fix `make depend` in sys/modules Differential Revision: https://reviews.freebsd.org/D2951 Approved by: delphij
* MFC r292491,r292493,r292496:ngie2015-12-272-3/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r292491: Disable test-ctrig.t testcases which fail assertions on i386 [*] Also, don't compile the exp2l(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* Tested on: stable/10 (amd64/i386), head (amd64/i386) PR: 205446 [*] X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292493: Don't run test-fma on i386 It completely fails all assertions on i386 on both stable/9 and stable/10 PR: 205448 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292496: Skip the testcases on i386 (all the assertions fail) [*] Also, don't compile the ldexpl(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* PR: 205449 [*] Tested on: stable/10 (amd64/i386), head (amd64/i386) Sponsored by: EMC / Isilon Storage Division
* MFC: r285840marius2015-12-272-9/+14
| | | | | | | | | - In mpt_send_handshake_cmd(), use bus_space_write_stream_4(9) for writing raw data to the doorbell offset in order to clarify the intent and for avoiding unnecessarily converting the endianess back and forth. Unfortunately, the same can't be done in mpt_recv_handshake_reply() as 16-bit data needs to be read using 32-bit bus accessors. - In mpt_recv_handshake_reply(), get rid of a redundant variable.
* MFC: r285909, r285913 (partial)marius2015-12-271-71/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | - Probe UICLASS_CDC/UISUBCLASS_ABSTRACT_CONTROL_MODEL/0xff again. This variant of Microsoft RNDIS, i. e. their unofficial version of CDC ACM, has been disabled in r261544 (r262363 in stable/10) for resolving a conflict with umodem(4). Eventually, in r275790 (r276243 in stable/10) that problem was dealt with in the right way. However, r275790 failed to put probing of RNDIS devices in question back. - Initialize the device prior to querying it, as required by the RNDIS specification. Otherwise already determining the MAC address may fail rightfully. - On detach, halt the device again. - Use UCDC_SEND_ENCAPSULATED_{COMMAND,RESPONSE}. While these macros are resolving to the same values as UR_{CLEAR_FEATURE,GET_STATUS}, the former set is way more appropriate in this context. - Report unknown - rather: unimplemented - events unconditionally and not just in debug mode. This ensures that we'll get some hint of what is going wrong instead of the driver silently failing. - Deal with the Microsoft ActiveSync requirement of using an input buffer the size of the expected reply or larger - except for variably sized replies - when querying a device. - Fix some pointless NULL checks, style bugs etc. This changes allow urndis(4) to communicate with a Microsoft-certified USB RNDIS test token.
* MFC: r285912marius2015-12-271-5/+6
| | | | | | - Use __FBSDID(). - Const'ify cons_to_vga_colors. - Fix line wrapping.
* MFC: r287726marius2015-12-2712-975/+621
| | | | | | | | | | | | - Factor out the common and generic parts of the sparc64 host-PCI-bridge drivers into the revived sys/sparc64/pci/ofw_pci.c, previously already serving a similar purpose. This has been done with sun4v in mind, which explains a) the otherwise not that obvious scheme employed and b) why reusing sys/powerpc/ofw/ofw_pci.c was even lesser an option. - Add a workaround for QEMU once again not emulating real machines, in this case by not providing the OFW_PCI_CS_MEM64 range. [1] Submitted by: jhb [1]
* MFC: r287728marius2015-12-271-9/+11
| | | | | | | | Merge r286374 from x86: Formally pair store_rel(&smp_started) with load_acq(&smp_started). Similarly to x86, this change is mostly a NOP due to the kernel being run in total store order.
* MFC r292517: sh/mknodes: Close files and check for errors when writing.jilles2015-12-271-5/+15
| | | | | | This is a build tool only and does not affect run time. PR: 204951
* MFC: r287767marius2015-12-271-11/+24
| | | | | | | | | | | | | | | | | | | | | | | | | - Sanity check that the parent ranges given in the "ranges" property of PCI-EBus-bridges actually match the BARs as specified in and required by [1, p. 113 f.]. Doing so earlier would have simplified diagnosing a bug in QEMU/OpenBIOS getting the mapping of child addresses wrong, which still needs to be fixed there. In theory, we could try to change the BARs accordingly if we hit this problem. However, at least with real machines changing the decoding likely won't work, especially if the PCI-EBus-bridge is beneath an APB one. So implementing such functionality generally is rather pointless. - Actually change the allocation type of EBus resources if they change from SYS_RES_MEMORY to SYS_RES_IOPORT when mapping them to PCI ranges in ebus_alloc_resource() and passing them up to bus_activate_resource(9). This may happen with the QEMU/OpenBIOS PCI-EBus-bridge but not real ones. Still, this is only cleans up the code and the result of resource allocation and activation is unchanged. - Change the remainder of printf(9) to device_printf(9) calls and canonicalize their wording. Peripheral Component Interconnect Input Output Controller, Part No.: 802-7837-01, Sun Microelectronics, March 1997 [1]
* MFC: r287768, r290566, r290946marius2015-12-272-19/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Although it doesn't make a whole lot of sense to enable RX and TX before their initial configuration is done, it turns out that r281337 (MFCed to stable/10 in r285177) has the inverse effect on some older chips. Moreover, as with newer chips before, two chips seemingly identical according to their MAC revisions may behave differently in this regard, with most working but a few not, making changes extremely hard to test. Closer inspection of the corresponding Linux code suggests that RX and TX should only be enabled after their initial configuration with RTL8168G and later chips, i. e. RTL8106E{,US}, RTL8107E, as well as RTL8168{EP,G,GU,H}, so limit the new code path to these. [1] - Distinguish between RTL8168H and RTL8107E, with the latter being the 10/100-Mbit/s-only variant of the former. - For MAC variants that can only do Fast Ethernet at a maximum, ensure that we don't advertise Gigabit Ethernet speed. - In re_stop(), do the inverse of re_init_locked() and enable RXDV gate on RTL8168G and later chips again, matching what Linux does. - With the latter in place, it turns out that WOL previously only worked by accident with RTL8168G and later chips when the interface actually was brought up. This is due to the fact that with these MAC variants, RXDV gate needs be disabled for WOL to work. So in re_setwol() do just that when IFCAP_WOL is requested. - Add preliminary support for RTL8168H and RTL8107E, with the latter being the 10/100-Mbit/s-only variant of the former.
* MFC: r271864marius2015-12-278-7/+7
| | | | Move rl(4) to dev/rl.
* MFC r292513: clock_gettime(2),gettimeofday(2): Remove [EFAULT] error.jilles2015-12-272-8/+2
| | | | | | | | | Depending on system configuration and parameters, clock_gettime() and gettimeofday() may not be system calls. If so, passing an invalid pointer will cause a signal and not an [EFAULT] error. From a standards perspective, this is OK since passing an invalid pointer is undefined behaviour.
OpenPOWER on IntegriCloud