summaryrefslogtreecommitdiff
path: root/sys/dev/pv
AgeCommit message (Collapse)Author
2017-09-08If you use sys/param.h, you don't need sys/types.hTheo de Raadt
2017-08-10Don't forget to call va_end in xen_hypercallMike Belopuhov
Coverity CID 1453343
2017-08-10Prevent an unlikely resource leakMike Belopuhov
Coverity CID 1453069; Severity: unlikely, not user-visible.
2017-08-10sector_count is uninitialized if the SCSI cmdlen is not 6, 10, 12 orReyk Floeter
16 bytes long. This cannot happen. But it is good to silence the uninitialized variable warning. Coverity CID 1453104; Severity: Insignificant OK mikeb@
2017-08-10Fix copy-paste error in the error path of vio_alloc_mem() that checkedReyk Floeter
the wrong variable (sc_tx_dmamaps[i] instead of sc_rx_dmamaps[i]). Coverity CID 1452937; Severity: Minor OK mikeb@
2017-08-10Add missing comma that caused a concatenated string. Fixes printing ofReyk Floeter
the device names of "9P Transport" and "mac80211 wlan" virtio devices. Coverity CID 1453254; Severity: Insignificant OK mikeb@
2017-08-10Correct the upper bound for the command size before the passthroughMike Belopuhov
Coverity CID 1453317; Severity: unlikely, not user-visible.
2017-08-10Buffer size for the SCSI vendor string should be 8 char longMike Belopuhov
A vendor and part of the product string got copied into a larger on-stack buffer as a result of an out-of-bounds access, however only 4 characters are meaningful in this context. Coverity CID 1453206; Severity: insignificant.
2017-08-10Fixup upper bound for the completion descriptor identifierMike Belopuhov
Coverity CID 1452864; Severity: unlikely, not user-visible.
2017-08-10Fail if unknown type of an address family was specifiedMike Belopuhov
Coverity CID 1452981; Severity: unlikely, not user-visible.
2017-07-21Replace MD _bus_dmamap_* function calls with MI onesMike Belopuhov
2017-07-19Turn this into a panic since there's no way to recover from itMike Belopuhov
2017-07-17Forbid overwriting a grant table entry currently in useMike Belopuhov
2017-07-17Reduce amount of CAS attempts in a busy-wait loop by a factor of 100Mike Belopuhov
2017-07-17Pick the correct TX buffer when unrollingMike Belopuhov
2017-07-17Reimplement mbuf/map to descriptor mappingMike Belopuhov
Previously descriptors have referenced DMA maps too loosely which led to bus_dmamap_unload being called before all fragments have been completed. This eliminates the last instance of excessive looping while waiting for a grant table entry to become available.
2017-07-17Grant table entries must be disassociated once CCB is completeMike Belopuhov
Attempting to unload the map before all chunks are done may lead to unnecessary looping.
2017-07-14SpacingMike Belopuhov
2017-07-14Reduce the number of CAS loops from ludicrous to ridiculousMike Belopuhov
Now that the source of the delay with releasing grant table entries has been identified and fixed the number of attempts to CAS entry flags can be substantially reduced and while it's decreased by a factor of 100000, it should go down at least a 100 more in the future.
2017-07-14Silence the interrupt source until the interrupt task has done its jobMike Belopuhov
This small change significantly improves performance under load and halves the number of received interrupts.
2017-07-14Support out-of-order TX completion notificationsMike Belopuhov
Apparently, just like the disk interface, the network backend may post TX completions out-of-order, i.e. the ring position doesn't determine which descriptor is being completed and the code must look at the response id inside the completion message. It might seem obvious, but since networking hardware doesn't usually work this way, it was something that has been overlooked. Based on instability reports from Kirill Miazine <km at krot ! org>, thanks!
2017-07-13Add a comment explaining why pciide(4) must skip attaching disksMike Belopuhov
Requested by kettenis@.
2017-07-12Prefer paravirtualized interface for IDE disks as wellMike Belopuhov
2017-06-27Provide a handler stub for the "channel rescind" messageMike Belopuhov
2017-06-27Avoid testing an uninitialised variable in the SCSI_BUSY/SCSI_QUEUE_FULLJonathan Gray
paths of hvs_scsi_cmd_done(). ok mikeb@
2017-06-26Minor cleanup; when polling delay before calling the interrupt handlerMike Belopuhov
2017-06-26Rework the deferred interrupt loopMike Belopuhov
By performing a task_add an interrupt handler can rely on the taskq_thread to invoke it again with an additional benefit of being able to sched_pause when required. In the long run more than 99.8% of calls do not require an additional iteration.
2017-06-23Event interrupt handler should call hv_channel_schedule nowMike Belopuhov
2017-06-23Request deferred interrupt processingMike Belopuhov
2017-06-23Introduce deferred interrupt processing capabilityMike Belopuhov
Hyper-V interrupts seem to be sometimes delivered before the message becomes available on the channel ring. This is reproducible on hvs(4) under load. This change is modelled on the workaround found in the Linux driver.
2017-06-23s/membar_sync/virtio_membar_sync/Mike Belopuhov
2017-06-23Finish up minor changes in the output and clear the BATCHED channel flagMike Belopuhov
2017-06-22Add a hypervisor-specific function pointer in pvbus(4) that gets called duringJonathan Matthew
cpu_hatch() on each cpu, allowing initialization of per-cpu features on each cpu as it starts up. input from reyk@ and mikeb@ ok mikeb@
2017-06-21Don't confuse SCSI command status and transfer error code.Mike Belopuhov
While here, make SCSI command completion routine more robust.
2017-06-21Return early from NVS command submission if no response is requiredMike Belopuhov
2017-06-21Include the request id in the I/O debug outputMike Belopuhov
2017-06-15Don't defer attaching PV devicesMike Belopuhov
Now that both hvn(4) and hvs(4) can perform VMBus channel operations during autoconf, it's no longer necessary to defer their attachment.
2017-06-15Make sure we can free GPA handles when coldMike Belopuhov
2017-06-15Support executing NVSP and RNDIS commands during autoconfMike Belopuhov
2017-06-15Provide storage for the response message in each CCBMike Belopuhov
2017-06-15Remove the structure definition for an old (pre Win8) I/O request typeMike Belopuhov
since the new one is backwards compatible and the correct length of the request can be specified w/o an actual definition.
2017-06-15Put back copying of the response message into the polling callbackMike Belopuhov
The response message is allocated on the stack of hvs_intr and its content is valid during a single message processing loop iteration. Due to the fact that polled transfers finish completion in a callee context, the cached pointer to the response message becomes stale very quickly. To avoid this situation the poll completion callback needs to make sure the content of the response is provided to the next completion routine.
2017-06-15Correct the number of targets vs number of LUNsMike Belopuhov
jsg@ has found out that the number of targets wasn't correct and it turns out that the device supports up to 2 targets and 1 or 64 LUNs depending on whether it's taking over an IDE device or is a virtual SCSI. While here make sure the command response is copied back only for synchronous commands that are issued during initialization phase.
2017-06-14Borrow some of dlg's smarts to make this look like a real SCSI driverMike Belopuhov
2017-06-14Special handling for request 0 clashes with CCB 0Mike Belopuhov
2017-06-14Increase the maximum amount of requests and do some cleanupMike Belopuhov
2017-06-14Hookup hvs(4)Mike Belopuhov
2017-06-14Hyper-V storage driverMike Belopuhov
Based on the FreeBSD driver, attaches only to emulated SCSI controllers.
2017-06-14Add another type of a scatter-gather list operation used by StorVSCMike Belopuhov
Obtained from FreeBSD.
2017-06-12ifq_start does OACTIVE and RUNNING checks for the driverMike Belopuhov
Reminded by dlg@.