summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mdoc: begin sentence on new line.joel2013-02-271-6/+10
|
* mdoc: add missing El.joel2013-02-271-0/+1
|
* fix this script so we don't expand the second $FreeBSD since svn thinksjmg2013-02-271-1/+1
| | | | the $ in $1 ends the keyword, and expands it...
* Fix a typo that prevented booting a kernel that had virtual addresses inian2013-02-271-1/+1
| | | | the elf headers.
* Fix a potential race in returning setting errno when antuexen2013-02-271-1/+2
| | | | | | | | association goes down. Reported by Mozilla in https://bugzilla.mozilla.org/show_bug.cgi?id=845513 MFC after: 3 days
* Add an implementation of open_memstream() and open_wmemstream(). Thesejhb2013-02-2712-2/+1070
| | | | | | | | | routines provide write-only stdio FILE objects that store their data in a dynamically allocated buffer. They are a string builder interface somewhat akin to a completely dynamic sbuf. Reviewed by: bde, jilles (earlier versions) MFC after: 1 month
* watchdogd(8) and watchdog(4) enhancements.alfred2013-02-274-38/+666
| | | | | | | | | | | | | | | | | | | The following support was added to watchdog(4): - Support to query the outstanding timeout. - Support to set a software pre-timeout function watchdog with an 'action' - Support to set a software only watchdog with a configurable 'action' 'action' can be a mask specifying a single operation or a combination of: log(9), printf(9), panic(9) and/or kdb_enter(9). Support the following in watchdogged: - Support to utilize the new additions to watchdog(4). - Support to warn if a watchdog script runs for too long. - Support for "dry run" where we do not actually arm the watchdog, but only report on our timing. Sponsored by: iXsystems, Inc. MFC after: 1 month
* Merge from vmobj-rwlock:attilio2013-02-278-22/+14
| | | | | | | | | | | VM_OBJECT_LOCKED() macro is only used to implement a custom version of lock assertions right now (which likely spread out thanks to copy and paste). Remove it and implement actual assertions. Sponsored by: EMC / Isilon storage division Reviewed by: alc Tested by: pho
* The .journal file needs to reside on the ROOTINO which must not extendpho2013-02-271-1/+1
| | | | beyond direct blocks. A typo caused this check to fail.
* MFV 247176, 247178, 247315:mm2013-02-276-114/+352
| | | | | | | | | | | | | | | | | | | Import metaslab_sync() speedup from vendor (illumos). Illumos ZFS issues: 3552 condensing one space map burns 3 seconds of CPU in spa_sync() thread 3564 spa_sync() spends 5-10% of its time in metaslab_sync() (when not condensing) 3578 transferring the freed map to the defer map should be constant time 3579 ztest trips assertion in metaslab_weight() References: https://www.illumos.org/issues/3552 https://www.illumos.org/issues/3564 https://www.illumos.org/issues/3578 https://www.illumos.org/issues/3579 MFC after: 2 weeks
* Map libraries linked with -Ttext-segment=base_addr at base_addr.tijl2013-02-271-1/+1
| | | | | | | | | Normal libraries have base address 0 and are unaffected by this change. PR: 176216 Submitted by: Damjan Jovanovic <damjan.jov@gmail.com> Reviewed by: kib MFC after: 1 week
* Fix typogonzo2013-02-271-1/+1
|
* - Initialize GPIO_OE register based on pinmux configurationgonzo2013-02-271-0/+14
| | | | | | Although AM335x TRM states that GPIO_OE register is not used and just reflects pads configuration in practice it does control pin behavior and shoiuld be set in addition to pinmux setup
* Make recursive getblk() slightly more useful. Keep the buffer statekib2013-02-271-6/+13
| | | | | | | | | | | intact if getblk() is done on the already owned buffer. Exit from brelse() early when the lock recursion is detected, otherwise brelse() might prematurely destroy the buffer under some circumstances. Sponsored by: The FreeBSD Foundation Noted by: mckusick Tested by: pho MFC after: 2 weeks
* The softdep freeblks workitem might hold a reference on the dquot.kib2013-02-274-17/+63
| | | | | | | | | | | | | | | | | | | Current dqflush() panics when a dquot with with non-zero refcount is encountered. The situation is possible, because quotas are turned off before softdep workitem queue if flushed, due to the quota file writes might create softdep workitems. Make the encountering an active dquot in dqflush() not fatal, return the error from quotaoff() instead. Ignore the quotaoff() failures when ffs_flushfiles() is called in the course of softdep_flushfiles() loop, until the last iteration. At the last loop, the quotas must be closed, and because SU workitems should be already flushed, the references to dquot are gone. Sponsored by: The FreeBSD Foundation Reported and tested by: pho Reviewed by: mckusick MFC after: 2 weeks
* An inode block must not be blockingly read while cg block is owned.kib2013-02-271-6/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The order is inode buffer lock -> snaplk -> cg buffer lock, reversing the order causes deadlocks. Inode block must not be written while cg block buffer is owned. The FFS copy on write needs to allocate a block to copy the content of the inode block, and the cylinder group selected for the allocation might be the same as the owned cg block. The reserved block detection code in the ffs_copyonwrite() and ffs_bp_snapblk() is unable to detect the situation, because the locked cg buffer is not exposed to it. In order to maintain the dependency between initialized inode block and the cg_initediblk pointer, look up the inode buffer in non-blocking mode. If succeeded, brelse cg block, initialize the inode block and write it. After the write is finished, reread cg block and update the cg_initediblk. If inode block is already locked by another thread, let the another thread initialize it. If another thread raced with us after we started writing inode block, the situation is detected by an update of cg_initediblk. Note that double-initialization of the inode block is harmless, the block cannot be used until cg_initediblk is incremented. Sponsored by: The FreeBSD Foundation In collaboration with: pho Reviewed by: mckusick MFC after: 1 month X-MFC-note: after r246877
* Clear the memory allocated to build the unwind tables. This fixes C++andrew2013-02-271-0/+2
| | | | exceptions on ARM EABI with static binaries.
* RX checksum offloading on old Yukon controllers seem to cause moreyongari2013-02-271-0/+6
| | | | | | problems. Disable RX checksum offloading on controllers that don't use new descriptor format but give chance to enable it with ifconfig(8).
* I give up - just throw the EWMA update into the normal update_stats()adrian2013-02-271-105/+27
| | | | | | | | | | routine. There were still corner cases where the EWMA update stats are being called on a rix which didn't have an intermediary stats update; thus no packets were counted against it. Sigh. This should fix the crashes I've been seeing on recent -HEAD.
* Fix typo in EFI GPT GUID.benno2013-02-271-1/+1
|
* Fixes queuing issues where mfi_release_command blindly sets the cm_flags = 0smh2013-02-276-326/+481
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | without first removing the command from the relavent queue. This was causing panics in the queue functions which check to ensure a command is not on another queue. Fixed some cases where the error from mfi_mapcmd was lost and where the command was never released / dequeued in error cases. Ensure that all failures to mfi_mapcmd are logged. Fixed possible null pointer exception in mfi_aen_setup if mfi_get_log_state failed. Fixed mfi_parse_entries & mfi_aen_setup not returning possible errors. Corrected MFI_DUMP_CMDS calls with invalid vars SC vs sc. Commands which have timed out now set cm_error to ETIMEDOUT and call mfi_complete which prevents them getting stuck in the busy queue forever. Fixed possible use of NULL pointer in mfi_tbolt_get_cmd. Changed output formats to be more easily recognisable when debugging. Optimised mfi_cmd_pool_tbolt cleanup. Made information about driver limiting commands always display as for modern cards this can be severe. Fixed mfi_tbolt_alloc_cmd out of memory case which previously didnt return an error. Added malloc checks for request_desc_pool including free when subsiquent errors are detected. Fixed overflow error in SIMD reply descriptor check. Fixed tbolt_cmd leak in mfi_build_and_issue_cmd if there's an error during IO build. Elimintated double checks on sc->mfi_aen_cm & sc->mfi_map_sync_cm in mfi_shutdown. Move local hdr calculation after error check in mfi_aen_complete. Fixed wakeup on NULL in mfi_aen_complete. Fixed mfi_aen_cm cleanup in mfi_process_fw_state_chg_isr not checking if it was NULL. Changed mfi_alloc_commands to error if bus_dmamap_create fails. Previously we would try to continue with the number of allocated commands but lots of places in the driver assume sc->mfi_max_fw_cmds is whats available so its unsafe to do this without lots of changes. Removed mfi_total_cmds as its no longer used due the above change. Corrected mfi_tbolt_alloc_cmd to return ENOMEM where appropriate. Fixed timeouts actually firing at double what they should. Setting hw.mfi.max_cmds=-1 now configures to use the controller max. A few style (9) fixes e.g. braced single line conditions and double blank lines Cleaned up queuing macros Removed invalid queuing tests for multiple queues Trap and deal with errors when doing sends in mfi_data_cb Refactored frame sending into one method with error checking of the return code so we can ensure commands aren't left on the queue after error. This ensures that mfi_mapcmd & mfi_data_cb leave the queue in a valid state. Refactored how commands are cleaned up, mfi_release_command now ensures that all queues and command state is maintained in a consistent state. Prevent NULL pointer use in mfi_tbolt_complete_cmd Fixed use of NULL sc->mfi_map_sync_cm in wakeup Added defines to help with output of mfi_cmd and header flags. Fixed mfi_tbolt_init_MFI_queue invalidating cm_index of the acquired mfi_cmd. Reset now reinitialises sync map as well as AEN. Fixed possible use of NULL pointer in mfi_build_and_issue_cmd Fixed mfi_tbolt_init_MFI_queue call to mfi_process_fw_state_chg_isr causing panic on failure. Ensure that tbolt cards always initialise next_host_reply_index and free_host_reply_index (based off mfi_max_fw_cmds) on both startup and reset as per the linux driver. Fixed mfi_tbolt_complete_cmd not acknowledging unknown commands so it didn't clear the controller. Prevent locks from being dropped and re-acquired in the following functions which was allowing multiple threads to enter critical methods such as mfi_tbolt_complete_cmd & mfi_process_fw_state_chg_isr:- * mfi_tbolt_init_MFI_queue * mfi_aen_complete / mfi_aen_register * mfi_tbolt_sync_map_info * mfi_get_log_state * mfi_parse_entries The locking for these functions was promoting to higher level methods. This also fixed MFI_LINUX_SET_AEN_2 which was already acquiring the lock, so would have paniced for recursive lock. This also required changing malloc of ld_sync in mfi_tbolt_sync_map_info to M_NOWAIT which can hence now fail but this was already expected as its return was being tested. Removed the assignment of cm_index in mfi_tbolt_init_MFI_queue which breaks the world if the cmd returned by mfi_dequeue_free isn't the first cmd. Fixed locking in mfi_data_cb, this is an async callback from bus_dmamap_load which could hence be called after the caller has dropped the lock. If we don't have the lock we aquire it and ensure we unlock before returning. Fixed locking mfi_comms_init when mfi_dequeue_free fails. Fixed mfi_build_and_issue_cmd not returning tbolt cmds aquired to the pool on error. Fixed mfi_abort not dropping the io lock when mfi_dequeue_free fails. Added hw.mfi.polled_cmd_timeout sysctl that enables tuning of polled timeouts. This shouldn't be reduced below 50 seconds as its used for firmware patching which can take quite some time. Added hw.mfi.fw_reset_test sysctl which is avaliable when compiled with MFI_DEBUG and allows the testing of controller reset that was provoking a large number of the issues encountered here. Reviewed by: Doug Ambrisko Approved by: pjd (mentor) MFC after: 1 month
* Enable STBC for the given rate series if it's negotiated:adrian2013-02-271-5/+18
| | | | | | | | | | | | | | | | * If both ends have negotiated (at least) one stream; * Only if it's a single stream rate (MCS0-7); * Only if there's more than one TX chain enabled. Tested: * AR9280 STA mode -> Atheros AP; tested both MCS2 (STBC) and MCS12 (no STBC.) Verified using athalq to inspect the TX descriptors. TODO: * Test AR5416 - no STBC should be enabled; * Test AR9280 with one TX chain enabled - no STBC should be enabled.
* Fixes mfi panic on recused on non-recusive mutex MFI I/O locksmh2013-02-272-4/+4
| | | | | | | | | | Removes a mtx_unlock call for mfi_io_lock which is never aquired While I'm here fix a braceing style issue. Reviewed by: Doug Ambrisko Approved by: pjd (mentor) MFC after: 1 month
* Add in the STBC TX/RX capability support into the HAL and driver.adrian2013-02-274-1/+32
| | | | | | | | The HAL already included the STBC fields; it just needed to be exposed to the driver and net80211 stack. This should allow single-stream STBC TX and RX to be negotiated; however the driver and rate control code currently don't do anything with it.
* Merge from vmc-playground branch:attilio2013-02-2610-78/+76
| | | | | | | | | | | | | | | | | | | | | | | | | Replace the sub-optimal uma_zone_set_obj() primitive with more modern uma_zone_reserve_kva(). The new primitive reserves before hand the necessary KVA space to cater the zone allocations and allocates pages with ALLOC_NOOBJ. More specifically: - uma_zone_reserve_kva() does not need an object to cater the backend allocator. - uma_zone_reserve_kva() can cater M_WAITOK requests, in order to serve zones which need to do uma_prealloc() too. - When possible, uma_zone_reserve_kva() uses directly the direct-mapping by uma_small_alloc() rather than relying on the KVA / offset combination. The removal of the object attribute allows 2 further changes: 1) _vm_object_allocate() becomes static within vm_object.c 2) VM_OBJECT_LOCK_INIT() is removed. This function is replaced by direct calls to mtx_init() as there is no need to export it anymore and the calls aren't either homogeneous anymore: there are now small differences between arguments passed to mtx_init(). Sponsored by: EMC / Isilon storage division Reviewed by: alc (which also offered almost all the comments) Tested by: pho, jhb, davide
* Clarify that overriding the -h/-D flags through flags in device.hintsn_hibma2013-02-261-4/+3
| | | | only works for sio(4) but not for uart(4) which no longer has this flag.
* Remove redundant xpt_alloc_ccb in isp_target_thread that was causing leakage.mjacob2013-02-261-2/+0
| | | | | Pointed out by: Sascha Wildner of DragonFly BSD MFC after: 1 week
* cxgbe(4): Report unusual out of band errors from the firmware.np2013-02-261-2/+45
| | | | | Obtained from: Chelsio MFC after: 5 days
* Be more verbose on ZFS deadman I/O panicmm2013-02-261-1/+5
| | | | | | | Patch suggested upstream. Suggested by: Olivier Cinquin MFC after: 12 days
* cxgbe(4): Consider all the API versions of the interfaces exported bynp2013-02-263-64/+128
| | | | | | | | | | | | | | the firmware (instead of just the main firmware version) when evaluating firmware compatibility. Document the new "hw.cxgbe.fw_install" knob being introduced here. This should fix kern/173584 too. Setting hw.cxgbe.fw_install=2 will mostly do what was requested in the PR but it's a bit more intelligent in that it won't reinstall the same firmware repeatedly if the knob is left set. PR: kern/173584 MFC after: 5 days
* Remove white spaces.attilio2013-02-262-4/+4
| | | | Sponsored by: EMC / Isilon storage division
* Fix casting.trociny2013-02-261-5/+5
| | | | MFC after: 3 days
* Ignore the BARRIER flag in the virtio block header.neel2013-02-261-4/+11
| | | | | | | | This capability is not advertised by the host so ignore it even if the guest insists on setting the flag. Reviewed by: grehan Obtained from: NetApp
* Export vfp_init() prototype, for use in the MP code.cognet2013-02-261-0/+1
|
* Fix SMP build.cognet2013-02-261-4/+3
|
* Don't forget to init the VFP stuff for all cores.cognet2013-02-261-0/+8
|
* Revert r247300 for now. I'll post a new changeset for review.delphij2013-02-264-12/+15
|
* no one bothered to write the iconv.9 man page... If it appears wejmg2013-02-261-2/+1
| | | | | | can readd the xref... MFC: 1 week
* Correct a typo introduced in r153575, which gives inverted logic whendelphij2013-02-261-1/+1
| | | | | | | | | handling blocking semantics when seeding. PR: kern/143298 Submitted by: James Juran <james juran baesystems com> Reviewed by: markm MFC after: 3 days
* Add a quirk to disable this driver for certain older laptops with an ICH2jhb2013-02-261-4/+17
| | | | | | | | southbridge and an Intel 82815_MC host bridge where the host bridge's revision is less than 5. Tested by: mi MFC after: 1 week
* Add support for good old 8192Hz profiling clock to software PMC.mav2013-02-264-13/+29
| | | | Reviewed by: fabient
* Wrap the sleeps synchronized by the vm_object lock into the specificattilio2013-02-265-12/+12
| | | | | | | | | | | macro VM_OBJECT_SLEEP(). This hides some implementation details like the usage of the msleep() primitive and the necessity to access to the lock address directly. For this reason VM_OBJECT_MTX() macro is now retired. Sponsored by: EMC / Isilon storage division Reviewed by: alc Tested by: pho
* Change the way how software PMC updates counters.mav2013-02-261-2/+6
| | | | | | This at least fixes -n option of pmcstat. Reviewed by: fabient
* Update the EWMA statistics for each intermediary rate as well as the finaladrian2013-02-261-10/+33
| | | | | | | | | | | | | | | rate. This fixes two things: * The intermediary rates now also have their EWMA values changed; * The existing code was using the wrong value for longtries - so the EWMA stats were only adjusted for the first rate and not subsequent rates in a MRR setup. TODO: * Merge the EWMA updates into update_stats() now..
* Be more conservative in auto-sizing and capping the kmem submap. Inalc2013-02-261-3/+3
| | | | | | | fact, use the same values here that we use on 32-bit x86 and MIPS. Some machines were reported to have problems with the more aggressive values. Reported and tested by: andrew
* Eliminate a redundant #include: machine/pmap.h is already includedalc2013-02-262-2/+0
| | | | through vm/pmap.h.
* Eliminate a duplicate #include.alc2013-02-261-1/+0
| | | | Sponsored by: EMC / Isilon Storage Division
* RPi users might want to touch the boot partition, which is always FATkientzle2013-02-261-2/+5
| | | | | | formatted on this board, so compile-in MSDOSFS. Comment out the compiled-in FDT and explain why.
* Adjust the arm kernel entry point address properly regardless of whether theian2013-02-261-6/+17
| | | | | e_entry field holds a physical or a virtual address. Add a comment block that explains the assumptions being made by the adjustment code.
* Expose timespec and timeval macros when __BSD_VISIBLE is defined. Thisdelphij2013-02-264-15/+12
| | | | | | | | | | | allows userland application to use the following macros: timespecclear, timespecisset, timespeccmp, timespecadd, timespecsub; timevalclear, timevalisset, timevalcmp. MFC after: 1 month
OpenPOWER on IntegriCloud