ƒ°u236524 174 333 218 842 134 877 205 607 147 352 276 642 303 416 638 249 196 135 352 352 195 195 360 246 276 294 159 226 214 153 197 140 183 200 137 132 322 437 347 254 182 269 152 380 294 193 329 178 178 484 203 118 212 603 240 541 551 231 400 649 2215 125 119 774 790 130 124 779 202 272 136 143 168 214 820 118 483 146 302 161 288 158 154 181 181 671 671 195 195 188 159 199 239 199 110 1012 179 141 125 113 115 124 115 116 826 285 151 443 257 257 243 239 208 591 145 137 145 178 137 172 172 272 127 592 184 225 135 202 202 202 199 199 247 247 247 961 284 218 218 218 295 295 295 456 199 139 162 111 473 839 198 251 396 283 1843 537 233 161 163 567 400 400 537 136 982 135 227 175 160 271 200 271 298 361 111 K 10 svn:author V 3 imp K 8 svn:date V 27 2012-06-03T18:34:32.410166Z K 7 svn:log V 240 Minor rearrangement of the locore <-> initarm interface. Pass in a structure with the first 4 registers to allow a wider range of boot loaders to work. Future commits will make use of this to centralize support for the different loaders. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-03T19:25:48.552391Z K 7 svn:log V 121 Return back pfsync_timeout(), that I've removed in r234056. pfsync_timeout() is needed to perform a delayed swi_sched(). END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-03T20:07:37.887975Z K 7 svn:log V 745 pfsync_sendout() is usually called when softc has accumulated enough data to send a packet, and now is being requested to add data that would overflow a packet. Thus, swi scheduled at the end of pfsync_sendout() is going to service not a single packet, but a couple of them, and the second one is containg only one piece of pfsync data. This leads to coupling of pfsync pps: every odd packet is full-sized and every even is undersized. To fix this, a flag is added to softc - PFSYNCF_PUSH, which indicates, whether we swi handler needs to sqeeze data from the softc prior to sending packets. In all cases when we need to send data immidiately, this flags is raised prioir to swi_sched(). But in case of usual sc_len overflow, it isn't raised. END K 10 svn:author V 5 gonzo K 8 svn:date V 27 2012-06-03T20:29:28.082132Z K 7 svn:log V 40 Use ARM_TP_ADDRESS only if it's defined END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-03T20:35:41.371496Z K 7 svn:log V 784 During buildworld and buildkernel, define EARLY_BUILD in the earlier stages (build-tools, cross-tools, etc) of the build, so we can detect in bsd.*.mk whether to pass compiler-specific flags to ${CC}. In particular, this commit will allow using WITH_CLANG_IS_CC when the base compiler is still gcc, and when ${CC}, ${CXX} and ${CPP} are left at their defaults. The early stages will then be built using gcc, and no clang-specific flags will be passed to it. The later stages will be built as usual. The EARLY_BUILD define can also serve other uses, such as building the world stage C++ executables with libc++ instead of libstdc++: during the early build stages, we cannot assume libc++ is already available, so we must still build with libstdc++ at that time. MFC after: 1 week END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-03T21:03:16.638070Z K 7 svn:log V 109 Disable verification of the flashed content for now; for reasons unknown it sometimes causes physwr to hang. END K 10 svn:author V 6 davide K 8 svn:date V 27 2012-06-03T22:27:17.075946Z K 7 svn:log V 511 - Everytime callout_tick() is called it looks for the nearest future event and communicate it to eventtimers subsystem via via callout_new_inserted(). So, we don't need anymore to call callout_tickstofirst() when we're in getnextcpuevent(), and we can get rid of it. - Completely refactor the cpu_new_callout() function (many thanks to Alexander Motin that helped me there with this code). - Switch back from getbinuptime() to binuptime() to measure present time in callout_tick(). Pointed out by: mav, bde END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-03T22:40:32.007040Z K 7 svn:log V 52 First quick sketch of the busdma I/O MMU interface. END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-03T23:48:04.222640Z K 7 svn:log V 256 Hook-up and respin the busdma/mi IOMMU interface. In particular, rename busdma_mmu_t to busdma_mtag_t, because its use is for deriving the proper memory allocation restrictions based on the device DMA restrictions and the I/O MMUs involved when doing DMA. END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-04T02:25:11.609677Z K 7 svn:log V 180 o Add busdma_md_load_phys for supporting CAM's physical addressing. o Fix prototypes for _load_mbuf & _load_uio. o Dummy-implement _load_phys & _load_uio, like _load_linear. END K 10 svn:author V 3 alc K 8 svn:date V 27 2012-06-04T03:51:08.758395Z K 7 svn:log V 549 Various small changes to PV entry management: Constify pc_freemask[]. pmap_pv_reclaim() Eliminate "freemask" because it was a pessimization. Add a comment about the resident count adjustment. free_pv_entry() [i386 only] Merge an optimization from amd64 (r233954). get_pv_entry() Eliminate the move to tail of the pv_chunk on the global pv_chunks list. (The right strategy needs more thought. Moreover, there were unintended differences between the amd64 and i386 implementation.) pmap_remove_pages() Eliminate unnecessary ()'s. END K 10 svn:author V 3 imp K 8 svn:date V 27 2012-06-04T04:24:59.947166Z K 7 svn:log V 210 Eliminate the now-unused AT91C_MASTER_CLOCK option and change the one place in the source it was used to the more correct AT91C_MAIN_CLOCK. Sort AT91C_MAIN_CLOCK into a better location in the options.arm file. END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-04T06:00:57.487071Z K 7 svn:log V 320 o Add a default implementation of busdma_iommu_xlate that yields an identify mapping (i.e. does not change the mtag and returns 0). o Add _busdma_iommu_xlate that walks the device hierarchy until it reaches the root. This allows all devices on the path from leaf to root to contribute to the final mtag. END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-04T06:06:10.411481Z K 7 svn:log V 542 Implement the BUSDMA_IOMMU_XLATE method for the pcib and shub devices: o The pcib device selects between 32-bit or 64-bit direct mapped addresses. For 32-bit this means that the address is limited to 2G. o The shub device limits the addresses to be offsets within an address space and then transposes the range to lie within the cacheable memory space. In combination this guarantees that DMA memory will be allocated from memory local to the device and lie within the 2G translation window for 32-bit direct mapped DMA. END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-04T06:39:10.651303Z K 7 svn:log V 156 MFC r236386: Pull in r155978 from upstream llvm trunk: Fix unintentional use of operator bool. This enables llvm's bugpoint tool to build with libc++. END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-04T06:43:01.203706Z K 7 svn:log V 103 MFC r236387: Fix dangling else in libc++'s __bit_reference header. This has also been sent upstream. END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-04T06:45:49.102356Z K 7 svn:log V 43 MFC r236388: Make devd build with libc++. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T07:03:56.233787Z K 7 svn:log V 259 MFC r235333: Add two functions xpt_batch_start() and xpt_batch_done() to the CAM SIM KPI to allow drivers to handle request completion directly without passing them to the CAM SWI thread removing extra context switch. Modify all ATA/SATA drivers to use them. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T07:05:13.991735Z K 7 svn:log V 259 MFC r235333: Add two functions xpt_batch_start() and xpt_batch_done() to the CAM SIM KPI to allow drivers to handle request completion directly without passing them to the CAM SWI thread removing extra context switch. Modify all ATA/SATA drivers to use them. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T07:07:46.570112Z K 7 svn:log V 102 MFC r236184: Make legacy ATA to not call device_add_child() with unit number but without driver name. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T07:08:58.002348Z K 7 svn:log V 102 MFC r236184: Make legacy ATA to not call device_add_child() with unit number but without driver name. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T07:12:11.269107Z K 7 svn:log V 263 Remove completely the m_addr_changed() hack, and support of reverse pointer in pf_state_ket, that ware 'if 0' since beginning of SMP-friendly pf project. In the new locking scheme we can't reference state keys from mbuf tags, nor a key can reference another key. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T07:12:36.308575Z K 7 svn:log V 153 MFC r232740: Make kern.sched.idlespinthresh default value adaptive depending of HZ. Otherwise with HZ above 8000 CPU may never skip timer ticks on idle. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T07:16:12.927647Z K 7 svn:log V 183 MFC r234066: Microoptimize cpu_search(). According to profiling, it makes one take 6% of CPU time on hackbench with its million of context switches per second, instead of 8% before. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T07:54:53.988383Z K 7 svn:log V 197 Some cleanup of pf osfp: - We don't need separate uma(9) zones for things that are allocated very infrequently, use malloc(9). - Don't pretend that pf_ospf.c can be compiled as userland program. END K 10 svn:author V 4 gber K 8 svn:date V 27 2012-06-04T08:40:14.548513Z K 7 svn:log V 66 Restore changes accidentally removed in r235537. Noticed by: avg END K 10 svn:author V 7 trociny K 8 svn:date V 27 2012-06-04T09:22:22.275175Z K 7 svn:log V 129 On a child exit, call waitpid(2) to clean up the process table. Submitted by: Andrey Zonov MFC after: 1 week END K 10 svn:author V 7 trociny K 8 svn:date V 27 2012-06-04T09:25:01.649728Z K 7 svn:log V 117 Document -r option in SYNOPSIS and usage statement. Submitted by: Andrey Zonov MFC after: 3 days END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T09:47:19.462432Z K 7 svn:log V 61 Remove some dead code that I doubt will ever be implemented. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T09:55:47.334028Z K 7 svn:log V 100 struct pf_altq doesn't need a separate uma(9) zone, they are allocated only at configuration stage. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T10:09:57.184678Z K 7 svn:log V 44 Consistent names for pf(4) malloc(9) types. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-04T10:42:09.921469Z K 7 svn:log V 91 Add -p argument for `camcontrol debug` to allow enabling CAM_DEBUG_PROBE added at r208911. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T11:24:03.775542Z K 7 svn:log V 103 Rules and pool addresses are allocated during configuration only, no reason for separate uma(9) zones. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T11:51:17.333492Z K 7 svn:log V 41 Add missing locking to pfsync_timeout(). END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T12:28:56.680283Z K 7 svn:log V 36 Merge head r233826 through r236557. END K 10 svn:author V 8 melifaro K 8 svn:date V 27 2012-06-04T12:36:58.969578Z K 7 svn:log V 224 Fix panic introduced by r235745. Panic occurs after first packet traverse renamed interface. Add several comments on locking Found by: avg Approved by: ae(mentor) Tested by: avg MFC after: 1 week END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T12:49:21.813967Z K 7 svn:log V 340 Optimise kern_sendfile(): skip cycling through the entire mbuf chain in m_cat(), storing pointer to last mbuf in chain in local variable and attaching new mbuf to the end of chain. Submitter reports that CPU load dropped for > 10% on a web server serving large files with this optimisation. Submitted by: Sergey Budnevitch END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T13:41:22.395163Z K 7 svn:log V 250 - Remove table zone and assiciated limit, tables are created only when user configures pf(4), no reason for separate zone and limit. - Catch up with r236364 to head: initialize kcounters zone. - Make kentry and kcounters zone private to pf_table.c END K 10 svn:author V 6 issyl0 K 8 svn:date V 27 2012-06-04T14:11:49.907244Z K 7 svn:log V 158 Merge r235848 from head to stable/9: Add two new locale-specific man pages: - libc/stdio/scanf_l.3 - libc/stdio/printf_l.3 Approved by: gabor (mentor) END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T14:18:13.008922Z K 7 svn:log V 86 Microoptimisation of code from r236560, also coming from Nginx Inc. Submitted by: ru END K 10 svn:author V 5 trasz K 8 svn:date V 27 2012-06-04T14:26:05.016508Z K 7 svn:log V 174 Please welcome Mateusz Guzik (mjg) as a new src committer. I'll be mentoring him. Mateusz will work on general bugfixing in various areas of the kernel. Approved by: core END K 10 svn:author V 3 mjg K 8 svn:date V 27 2012-06-04T15:21:13.599516Z K 7 svn:log V 60 Add myself as a new committer. Approved by: trasz (mentor) END K 10 svn:author V 3 zml K 8 svn:date V 27 2012-06-04T16:04:01.624339Z K 7 svn:log V 287 Fix DTrace TSC skew calculation: The skew calculation here is exactly backwards. We were able to repro it on a multi-package ESX server running a FreeBSD VM, where the TSCs can be pretty evil. MFC after: 1 week Submitted by: Jeff Ford Reviewed by: avg, gnn END K 10 svn:author V 3 gnn K 8 svn:date V 27 2012-06-04T16:15:40.634447Z K 7 svn:log V 201 Integrate a fix for a very odd signal delivery problem found by Bryan Cantril and others in the Solaris/Illumos version of DTrace. Obtained from: https://www.illumos.org/issues/789 MFC after: 2 weeks END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-04T16:28:56.863667Z K 7 svn:log V 98 Remove options ISP_USE_BUSDMA & MPT_USE_BUSDMA. I'm simply rewriting the drivers unconditionally. END K 10 svn:author V 6 davide K 8 svn:date V 27 2012-06-04T17:10:02.442280Z K 7 svn:log V 233 - Start to experiment an extension of the current KPI adding the callout_reset_bt_on() in which we specify timeouts in terms of struct bintime rather than ticks. - Make the old callout_reset_on() just a wrapper to the new function. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-04T17:13:32.712035Z K 7 svn:log V 82 Rename malloc(9) shortdescs so that they don't contain spaces. Suggested by: bde END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-04T17:22:43.345361Z K 7 svn:log V 86 Make aicasm compile without warnings if -Wpointer-sign is enabled. MFC after: 3 days END K 10 svn:author V 7 delphij K 8 svn:date V 27 2012-06-04T18:02:09.415621Z K 7 svn:log V 387 Replace the use of wall clock time with monotonically increasing clock. In general, gettimeofday() is not appropriate interface when accounting for elasped time because it can go backward, in which case the policy code could errornously consider the limit as exceeded. MFC after: 1 week Reported by: Mahesh Arumugam Submitted by: Dorr H. Clark via gnn Sponsored by: Citrix / NetScaler END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-04T18:16:19.128054Z K 7 svn:log V 107 Rewrite using busdma/mi. Things tend to become simpler... Note that isp_sbus.c has not been converted yet. END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-04T18:17:09.346019Z K 7 svn:log V 23 Remove ISP_USE_BUSDMA. END K 10 svn:author V 4 emax K 8 svn:date V 27 2012-06-04T18:43:51.640109Z K 7 svn:log V 118 Plug more refcount leaks and possible NULL deref for interface address list. Submitted by: scottl@ MFC after: 3 days END K 10 svn:author V 6 marcel K 8 svn:date V 27 2012-06-04T18:45:18.007266Z K 7 svn:log V 507 Implement BUSDMA_IOMMU_MAP. We want to map starting with the root and ending with the leaf. In other words, we want to map top-down (root to leaf) and not bottom-up (learfd to root). Given that we have a fairly shallow device tree, use recursion to walk up to the root first and then call the BUSDMA_IOMMU_MAP on the device on the way back down (i.e. while unwinding from the recursion. At the root, bus addresses are the same as CPU (physical addresses), so we assign the CPU address to the bus address. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-06-04T19:09:14.599752Z K 7 svn:log V 147 Allow the -p argument to kdump to accept either a PID or a thread ID. Submitted by: Dmitry Banschikov d.banschikov hostcomm ru MFC after: 1 week END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-04T20:36:11.650202Z K 7 svn:log V 448 Fix build of aicasm when CC=clang. This was due to a side-effect of the EARLY_BUILD macro: the -Qunused-arguments flag isn't passed anymore when building this particular program. However, with clang 3.1 and -Werror, such unused argument warnings are flagged as errors, causing buildkernel to fail at this stage, due to the -nostdinc flag passed during linking. Since the -nostdinc flag isn't actually needed, just remove it. X-MFC-With: r236528 END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-04T20:45:33.678631Z K 7 svn:log V 455 The workaround added in r151650 for handling firmwares that don't allow a single device to be opened multiple times concurrently unfortunately isn't sufficient with ZFS. This is due to the fact, that ZFS may open different partitions of a single device simultaneously. So the best we can do in this case is to cache the lastly used device path and close and open devices in ofwd_strategy() as needed. PR: 165025 Submitted by: Gavin Mu MFC after: 1 week END K 10 svn:author V 2 np K 8 svn:date V 27 2012-06-04T20:50:41.282472Z K 7 svn:log V 139 Add a mechanism for the iWARP driver to register a handler for async notifications. Run the handler when such notifications are received. END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-04T20:56:40.443711Z K 7 svn:log V 304 The loaddev environment variable is not modifiable once set, so it is not update for ZFS. It seems that this does not really affect anything except the help command. Nevertheless, rearrange things so loaddev is set only once in all cases in order to get it right. Pointed out by: avg MFC after: r235364 END K 10 svn:author V 4 ache K 8 svn:date V 27 2012-06-04T21:34:49.659078Z K 7 svn:log V 555 1) IEEE Std 1003.1-2008, "errno" section, is explicit that "The setting of errno after a successful call to a function is unspecified unless the description of that function specifies that errno shall not be modified." However, free() in IEEE Std 1003.1-2008 does not mention its interaction with errno, so MAY modify it after successful call (it depends on particular free() implementation, OS-specific, etc.). So, save errno across free() calls to make code portable and POSIX-conformant. 2) Remove unused serrno assignment. MFC after: 1 week END K 10 svn:author V 6 adrian K 8 svn:date V 27 2012-06-04T22:01:12.336471Z K 7 svn:log V 2118 Migrate the TX path to a taskqueue for now, until a better way of implementing parallel TX and TX/RX completion can be done without simply abusing long-held locks. Right now, multiple concurrent ath_start() entries can result in frames being dequeued out of order. Well, they're dequeued in order fine, but if there's any preemption or race between CPUs between: * removing the frame from the ifnet, and * calling and runningath_tx_start(), until the frame is placed on a software or hardware TXQ Then although dequeueing the frame is in-order, queueing it to the hardware may be out of order. This is solved in a lot of other drivers by just holding a TX lock over a rather long period of time. This lets them continue to direct dispatch without races between dequeue and hardware queue. Note to observers: if_transmit() doesn't necessarily solve this. It removes the ifnet from the main path, but the same issue exists if there's some intermediary queue (eg a bufring, which as an aside also may pull in ifnet when you're using ALTQ.) So, until I can sit down and code up a much better way of doing parallel TX, I'm going to leave the TX path using a deferred taskqueue task. What I will likely head towards is doing a direct dispatch to hardware or software via if_transmit(), but it'll require some driver changes to allow queues to be made without using the really large ath_buf / ath_desc entries. TODO: * Look at how feasible it'll be to just do direct dispatch to ath_tx_start() from if_transmit(), avoiding doing _any_ intermediary serialisation into a global queue. This may break ALTQ for example, so I have to be delicate. * It's quite likely that I should break up ath_tx_start() so it deposits frames onto the software queues first, and then only fill in the 802.11 fields when it's being queued to the hardware. That will make the if_transmit() -> software queue path very quick and lightweight. * This has some very bad behaviour when using ACPI and Cx states. I'll do some subsequent analysis using KTR and schedgraph and file a follow-up PR or two. PR: kern/168649 END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-04T22:06:29.244266Z K 7 svn:log V 31 Vendor import of BIND 9.8.3-P1 END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-04T22:07:05.920143Z K 7 svn:log V 25 Tag the 9.8.3-P1 release END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-04T22:11:20.379150Z K 7 svn:log V 679 Upgrade to 9.8.3-P1, the latest from ISC. This version contains a critical bugfix: Processing of DNS resource records where the rdata field is zero length may cause various issues for the servers handling them. Processing of these records may lead to unexpected outcomes. Recursive servers may crash or disclose some portion of memory to the client. Secondary servers may crash on restart after transferring a zone containing these records. Master servers may corrupt zone data if the zone option "auto-dnssec" is set to "maintain". Other unexpected problems that are not listed here may also be encountered. All BIND users are strongly encouraged to upgrade. END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-04T22:14:33.486722Z K 7 svn:log V 695 Upgrade to 9.8.3-P1, the latest from ISC. This version contains a critical bugfix: Processing of DNS resource records where the rdata field is zero length may cause various issues for the servers handling them. Processing of these records may lead to unexpected outcomes. Recursive servers may crash or disclose some portion of memory to the client. Secondary servers may crash on restart after transferring a zone containing these records. Master servers may corrupt zone data if the zone option "auto-dnssec" is set to "maintain". Other unexpected problems that are not listed here may also be encountered. All BIND users are strongly encouraged to upgrade. END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-04T22:19:09.468244Z K 7 svn:log V 36 Vendor import of BIND 9.6-ESV-R7-P1 END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-04T22:19:32.472703Z K 7 svn:log V 30 Tag the 9.6-ESV-R7-P1 release END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-04T22:21:55.542170Z K 7 svn:log V 684 Upgrade to 9.6-ESV-R7-P1, the latest from ISC. This version contains a critical bugfix: Processing of DNS resource records where the rdata field is zero length may cause various issues for the servers handling them. Processing of these records may lead to unexpected outcomes. Recursive servers may crash or disclose some portion of memory to the client. Secondary servers may crash on restart after transferring a zone containing these records. Master servers may corrupt zone data if the zone option "auto-dnssec" is set to "maintain". Other unexpected problems that are not listed here may also be encountered. All BIND users are strongly encouraged to upgrade. END K 10 svn:author V 6 sbruno K 8 svn:date V 27 2012-06-04T22:46:04.695091Z K 7 svn:log V 106 Lines were a bit too long. Wrap some of them to 60 columns. Suggested by: bjk@ MFC after: 3 days END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-04T22:54:19.568545Z K 7 svn:log V 176 Add the 'filemon' device. 'filemon' is a kernel module that provides a device interface for processes to record system calls of its children. Submitted by: Juniper Networks. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-04T22:59:06.752809Z K 7 svn:log V 41 Add a man page for filemon(4) [r236592]. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-04T22:59:33.543396Z K 7 svn:log V 48 Add a regression test for filemon(4) [r236592]. END K 10 svn:author V 6 wblock K 8 svn:date V 27 2012-06-05T02:18:54.736070Z K 7 svn:log V 73 More wording corrections and simplifications. Approved by: gjb (mentor) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-05T03:14:39.002151Z K 7 svn:log V 118 Fix style nit: don't use leading zero for dates in .Dd Prompted by: brueffer Approved by: brueffer MFC after: 3 days END K 10 svn:author V 6 adrian K 8 svn:date V 27 2012-06-05T03:14:49.966642Z K 7 svn:log V 724 Create a function - ath_tx_kick() - which is called where ath_start() is called to "kick" along TX. For now, schedule a taskqueue call. Later on I may go back to the direct call of ath_rx_tasklet() - but for now, this will do. I've tested UDP and TCP TX. UDP TX still achieves 240MBit, but TCP TX gets stuck at around 100MBit or so, instead of the 150MBit it should be at. I'll re-test with no ACPI/power/sleep states enabled at startup and see what effect it has. This is in preparation for supporting an if_transmit() path, which will turn ath_tx_kick() into a NUL operation (as there won't be an ifnet queue to service.) Tested: * AR9280 STA TODO: * test on AR5416, AR9160, AR928x STA/AP modes PR: kern/168649 END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-05T05:16:04.899828Z K 7 svn:log V 22 style(9) for r236563. END K 10 svn:author V 6 adrian K 8 svn:date V 27 2012-06-05T06:03:55.073916Z K 7 svn:log V 387 Mostly revert previous commit(s). After doing a bunch of local testing, it turns out that it negatively affects performance. I'm stil investigating exactly why deferring the IO causes such negative TCP performance but doesn't affect UDP preformance. Leave the ath_tx_kick() change in there however; it's going to be useful to have that there for if_transmit() work. PR: kern/168649 END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-05T06:41:47.806940Z K 7 svn:log V 54 MFC r236442: Tabify libcxxrt and libc++'s Makefiles. END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-05T06:43:45.190473Z K 7 svn:log V 209 MFC r236444: Install libcxxrt's C++ ABI and unwind headers. This is done in libc++'s Makefile, so these headers go into the same destination directory as libc++'s own headers, currently /usr/include/c++/v1. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-05T09:45:42.421969Z K 7 svn:log V 69 Tune and add some missing CAM_DEBUG() points for better consistency. END K 10 svn:author V 6 cherry K 8 svn:date V 27 2012-06-05T09:49:31.525829Z K 7 svn:log V 192 Enable the event channel callback code. Events are now routed via the xen/evtchn/evtchn.c:evtchn_do_upcall() callback. Also initialise the "failsafe" callback. Approved by: gibbs (implicit) END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-05T10:08:22.437025Z K 7 svn:log V 66 Do not reinvent a wheel and let default error handler do its job. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-05T10:23:41.309553Z K 7 svn:log V 62 Replace #ifdef CAMDEBUG + if + panic() with single KASSERT(). END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-06-05T11:23:56.320008Z K 7 svn:log V 90 MFC r236327 (by emax): When we return deprecated addresses, we need to reference them. END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-06-05T11:24:05.707534Z K 7 svn:log V 90 MFC r236327 (by emax): When we return deprecated addresses, we need to reference them. END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-06-05T11:26:43.898070Z K 7 svn:log V 579 MFC r236501 (by emax): Plug reference leak. Interface addresses are refcounted as packets move through the stack, and there's garbage collection tied to it so that address changes can safely propagate while traffic is flowing. In our setup, we weren't changing or deleting any addresses, but the refcounting logic in ip6_input() was wrong and caused a reference leak on every inbound V6 packet. This eventually caused a 32bit overflow, and the resulting 0 value caused the garbage collection to run on the active address. That then snowballed into the panic. END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-06-05T11:27:11.132498Z K 7 svn:log V 579 MFC r236501 (by emax): Plug reference leak. Interface addresses are refcounted as packets move through the stack, and there's garbage collection tied to it so that address changes can safely propagate while traffic is flowing. In our setup, we weren't changing or deleting any addresses, but the refcounting logic in ip6_input() was wrong and caused a reference leak on every inbound V6 packet. This eventually caused a 32bit overflow, and the resulting 0 value caused the garbage collection to run on the active address. That then snowballed into the panic. END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-06-05T11:28:57.269509Z K 7 svn:log V 103 MFC r236575 (by emax): Plug more refcount leaks and possible NULL deref for interface address list. END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-06-05T11:29:00.320144Z K 7 svn:log V 103 MFC r236575 (by emax): Plug more refcount leaks and possible NULL deref for interface address list. END K 10 svn:author V 8 theraven K 8 svn:date V 27 2012-06-05T11:42:34.874412Z K 7 svn:log V 91 Merge r236148. This allows C++ code to include after explicitly including math.h. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-05T11:48:32.807465Z K 7 svn:log V 67 Tune and add some more CAM_DEBUG() points for the probe sequences. END K 10 svn:author V 3 des K 8 svn:date V 27 2012-06-05T12:34:08.659202Z K 7 svn:log V 106 Add mangled symbols for operator new / delete on 64-bit platforms. Reported by: decke@ MFC after: 1 week END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-06-05T13:27:37.454934Z K 7 svn:log V 147 Plug two interface address refcount leaks in early error return cases in the ioctl path. Reported by: rpaulo Reviewed by: emax MFC after: 3 days END K 10 svn:author V 5 trasz K 8 svn:date V 27 2012-06-05T13:57:02.752717Z K 7 svn:log V 104 MFC r236237: Fix lock interaction table for rmlocks - by default they cannot sleep, just like rwlocks. END K 10 svn:author V 3 imp K 8 svn:date V 27 2012-06-05T14:19:59.727842Z K 7 svn:log V 18 Remove dead code. END K 10 svn:author V 4 ache K 8 svn:date V 27 2012-06-05T16:16:33.018862Z K 7 svn:log V 918 1) Although unpublished version of standard http://austingroupbugs.net/view.php?id=385#c713 (Resolved state) recommend this way for the current standard (called "earlier" in the text) "However, earlier versions of this standard did not require this, and the same example had to be written as: // buf was obtained by malloc(buflen) ret = write(fd, buf, buflen); if (ret < 0) { int save = errno; free(buf); errno = save; return ret; } " from feedback I have for previous commit it seems that many people prefer to avoid mass code change needed for current standard compliance and prefer to track unpublished standard instead, which requires now that free() itself must save errno, not its usage code. So, I back out "save errno across free()" part of previous commit, and will fill PR for changing free() isntead. 2) Remove now unused serrno. MFC after: 1 week END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-05T16:46:34.183276Z K 7 svn:log V 87 Add missing newlines into XML output. MFC after: 3 days Sponsored by: iXsystems, Inc. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-05T17:36:28.707989Z K 7 svn:log V 46 Correct examples to the latest version I had. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-05T17:44:54.276636Z K 7 svn:log V 30 Only build filemon(4) on x86. END K 10 svn:author V 4 joel K 8 svn:date V 27 2012-06-05T17:46:50.495964Z K 7 svn:log V 20 Various mdoc fixes. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-05T17:49:11.287212Z K 7 svn:log V 20 RAID is an acronym. END K 10 svn:author V 4 joel K 8 svn:date V 27 2012-06-05T17:58:47.853863Z K 7 svn:log V 31 Remove end of line whitespace. END K 10 svn:author V 4 joel K 8 svn:date V 27 2012-06-05T18:07:20.109817Z K 7 svn:log V 22 Minor spelling fixes. END K 10 svn:author V 4 joel K 8 svn:date V 27 2012-06-05T18:19:52.593719Z K 7 svn:log V 23 Remove repeated words. END K 10 svn:author V 4 emax K 8 svn:date V 27 2012-06-05T18:48:02.058762Z K 7 svn:log V 732 Before it gets lost in the noise. Put a bandaid to prevent ixgbe(4) from completely locking up the system under high load. Our platform has a few CPU cores and a single active ixgbe(4) port with 4 queues. Under high enough traffic load, at about 7.5GBs and 700,000 packets/sec (outbound), the entire system would deadlock. What we found was that each CPU was in an endless loop on a different ix taskqueue thread. The OACTIVE flag had gotten set on each queue, and the ixgbe_handle_queue() function was continuously rescheduling itself via the taskqueue_enqueue. Since all CPUs were busy with their taskqueue threads, the ixgbe_local_timer() function couldn't run to clear the OACTIVE flag. Submitted by: scottl MFC after: 1 week END K 10 svn:author V 3 gnn K 8 svn:date V 27 2012-06-05T18:58:05.087034Z K 7 svn:log V 192 Add DTrace's io.d, which handles tranlsations for file, buffer and device info structures as well as the fds[] array. This is a raw version of the file, unmodified, to be used as a baseline. END K 10 svn:author V 2 ed K 8 svn:date V 27 2012-06-05T19:42:57.118757Z K 7 svn:log V 60 Fix a small typo. Fireware -> firmware. MFC after: 2 weeks END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-05T19:51:37.740879Z K 7 svn:log V 346 - Join "frag reassembly entry" and "frag cache entry" into one union. Allocate union item from single zone, and assign the frag limit to that zone. - Allocate both kinds of fragments from one zone. - Remove global counters, use uma_zone_get_cur() isntead. Minor nits: - M_ZERO instead of bzero() - Reduce lock coverage in pf_normalize_ip(). END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-05T19:58:58.918009Z K 7 svn:log V 161 MFC: r236486 Add nitems(), a macro for determining the number of elements in a statically-allocated array. Obtained from: OpenBSD (in principle) MFC: r236489 END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-05T19:59:02.179632Z K 7 svn:log V 161 MFC: r236486 Add nitems(), a macro for determining the number of elements in a statically-allocated array. Obtained from: OpenBSD (in principle) MFC: r236489 END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-05T19:59:09.090426Z K 7 svn:log V 147 MFC: r236486 Add nitems(), a macro for determining the number of elements in a statically-allocated array. Obtained from: OpenBSD (in principle) END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-05T20:08:59.677840Z K 7 svn:log V 142 Don't crash trying to load symbols from striped file. PR: bin/167361 Submitted by: Slawa Olhovchenkov Silence from: jkoshy END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-05T20:22:37.173836Z K 7 svn:log V 112 Import NetBSD's ATF as of 2011-04-05 16:3:06 UTC Submitted by: sjg@juniper.net Obtained from: Juniper Networks END K 10 svn:author V 5 trasz K 8 svn:date V 27 2012-06-05T20:27:41.054136Z K 7 svn:log V 496 MFC r235781: Fix enforcement of file size limit with O_APPEND on ZFS. vn_rlimit_fsize takes uio->uio_offset and uio->uio_resid into account when determining whether given write would exceed RLIMIT_FSIZE. When APPEND flag is specified, ZFS updates uio->uio_offset to point to the end of file. But this happens after a call to vn_rlimit_fsize, so vn_rlimit_fsize check can be rendered ineffective by thread that opens some file with O_APPEND and lseeks below RLIMIT_FSIZE before calling write. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-05T20:32:38.654845Z K 7 svn:log V 50 mdoc police. Submitted by: ru Much thanks to: ru END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-05T20:34:56.260732Z K 7 svn:log V 42 MFC: r236488 Take advantage of nitems(). END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-05T20:39:12.859956Z K 7 svn:log V 53 Use default error handler when flushing disk caches. END K 10 svn:author V 6 tuexen K 8 svn:date V 27 2012-06-05T20:48:13.748084Z K 7 svn:log V 83 The cmsg_len field includes the cmsg header. So use CMSG_LEN(). MFC after: 3 days END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-05T20:49:18.943209Z K 7 svn:log V 42 MFC: r236488 Take advantage of nitems(). END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-05T20:53:46.347140Z K 7 svn:log V 77 MFC: r236491 Add missing prototypes. While at it, sort them alphabetically. END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-05T20:53:53.098846Z K 7 svn:log V 77 MFC: r236491 Add missing prototypes. While at it, sort them alphabetically. END K 10 svn:author V 4 emax K 8 svn:date V 27 2012-06-05T21:35:47.903320Z K 7 svn:log V 178 Add a very simple debug tool that would dump list of interfaces, addresses on each interface, and, associated refcounter. I found it handy to check for address refcounter leaks. END K 10 svn:author V 4 emax K 8 svn:date V 27 2012-06-05T22:02:27.530346Z K 7 svn:log V 34 Fix license Pointed by: brueffer END K 10 svn:author V 2 np K 8 svn:date V 27 2012-06-05T23:48:20.233861Z K 7 svn:log V 500 - cxgb/ulp/tom, cxgb/ulp/iw_cxgb, and cxgbe/tom should all be stub modules when the kernel is being built without TCP_OFFLOAD. - Exclude rdma in the XEN kernconf. machine/xen/xen-os.h has some Linuxy definitions that collide with ofed/include/linux/*.h make universe is successful after these changes. Note that the point at which this workspace was branched off had unrelated build breakages. I tested make universe with a patch to head that is equivalent to the changes in this workspace. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-06T00:20:13.726202Z K 7 svn:log V 89 MFC: r236422, r236592, r236593, r236594, r236620, r236621, r236622, & r236637 filemon(4) END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-06-06T01:01:12.469509Z K 7 svn:log V 132 MFC r236309: Assert that TDP_NOFAULTING and TDP_NOSPEEPING thread flags do not leak when thread returns from a syscall to usermode. END K 10 svn:author V 5 kevlo K 8 svn:date V 27 2012-06-06T02:42:30.948775Z K 7 svn:log V 41 Check the return value of pci_find_cap() END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:17:40.177098Z K 7 svn:log V 106 MFC r236282: Add support for Sun 1040 PCI Quad Serial PR: kern/163450 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:18:04.412078Z K 7 svn:log V 106 MFC r236282: Add support for Sun 1040 PCI Quad Serial PR: kern/163450 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:18:22.251722Z K 7 svn:log V 106 MFC r236282: Add support for Sun 1040 PCI Quad Serial PR: kern/163450 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:26:03.738145Z K 7 svn:log V 103 MFC r236283: Add support for newer garmin devices PR: kern/163932 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:26:27.040639Z K 7 svn:log V 103 MFC r236283: Add support for newer garmin devices PR: kern/163932 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:38:25.995129Z K 7 svn:log V 151 MFC r236379: Adding missing dependancies for loading hptiop(4), hptmv(4) and isp(4) as modules. PR: kern/166239 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:38:45.903803Z K 7 svn:log V 151 MFC r236379: Adding missing dependancies for loading hptiop(4), hptmv(4) and isp(4) as modules. PR: kern/166239 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T04:39:05.024260Z K 7 svn:log V 151 MFC r236379: Adding missing dependancies for loading hptiop(4), hptmv(4) and isp(4) as modules. PR: kern/166239 Approved by: cperciva (implicit) END K 10 svn:author V 3 imp K 8 svn:date V 27 2012-06-06T06:19:52.416028Z K 7 svn:log V 868 Enhance the Atmel SoC chip identification routines to account for more SoC variants. Fold the AT91SAM9XE chips into the AT91SAM9260 handling, where appropriate. The following SoCs/SoC families are recognized: at91cap9, at91rm9200, at91sam9260, at91sam9261, at91sam9263, at91sam9g10, at91sam9g20, at91sam9g45, at91sam9n12, at91sam9rl, at91sam9x5 and the following variations are also recognized: at91rm9200_bga, at91rm9200_pqfp, at91sam9xe, at91sam9g45, at91sam9m10, at91sam9g46, at91sam9m11, at91sam9g15, at91sam9g25, at91sam9g35, at91sam9x25, at91sam9x35 This is only the identification routine: no additional Atmel devices are supported at this time. # With these changes, I'm able to boot to the point of identification # on a few different Atmel SoCs that we don't yet support using the # KB920X config file -- someday tht will be an ATMEL config file... END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T06:32:50.527085Z K 7 svn:log V 188 MFC r236377: Fix bug revealed by warning generated by clang: warning: equality comparison with extraneous parentheses [-Wparentheses-equality] Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T06:35:09.978797Z K 7 svn:log V 122 MFC r236285: Add missing flag enable when certain arguments are parsed PR: bin/163053 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T06:35:29.284566Z K 7 svn:log V 122 MFC r236285: Add missing flag enable when certain arguments are parsed PR: bin/163053 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T06:35:47.932454Z K 7 svn:log V 122 MFC r236285: Add missing flag enable when certain arguments are parsed PR: bin/163053 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T06:38:56.268223Z K 7 svn:log V 199 MFC r236289: Relax security permissions on '.seq' file creation - the strict, but odd permissions resulted in a security alert from 110.neggrpperm PR: bin/165533 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T06:39:14.976724Z K 7 svn:log V 199 MFC r236289: Relax security permissions on '.seq' file creation - the strict, but odd permissions resulted in a security alert from 110.neggrpperm PR: bin/165533 Approved by: cperciva (implicit) END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-06-06T06:39:34.986276Z K 7 svn:log V 199 MFC r236289: Relax security permissions on '.seq' file creation - the strict, but odd permissions resulted in a security alert from 110.neggrpperm PR: bin/165533 Approved by: cperciva (implicit) END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-06T06:52:51.730229Z K 7 svn:log V 363 ATA/SATA controllers have no idea about protocol of the connected device until transport will do some probe actions (at least soft reset). Make ATA/SATA SIMs to not report bogus and confusing PROTO_ATA protocol. Make ATA/SATA transport to fill that gap by reporting protocol to SIM with XPT_SET_TRAN_SETTINGS and patching XPT_GET_TRAN_SETTINGS results if needed. END K 10 svn:author V 6 marius K 8 svn:date V 27 2012-06-06T07:46:14.501748Z K 7 svn:log V 103 MFC: r233774 Fix compiler warnings, mostly signed issues, when USB modules are compiled with WARNS=9. END K 10 svn:author V 4 joel K 8 svn:date V 27 2012-06-06T08:07:47.214440Z K 7 svn:log V 46 mdoc: add missing -width argument to Bl -tag. END K 10 svn:author V 7 fabient K 8 svn:date V 27 2012-06-06T08:58:31.305074Z K 7 svn:log V 66 Remove spurious ARM symbols from lookup table. MFC after: 3 days END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-06-06T09:07:50.570362Z K 7 svn:log V 15 Fix the build. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-06T09:36:52.787561Z K 7 svn:log V 376 Merge revision 1.715 from OpenBSD: date: 2010/12/24 20:12:56; author: henning; state: Exp; lines: +3 -3 in pf_src_connlimit, the indices to sk->addr were swapped. tracked down and diff sent by Robert B Mills thanks, very good work! ok claudio Impact is that the "flush" keyword didn't work. Obtained from: OpenBSD MFC after: 1 week END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-06T09:44:57.740443Z K 7 svn:log V 742 When "flush" rule triggers we need to run through the entire table and clean all matching states. First, in the current locking scheme this leads to duplicate acquiring of state hash lock, which isn't allowed. Second, this is extremely expensive task, and performing it right now in the forwarding path is a very bad idea. Thus, offload this task to a taskqueue(9). We allocate some temporary memory and place all needed for matching there, put it on queue, and schedule taskqueue run. Code is quite common to the one that emits packets from the pf_intr(). Also here: - Rename PF_QUEUE_LOCK() macro to PF_SENDQ_LOCK() in order get in one style with PF_FLUSHQ_LOCK(). - Take rev. 1.715 from OpenBSD, which fixes the "flush" functionality. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-06T10:56:59.464941Z K 7 svn:log V 101 Remove undocumented auto-guessing based on physmem, better I later provide a paragraph in tuning(7). END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-06T11:40:16.559603Z K 7 svn:log V 158 MFC r208896, r208900 (by mjacob): Do a minor amount of stylifying. Also, get a Fibre Channel WWPN if one exists for a da unit and create a sysctl OID for it. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-06T11:46:37.729275Z K 7 svn:log V 303 MFC r208911 (by mjacob): Implement the usage of Report Luns as part of SCSI probing for SCP3 or better devices. This can be disabled on a per-device basis using quirks as well. This also handles the case where there is actually no connected LUN 0 (which can definitely be the case for storage arrays). END K 10 svn:author V 4 gber K 8 svn:date V 27 2012-06-06T12:13:20.597379Z K 7 svn:log V 189 Flush cache before downgrade page to WT mode. Cache should be flushed before downgrading to avoid situation when cache controller flushes dirty cache line to page which is not WB anymore. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-06T12:16:54.056579Z K 7 svn:log V 1749 MFC r230053: Add BIO_DELETE support for SCSI Direct Access devices (da). Depending on device capabilities use different methods to implement it. Currently used method can be read/set via kern.cam.da.X.delete_method sysctls. Possible values are: NONE - no provisioning support reported by the device; DISABLE - provisioning support was disabled because of errors; ZERO - use WRITE SAME (10) command to write zeroes; WS10 - use WRITE SAME (10) command with UNMAP bit set; WS16 - use WRITE SAME (16) command with UNMAP bit set; UNMAP - use UNMAP command (equivalent of the ATA DSM TRIM command). The last two methods (UNMAP and WS16) are defined by SBC specification and the UNMAP method is the most advanced one. The rest of methods I've found supported in Linux, and as soon as they were trivial to implement, then why not? Hope they will be useful in some cases. Unluckily I have no devices properly reporting parameters of the logical block provisioning support via respective VPD pages (0xB0 and 0xB2). So all info I have/use now is the flag telling whether logical block provisioning is supported or not. As result, specific methods chosen now by trying different ones in order (UNMAP, WS16, DISABLE) and checking completion status to fallback if needed. I don't expect problems from this, as if something go wrong, it should just disable itself. It may disable even too aggressively if only some command parameter misfit. Unlike Linux, which executes each delete with separate request, I've implemented here the same request aggregation as implemented in ada driver. Tests on SSDs I have show much better results doing it this way: above 8GB/s of the linear delete on Intel SATA SSD on LSI SAS HBA (mps). Sponsored by: iXsystems, Inc. END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-06T12:36:40.639206Z K 7 svn:log V 444 MFC r223084 (by gibbs): sys/cam/scsi/scsi_da.c: - Only attempt the closing synchronize cache on a disk if it is still there. - When a device is lost, report the number of outstanding I/Os as they are drained. - When a device is lost, return any unprocessed bios with ENXIO instead of EIO. - Filter asynchronous events, but always allow cam_periph_async() to see them too. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-06-06T12:45:48.982456Z K 7 svn:log V 136 Revert r236181 in such way that OID numbers doesn't shift, use a placeholder with syntax of NULL in place of no longer supported value. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-06-06T13:35:30.695829Z K 7 svn:log V 69 Use the defined terms "readers" and "writers" to simplify some text. END K 10 svn:author V 3 imp K 8 svn:date V 27 2012-06-06T14:31:14.710407Z K 7 svn:log V 71 Remove stray break; that resulted from a last-minute, untested change. END K 10 svn:author V 6 davide K 8 svn:date V 27 2012-06-06T15:29:27.044195Z K 7 svn:log V 471 There's no need to add one second to the event time in callout_cc_add() if this one is scheduled in the past. This was a braino derived from my previous experiments. Moreover, there's no need to call binuptime(), but, in turn, event times in the past may be silently converted to cc_softticks, avoiding the bintime() overhead. As an added bonus, we can avoid to start our scan of the wheel 1/HZ backward in the past, gaining in terms of performances. Reported by: mav END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-06-06T16:00:31.071293Z K 7 svn:log V 307 MFC 228509,228620,228533: Add a helper API to allow in-kernel code to map portions of shared memory objects created by shm_open(2) into the kernel's address space. This provides a convenient way for creating shared memory buffers between userland and the kernel without requiring custom character devices. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-06-06T16:01:45.328090Z K 7 svn:log V 307 MFC 228509,228620,228533: Add a helper API to allow in-kernel code to map portions of shared memory objects created by shm_open(2) into the kernel's address space. This provides a convenient way for creating shared memory buffers between userland and the kernel without requiring custom character devices. END K 10 svn:author V 4 emax K 8 svn:date V 27 2012-06-06T16:20:59.125916Z K 7 svn:log V 443 MFC r235854 Seems applicable here as well. Tweak condition for disabling allocation from per-CPU buckets in low memory situation. I've observed a situation where per-CPU allocations were disabled while there were enough free cached pages. Basically, cnt.v_free_count was sitting stable at a value lower than cnt.v_free_min and that caused massive performance drop. Reviewed by: alc Requested by: Andrew Boyer aboyer at averesystems dot com END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-06-06T16:26:55.473664Z K 7 svn:log V 44 Add gettimeofday() test. MFC after: 3 days END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-06-06T16:30:16.650032Z K 7 svn:log V 889 Improve handling of uiomove(9) errors for the NFS client. Do not brelse() the buffer unconditionally with BIO_ERROR set if uiomove() failed. The brelse() treats most buffers with BIO_ERROR as B_INVAL, dropping their content. Instead, if the write request covered the whole buffer, remember the cached state and brelse() with BIO_ERROR set only if the buffer was not cached previously. Update the buffer dirtyoff/dirtyend based on the progress recorded by uiomove() in passed struct uio, even in the presence of error. Otherwise, usermode could see changed data in the backed pages, but later the buffer is destroyed without write-back. If uiomove() failed for IO_UNIT request, try to truncate the vnode back to the pre-write state, and rewind the progress in passed uio accordingly, following the FFS behaviour. Reviewed by: rmacklem (some time ago) Tested by: pho MFC after: 1 month END K 10 svn:author V 6 obrien K 8 svn:date V 27 2012-06-06T16:51:33.293727Z K 7 svn:log V 40 Add to the description and spell check. END K 10 svn:author V 3 ken K 8 svn:date V 27 2012-06-06T17:04:56.438262Z K 7 svn:log V 134 Fix a memory leak in the kernel case in scsi_command_string(). Submitted by: Kashyap Desai MFC after: 3 days END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-06-06T17:26:52.619174Z K 7 svn:log V 83 Do not execute a needed statement with side-effect in assert(). MFC after: 3 days END K 10 svn:author V 3 mav K 8 svn:date V 27 2012-06-06T17:28:46.248351Z K 7 svn:log V 68 Remove declaration of scsi_interpret_sense(), removed 11 years ago. END K 10 svn:author V 4 oleg K 8 svn:date V 27 2012-06-06T18:00:19.819933Z K 7 svn:log V 177 MFC: r232272, r232273 - lookup_dyn_rule_locked(): style(9) cleanup - Refresh dynamic tcp rule only if both sides answered keepalive packets. - Remove some useless assignments. END K 10 svn:author V 4 emax K 8 svn:date V 27 2012-06-06T18:00:38.100845Z K 7 svn:log V 106 Count both IPv4 and IPv6 TCP connections in tcpCurrEstab Timeout from: current, syrinx MFC after: 1 week END K 10 svn:author V 4 oleg K 8 svn:date V 27 2012-06-06T18:04:49.326829Z K 7 svn:log V 177 MFC: r232272, r232273 - lookup_dyn_rule_locked(): style(9) cleanup - Refresh dynamic tcp rule only if both sides answered keepalive packets. - Remove some useless assignments. END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-06-06T21:16:26.871274Z K 7 svn:log V 205 Fix two warnings about self-assignment in libc. These normally only trigger with clang, when you either use -save-temps, or ccache. Reported by: Sevan / Venture37 MFC after: 3 days END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-06T21:41:50.161817Z K 7 svn:log V 266 Move 'make clean' to the background. There is no point waiting around for it to finish. In the case of very large work directories this may cause some I/O contention during the unpacking of the next port to build, but in most cases this should be lost in the noise. END K 10 svn:author V 5 dougb K 8 svn:date V 27 2012-06-06T21:42:22.571434Z K 7 svn:log V 17 Update copyright END