summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Remove empty lines before return statements for style consistency.jkim2013-08-212-11/+0
| |
* | Implement atomic_swap() and atomic_testandset().jkim2013-08-213-51/+166
| | | | | | | | Reviewed by: arch, bde, jilles, kib
* | Change the name of this particular event to reflect the name used inadrian2013-08-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linux and Intel examples. Sourced: * https://github.com/andikleen/pmu-tools/blob/master/snb-client.csv * http://software.intel.com/en-us/comment/1747932#comment-1747932 Note: * It's not currently in the Intel SDM; I need to chase down what's going on. Tested: * Sandy Bridge
* | Fix mps(4) driver breakage that came in in change 253550 thatken2013-08-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | manifested itself in out of chain frame conditions. When the driver ran out of chain frames, the request in question would get completed early, and go through mpssas_scsiio_complete(). In mpssas_scsiio_complete(), the negation of the CAM status values (CAM_STATUS_MASK | CAM_SIM_QUEUED) was ORed in instead of being ANDed in. This resulted in a bogus CAM CCB status value. This didn't show up in the non-error case, because the status was reset to something valid (e.g. CAM_REQ_CMP) later on in the function. But in the error case, such as when the driver ran out of chain frames, the CAM_REQUEUE_REQ status was ORed in to the bogus status value. This led to the CAM transport layer repeatedly releasing the SIM queue, because it though that the CAM_RELEASE_SIMQ flag had been set. The symptom was messages like this on the console when INVARIANTS were enabled: xpt_release_simq: requested 1 > present 0 xpt_release_simq: requested 1 > present 0 xpt_release_simq: requested 1 > present 0 mps_sas.c: In mpssas_scsiio_complete(), use &= to take status bits out. |= adds them in. In the error case in mpssas_scsiio_complete(), set the status to CAM_REQUEUE_REQ, don't OR it in. MFC after: 3 days Sponsored by: Spectra Logic
* | - Remove the "a" constraint from main output operand for atomic_cmpset().jkim2013-08-212-15/+15
| | | | | | | | - Use "+" modifier for the "expect" because it is also an output (unused).
* | Use '+' modifier for a memory operand that is both an input and an output.jkim2013-08-212-52/+37
| | | | | | | | | | | | It was actually done in r86301 but reverted in r150182 because GCC 3.x was not able to handle it for a memory operand. Apparently, this problem was fixed in GCC 4.1+ and several contrib sources already rely on this feature.
* | Remove bogus labels. No functional change.jkim2013-08-212-3/+0
| |
* | Use consistent style. No functional change.jkim2013-08-212-22/+22
| |
* | Add kstat entries for ZFS compression statistics.gibbs2013-08-213-4/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c: Add module lifetime functions to allocate and teardown state data. Report: - Compression attempts. - Buffers found to be empty. - Compression calls that are skipped because the data length is already less than or equal to the minimum block length. - Compression attempts that fail to yield a 12.5% compression ratio. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c: Add calls to the zio_compress.c module's init and fini functions. Sponosred by: Spectra Logic Corporation MFC after: 2 weeks
* | Revert r254520 and resurrect the M_NOFREE mbuf flag and functionality.andre2013-08-213-2/+12
| | | | | | | | Requested by: np, grehan
* | Add simple test for the read/write/lseek on posix shm filedescriptor.kib2013-08-211-6/+21
| | | | | | | | | | Tested by: pho Sponsored by: The FreeBSD Foundation
* | Implement read(2)/write(2) and neccessary lseek(2) for posix shmfd.kib2013-08-219-3/+266
| | | | | | | | | | | | | | | | | | | | | | | | | | Add MAC framework entries for posix shm read and write. Do not allow implicit extension of the underlying memory segment past the limit set by ftruncate(2) by either of the syscalls. Read and write returns short i/o, lseek(2) fails with EINVAL when resulting offset does not fit into the limit. Discussed with: alc Tested by: pho Sponsored by: The FreeBSD Foundation
* | Make the seek a method of the struct fileops.kib2013-08-214-65/+86
| | | | | | | | | | Tested by: pho Sponsored by: The FreeBSD Foundation
* | Extract the general-purpose code from tmpfs to perform uiomove fromkib2013-08-213-211/+119
| | | | | | | | | | | | | | | | the page queue of some vm object. Discussed with: alc Tested by: pho Sponsored by: The FreeBSD Foundation
* | Check strtoumax(3) for ERANGE in case of non-prefixed string.pluknet2013-08-211-0/+4
| | | | | | | | | | OK'd by: silence on current@ MFC after: 1 week
* | Addendum to r254141: Allow recursion on the free pages queues lock inalc2013-08-211-1/+1
| | | | | | | | | | | | | | vm_page_alloc_freelist(). Reported and tested by: sbruno Sponsored by: EMC / Isilon Storage Division
* | Add support for uarts other than the serial console in TI OMAP SoCs.ian2013-08-216-3/+206
| | | | | | | | | | | | | | | | | | The TI uart hardware is ns16550-compatible, except that before it can be used the clocks and power have to be enabled and a non-standard mode control register has to be set to put the device in uart mode (as opposed to irDa or other serial protocols). This adds the extra code in an extension to the standard ns8250 probe routine, and the rest of the driver is just the standard ns8250 code.
* | Make the uart ns8250 high-level interface public rather than static.ian2013-08-212-38/+73
| | | | | | | | | | | | This makes it easier to implement new drivers which are "mostly ns8250" but with some small difference such as needing to enable clocks or poke a non-standard register at probe or attach time.
* | Fix 'make depend'.uqs2013-08-211-3/+3
| |
* | Fix the (unused for now) SCSI_PROTO_iSCSI define to match style(9).trasz2013-08-211-1/+1
| |
* | Make the noop clock successfully do nothing, because doing nothing andian2013-08-211-1/+31
| | | | | | | | | | returning an error status (which the NULL method pointers caused) isn't nearly as useful.
* | Define the uart clocks so that they can be en/disabled at runtime.ian2013-08-212-1/+30
| |
* | Enhance the ZFS vdev layer to maintain both a logical and a physicalgibbs2013-08-2125-71/+325
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | minimum allocation size for devices. Use this information to automatically increase ZFS's minimum allocation size for new top-level vdevs to a value that more closely matches the optimum device allocation size. Use GEOM's stripesize attribute, if set, as the physical sector size of the GEOM. Calculate the minimum blocksize of each metaslab class. Use the calculated value instead of SPA_MINBLOCKSIZE (512b) when determining the likelyhood of compression yeilding a reduction in physical space usage. Report devices with sub-optimal block size configuration in "zpool status". Also properly fail attempts to attach devices with a logical block size greater than 8kB, since this will cause corruption to ZFS's label area. Sponsored by: Spectra Logic Corporaion MFC after: 2 weeks Background ========== Many modern devices use physical allocation units that are much larger than the minimum logical allocation size accessible by external commands. Two prevalent examples of this are 512e disk drives (512b logical sector, 4K physical sector) and flash devices (512b logical sector, 4K or larger allocation block size, and 128k or larger erase block size). Operations that modify less than the physical sector size result in a costly read-modify-write or garbage collection sequence on these devices. Simply exporting the true physical sector of the device to ZFS would yield optimal performance, but has two serious drawbacks: 1) Existing pools created with devices that have different logical and physical block sizes, but were configured to use the logical block size (e.g. because the OS version used for pool construction reported the logical block size instead of the physical block size) will suddenly find that the vdev allocation size has increased. This can be easily tolerated for active members of the array, but ZFS would prevent replacement of a vdev with another identical device because it now appears that the smaller allocation size required by the pool is not supported by the new device. 2) The device's physical block size may be too large to be supported by ZFS. The optimal allocation size for the vdev may be quite large. For example, a RAID controller may export a vdev that requires read-modify-write cycles unless accessed using 64k aligned/sized requests. ZFS currently has an 8k minimum block size limit. Reporting both the logical and physical allocation sizes for vdevs solves these problems. A device may be used so long as the logical block size is compatible with the configuration. By comparing the logical and physical block sizes, new configurations can be optimized and administrators can be notified of any existing pools that are sub-optimal. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h: Add the SPA_ASHIFT constant. ZFS currently has a hard upper limit of 13 (8k) for ashift and this constant is used to both document and enforce this limit. sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h: Add the VDEV_AUX_ASHIFT_TOO_BIG error code. Add fields for exporting the configured, logical, and physical ashift to the vdev_stat_t structure. Add VDEV_STAT_VALID() macro which can be used to verify the presence of required vdev_stat_t fields in nvlist data. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c: Provide a SYSCTL_PROC handler for "max_auto_ashift". Since the limit is only referenced long after boot when a create operation occurs, there's no compelling need for it to be a boot time configurable tunable. This also allows the validation code for the max_auto_ashift value to be contained within the sysctl handler. Populate the new fields in the vdev_stat_t structure. Fail vdev opens if the vdev reports an ashift larger than SPA_MAXASHIFT. Propogate vdev_logical_ashift and vdev_physical_ashift between child and parent vdevs as is done for vdev_ashift. In vdev_open(), restore code that fails opens for devices where vdev_ashift grows. This can only happen now if the device's logical ashift grows, which means it really isn't safe to use the device. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c: Update the vdev_open() API so that both logical (what was just ashift before) and physical ashift are reported. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h: Add two new fields, vdev_physical_ashift and vdev_logical_ashift, to vdev_t. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c: Add vdev_ashift_optimize(). Call it anytime a new top-level vdev is allocated. cddl/contrib/opensolaris/cmd/zpool/zpool_main.c: Add text for the VDEV_AUX_ASHIFT_TOO_BIG error. For each sub-optimally configured leaf vdev, report configured and native block sizes. cddl/contrib/opensolaris/cmd/zpool/zpool_main.c: cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h: cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c: Introduce a new zpool status: ZPOOL_STATUS_NON_NATIVE_ASHIFT. This status is reported on healthy pools containing vdevs configured to use a block size smaller than their reported physical block size. cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c: Update find_vdev_problem() and supporting functions to provide the full vdev_stat_t structure to problem checking routines, and to allow decent into replacing vdevs. Add a vdev_non_native_ashift() validator which is used on the full vdev tree to check for ZPOOL_STATUS_NON_NATIVE_ASHIFT. cddl/contrib/opensolaris/lib/libzpool/common/kernel.c: cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h: Enhance sysctl userland stubs now that a SYSCTL_PROC handler is used in vdev.c. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h: When the group membership of a metaslab class changes (i.e. when a vdev is added or removed from a pool), walk the group list to determine the smallest block size currently available and record this in the metaslab class. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c: Add the metaslab_class_get_minblocksize() accessor. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c: In zio_compress_data(), take the minimum blocksize as an input parameter instead of assuming SPA_MINBLOCKSIZE. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c: In l2arc_compress_buf(), pass SPA_MINBLOCKSIZE as the minimum blocksize of the device. The l2arc code performs has it's own code for deciding if compression is worth while, so this effectively disables zio_compress_data() from second guessing the original decision. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c: In zio_write_bp_init(), use the minimum blocksize of the normal metaslab class when compressing data.
* | Use an if/else sequence rather than unrelated if statements, so that aian2013-08-211-7/+7
| | | | | | | | | | | | device compatible with multiple drivers matches the more specific driver first and doesn't overwrite it later with the more generic. Move the generic ns16550 to the end of the list.
* | Check for generic ns16550 after all other types. A device may be compatibleian2013-08-211-3/+3
| | | | | | | | with 16550 but also have a more specific/capable driver earlier in the list.
* | MFV r254421:delphij2013-08-216-26/+57
| | | | | | | | | | Illumos ZFS issues: 3996 want a libzfs_core API to rollback to latest snapshot
* | MFV r254220:delphij2013-08-201-7/+17
| | | | | | | | | | Illumos ZFS issues: 4039 zfs_rename()/zfs_link() needs stronger test for XDEV
* | Pull in r182983 from upstream clang trunk:dim2013-08-201-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix handling of braced-init-list as reference initializer within aggregate initialization. Previously we would incorrectly require an extra set of braces around such initializers. Pull in r188718 from upstream clang trunk: Handle init lists and _Atomic fields. Fixes PR16931. These fixes are needed for the atomic_flag type to work correctly in our stdatomic.h. Requested by: theraven
* | Pull in r188716 from upstream clang trunk:dim2013-08-201-2/+4
| | | | | | | | | | | | | | | | | | PR16727: don't try to evaluate a potentially value-dependent expression when checking for missing parens in &&/|| expressions. This fixes an assertion encountered when building the lang/sdcc port. Reported by: kwm
* | Enable VFP on ARMADA XP.andrew2013-08-201-0/+1
| |
* | Display P/N information in the description.np2013-08-201-3/+3
| | | | | | | | | | Submitted by: gnn MFC after: 3 days
* | Stop an ipoib interface before detaching it.jhb2013-08-201-0/+2
| | | | | | | | | | | | | | PR: kern/181225 Submitted by: Shahar Klein Obtained from: Mellanox MFC after: 1 week
* | Force keyboards which don't have the requiredhselasky2013-08-201-2/+6
| | | | | | | | | | | | | | | | HID fields to use the USB BOOT protocol for now. PR: usb/181425 Submitted by: Andrey Zholos <aaz@q-fu.com> MFC after: 4 weeks
* | Correct a typo in the event mask mnemonic.bz2013-08-201-1/+1
| | | | | | | | | | Reviewed by: gnn MFC after: 3 days
* | Catch up with various changes to if_data and make this compile againbz2013-08-201-2/+9
| | | | | | | | | | | | | | on HEAD. Seems to be one of the the only tools giving us access to ifi_baudrate and ifi_baudrate_pf values. MFC after: 3 days
* | After r241616 properly export ifi_baudrate_pf in the 32bit compat case.bz2013-08-201-1/+2
| | | | | | | | MFC after: 3 days
* | Make the standard sdhci(4) driver work for the TI OMAP family SoCs.ian2013-08-205-1/+571
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The MMCHS hardware is pretty much a standard SDHCI v2.0 controller with a couple quirks, which are now supported by sdhci(4) as of r254507. This should work for all TI SoCs that use the MMCHS hardware, but it has only been tested on AM335x right now, so this enables it on those platforms but leaves the existing ti_mmchs driver in place for other OMAP variants until they can be tested. This initial incarnation lacks DMA support (coming soon). Even without it this improves performance pretty noticibly over the ti_mmchs driver, primarily because it now does multiblock IO.
* | Added sysctl to turn off calls to vmem_check().pho2013-08-201-3/+9
| | | | | | | | | | Sponsored by: EMC / Isilon storage division Discussed with: jeff
* | Fix the zeroing loop. I must have been drunk when I wrote this...des2013-08-201-6/+6
| | | | | | | | MFC after: 3 days
* | Do not create superpage mappings in the iommu.neel2013-08-201-1/+18
| | | | | | | | | | | | This is a workaround to hide the fact that we do not have any code to demote a superpage mapping before we unmap a single page that is part of the superpage.
* | Extract the location of the remapping hardware units from the ACPI DMAR table.neel2013-08-201-60/+54
| | | | | | | | Submitted by: Gopakumar T (gopakumar_thekkedath@yahoo.co.in)
* | Fix breakage caused by r254466 in minidumpsys().neel2013-08-201-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | r254466 increased the KVA from 512GB to 2TB which requires 4 PDP pages as opposed to a single one before the change. This broke minidumpsys() since it assumed that the entire KVA could be addressed via a single PDP page. Fix this by obtaining the address of the PDP page from the PML4 entry associated with the KVA being dumped. Reported by: pho Submitted by: kib Pointy hat to: neel
* | - Increase the active lru refresh interval to 10 minutes. This has beenjeff2013-08-191-4/+12
| | | | | | | | | | | | | | | | | | | | | | shown to negatively impact some workloads and the goal is only to eliminate worst case behaviors for very long periods of paging inactivity. Eventually we should determine a more complex scaling factor for this feature. - Rate limit low memory callback handlers to limit thrashing. Set the default to 10 seconds. Sponsored by: EMC / Isilon Storage Division
* | - Use an arbitrary but reasonably large import size for kva on architecturesjeff2013-08-192-3/+11
| | | | | | | | | | | | | | | | | | | | | | that don't support superpages. This keeps the number of spans and internal fragmentation lower. - When the user asks for alignment from vmem_xalloc adjust the imported size by 2*align to be certain we can satisfy the allocation. This comes at the expense of potential failures when the backend can't supply enough memory but could supply the requested size and alignment. Sponsored by: EMC / Isilon Storage Division
* | Enable VFP on the Zedboard.andrew2013-08-191-0/+1
| |
* | Subversion requires atomic functions we only support on arm with clang.andrew2013-08-191-1/+3
| |
* | Remove incorrect 'const' qualifier from pointers to dynamic stringjhb2013-08-191-1/+1
| | | | | | | | | | | | | | buffers I added in the previous commit. Pointy hat to: jhb MFC after: 1 month
* | Bump __FreeBSD_version to 1000046 after the addition of M_PROTO[9-12]andre2013-08-191-1/+1
| | | | | | | | and removal of M_NOFREE|M_FRAG|M_FIRSTFRAG|M_LASTFRAG mbuf flags.
* | Do not use pv_kva on ARMv6/v7 and save some space on each vm_page. It's onlyraj2013-08-192-1/+3
| | | | | | | | | | | | | | | | relevant for older ARM variants (with virtual cache). Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
* | Simplify and clean up pmap_clearbit()raj2013-08-191-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | There is no need for calling vm_page_dirty() when clearing "modified" flag as it is already set for that page in pmap_fault_fixup() or pmap_enter() thanks to "modified" bit emulation. Also, there is no need for checking PTE "referenced" or "writeable" flags. If there is a request to clear a particular flag we should just do it. Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
OpenPOWER on IntegriCloud