History log of /fuchsia/zircon/system/dev/bus/virtio/block.h
Revision Date Author Comments
# babe1cf5 25-Jul-2018 Adam Barth <abarth@chromium.org>

[sync] Apply C API rubric to libsync

Test: No behavior change
Change-Id: I30a413f7fb5d3f4e741e5204532b82e73595c086


# ca1fecb0 03-Apr-2018 Todd Eisenberger <teisenbe@google.com>

[dev][virtio] Migrate to new BTI interface

Now with PMTs!

ZX-1936 #comment migrated virtio

Change-Id: I57df8a19eb5622ea82ff11a1a3d73bb25bd4327a


# 37331e67 12-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[virtio] Convert use of OP_LOOKUP to bti_pin

Change-Id: I828fef091de454e3dd7d21d2964beb5c20ef879b


# 09fabdf9 12-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[virtio] Wire BTIs through to the device objects

Change-Id: I8a19733734b8694f734463dd3134b77a9ae50d14


# 3aea7e1f 09-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[virtio] Convert BlockDevice to use io_buffer

Change-Id: I0a22b9ec61e1e4083e89c4ce43b2549fff052cf4


# 611e3029 28-Feb-2018 Travis Geiselbrecht <travisg@google.com>

[dev][virtio-block] add an external mutex around the ring descriptor

TODO: probably move the mutex into the ring class, but need to test
other devices for this.

ZX-1784 #done

Change-Id: I57c4b6e0a3bc8416faabd73c93d99b1f7fe77d04


# 2a7db0db 24-Jan-2018 Brian Swetland <swetland@google.com>

[virtio][block] cope with temporary resource exhaustion

Don't fail if all 32 requests are in flight or there are
not enough free descriptor slots available. Instead wait
and try again as in-flight requests complete.

This could probably be done more cleverly, but for now
I avoided getting tricky.

Also, access alloc/free_blk_req() and the txn_list under
a lock, to avoid the irq thread and queueing threads
messing with each other.

Change-Id: I1d7f6e6e772c665514cddccd867520f56a3002b4


# 3ffca695 23-Jan-2018 Brian Swetland <swetland@google.com>

[virtio][block] convert to new block protocol

This works with the iochk exerciser, but does not pass the minfs
test. However the pre-conversion version fails the minfs test the
same way: if requests arrive fast enough there may not be enough
ring entries for a request and the driver does not have a mechanism
to wait until they become available.

Change-Id: I0d92774efbdf1ae1caa1d7359b6a3084047e7494


# e75bde30 10-Dec-2017 Sean Klein <seanmarionklein@gmail.com>

[dev][block] Drastically simplify BLOCK_CORE protocol

Observations:
- Almost every block device driver implements the protocol
functions (set_callbacks, get_info, read, write) using
nearly identical code.
- The only differences which exist in those functions are
within the read/write functions, which may do additional
boundary checking. However, this boundary checking is
already accomplished by iotxn_queue, so it is redundant.

Exploiting these Observations:
- Relocate the iotxn allocating / enqueueing functionality
into the generic block driver, so it can be shared by
all block device drivers registered as BLOCK_CORE.
- In doing so, there is no longer a need for registered
callbacks. This simplifies block device drivers further.

Change-Id: I795418489cebd3ecebcb2d1153f1cfd7dcc77d5c


# 5203d83e 09-Dec-2017 Sean Klein <smklein@google.com>

[dev][block] Add write barriers for groups of block iotxns

ZX-1436 #comment In Progress

Change-Id: Iaea7b796e3d073780bfead6bdc2a7c30bb29e491


# 1d2ee742 12-Oct-2017 Christopher Anderson <cja@google.com>

[virtio] Refactor virtio backend support

- Implement device backends for transport rather than having
it be a part of the device class itself. These backends are
plugged into the device class to provide an abstraction between
device level interfaces and the specific nuances around the
virtio interface.
- Implement a legacy virtio bar0 PIO interface for use in systems
that only provide Virtio 0.9.5 devices.
- Move logging away from VIRTIO_ERROR and use newer ddk zxlogf.
- Run clang-fmt and clean up small nits here and there.
Change-Id: I2568e9554378163f19b89537986e0d5ea8b47510


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 3763de77 23-Jun-2017 Abdulla Kamar <abdulla@google.com>

[virtio] Move more block structures to ulib.

This allows us to reuse these constants and structures for the
hypervisor.

Change-Id: I4d5c4bb512c11f97e82cf739f9b42f87bbfeda16


# a6ffebad 14-Jun-2017 Brian Swetland <swetland@google.com>

[ddk][block] new protocol support (3 of n)

Convert MX_PROTOCOL_BLOCK_CORE providers and consumers to the
new style protocol interface.

Change-Id: I3c2b190bade3cb18bfe6b32027715554a74dcf98


# ccd9244b 08-Jun-2017 Abdulla Kamar <abdulla@google.com>

[virtio] Create virtio ulib.

This way we can share common structure and constant definitions
between host and client side implementations.

Change-Id: I565b9252e38a6d11c2df61efda649cb6ca6e246a


# d6c6f3bd 10-Jun-2017 Mike Voydanoff <voydanoff@google.com>

[udev][virtio] Move to system/dev/bus/

Change-Id: If774aaef5040c31b6ee76dad1aa8bac30165f045