diff options
Diffstat (limited to 'cl-os.tex')
-rw-r--r-- | cl-os.tex | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/cl-os.tex b/cl-os.tex new file mode 100644 index 0000000..da78bf8 --- /dev/null +++ b/cl-os.tex @@ -0,0 +1,134 @@ +540 & 11 Oct 2015 & Greg Kurz & {virtqueues: fix +trivial typo + +See +\ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Interrupt Suppression}. +} \\ +\hline +541 & 11 Oct 2015 & Paolo Bonzini & {virtio-blk: fix typo +in legacy framing requirements section + +See +\ref{sec:Device Types / Block Device / Legacy Interface: Framing Requirements}. +} \\ +\hline +545 & 18 Oct 2015 & Paolo Bonzini & {virtio-blk: restore VIRTIO_BLK_F_FLUSH and VIRTIO_BLK_F_CONFIG_WCE + +VIRTIO_BLK_F_CONFIG_WCE is important in order to achieve good performance +(up to 2x, though more realistically +30-40\%) in latency-bound workloads. +However, it was removed by mistake together with VIRTIO_BLK_F_FLUSH. + +In addition, even removing VIRTIO_BLK_F_FLUSH was probably not a great +idea, because it simplifies simple drivers (e.g. firmware) that are okay +with a writethrough cache but still need data to persist after power loss. +What really should have been removed is just the possibility that devices +not propose VIRTIO_BLK_F_FLUSH, but even that only deserves a "SHOULD" in +the new world of conformance statements. + +Restore these, with the following changes: + +* clarify and use conformance statements in order to define writeback +and writethrough caching according to what is commonly done by high-end +storage. + +* clarify (with conformance statements) the influence of the +VIRTIO_BLK_F_FLUSH feature on caching and how to proceed if only one of +VIRTIO_BLK_F_FLUSH and VIRTIO_BLK_F_CONFIG_WCE is negotiated. + +* strengthen the requirement for persisting writes to MUST after +a VIRTIO_BLK_T_FLUSH request (and in other cases too involving the +new features). + +The suggested behavior upon feature negotiation is okay for the Linux +implementation of virtio1, even after the implementation is modified to +support the two new features. + +This fixes VIRTIO-144. + +See \ref{sec:Device Types / Block Device}, +\ref{sec:Conformance / Driver Conformance / Block Driver Conformance} and +\ref{sec:Conformance / Device Conformance / Block Device Conformance}. +} \\ +\hline +546 & 18 Oct 2015 & Michael S. Tsirkin & {pci: clarify configuration access capability rules + +The point of the configuration access capability is to enable +access to other capabilities. The intent never was to allow +writes to a random place within device BARs. +Limiting drivers simplifies devices - and devices can always +add another capability if drivers ever want to access +some other range. + +This resolves VIRTIO-145. + +See \ref{drivernormative:Virtio Transport Options / Virtio Over +PCI Bus / PCI Device Layout / PCI configuration access +capability}. +} \\ +\hline +547 & 18 Oct 2015 & Michael S. Tsirkin & {add advice on transition from legacy interfaces + +Reading legacy chapters gives a hint about what changed, +let's help readers discover this useful shortcut. + +This resolves VIRTIO-146. + +See \ref{sec:Transition from earlier specification drafts}. +} \\ +\hline +554 & 16 Feb 2016 & Thomas Huth & {virtio-net: fix inconsistent legacy header size + + Current text says: + The legacy driver only presented num_buffers in the struct + virtio_net_hdr when VIRTIO_NET_F_MRG_RXBUF was not negotiated; + + Should be: + "\dots was negotiated \dots" instead of "\dots was not negotiated \dots" + + To be consistent with the following: + without that feature the structure was 2 bytes shorter. + +See \ref{sec:Device Types / Network Device / Device Operation / Legacy Interface: Device Operation}. +} \\ +\hline +555 & 16 Feb 2016 & Michael S. Tsirkin & {virtio header: tweak +change motivation + + The changes are not just to remove Linux assumptions, + we have also renamed ring->queue. + Tweak the header description accordingly. + +See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Helpers for Operating Virtqueues}. +} \\ +\hline +558 & 16 Feb 2016 & Michael S. Tsirkin & {rename virtio_ring.h to virtio_queue.h + + Since vring* and VRING* have been replaced with virtq* and VIRTQ* + respectively, rename the header virtio_ring.h to virtio_queue.h. + +See \ref{sec:virtio-queue.h}. +} \\ +\hline +559 & 16 Feb 2016 & Michael S. Tsirkin & {init: sort status bits + + Status bit order is inconsistent: they are neither in increasing + order nor in the order they are likely to be used. + + The second approach seems more useful since there aren't + that many bits, so the numerical order does not help much. + + A typical order of use would be: + +\begin{itemize} +\item ACKNOWLEDGE +\item DRIVER +\item then either FAILED or FEATURES_OK +\item then either FAILED or DRIVER_OK +\item then DEVICE_NEEDS_RESET (if device detects an error) +\end{itemize} + + Sort the bits accordingly. + +See \ref{sec:Basic Facilities of a Virtio Device / Device Status Field}. +} \\ +\hline |