- Feb 28, 2013
-
-
Avi Kivity authored
There are actually no interactions between msix registrations of different drivers, so it doesn't help to use a global instance. We can simplify the interface by making it local, and also remove locking considerations.
-
Avi Kivity authored
These are subsumed into the driver constructor/destrutor.
-
Avi Kivity authored
Driver enumeration requires instantiating a driver even for devices which are not present; and if a device is present multiple times, we need to pre-create multiple driver instances, which is awkward. Further, driver life-cycle is complicated, with separation between instantiation and binding to a device. Switch (back) to the traditional device-driven model, where we iterate over all devices, try to find a matching driver factory, and when found, call it to instantiate the driver and bind to the device.
-
Avi Kivity authored
-
Avi Kivity authored
Don't do this in header files.
-
- Feb 25, 2013
-
-
Dor Laor authored
-
- Feb 23, 2013
-
-
Avi Kivity authored
While easy to use, auto-starting threads generates problems when more complicated initialization takes place. Rather than making auto-start optional (as Guy suggested), remove it completely, to keep the API simple. Use thread::start() to start a thread. Unstarted threads ignore wakeups until started.
-
- Feb 22, 2013
-
-
Dor Laor authored
driver itself. It removes the hard coded binding to queue 0 and will enable flexibility for the upcoming virtio-net registration.
-
- Feb 21, 2013
- Feb 17, 2013
- Feb 13, 2013
-
-
Dor Laor authored
debug output and do some order
-
Dor Laor authored
It was triggered when there were debug prints in the middle of these functions that cause context switch.
-
Dor Laor authored
If the host supports that it is enabled. Indirect buffers enalrge the ring by using external descriptors allocated on the fly.
-
Guy Zana authored
-
- Feb 12, 2013
-
-
Christoph Hellwig authored
-
Dor Laor authored
-
Dor Laor authored
-
Dor Laor authored
-
- Feb 10, 2013
-
-
Dor Laor authored
Discover that bio->bio_offset is zero while the data starts in the middle of the page so I adjusted the code accordingly. Will need to sort it out later on.
-
Avi Kivity authored
Time might stop under some hosts without this fix.
-
Dor Laor authored
The logic is called as callback invoked by virtio interrupts. In addition, polish the test code. Before all of the write request had filled the ring and left no space for the read requests. Now I rotate between the two.
-
Dor Laor authored
Only it's usage within the array should be within limits. Add a function for available ring content
-
- Feb 07, 2013
-
-
Avi Kivity authored
This makes it easier to create a thread with no special properties.
-
Avi Kivity authored
This makes it easy to configure a thread with various parameters. The first is the existing stack_info parameter.
-
Dor Laor authored
pushing it into a dummy bio structure. In addition, expand the test some more
-
Dor Laor authored
-
Avi Kivity authored
The apic needs to be programmed on each cpu that is brought up.
-
Avi Kivity authored
Each cpu has its own event timer; we rely on this. Document the requirement.
-
- Feb 06, 2013
-
-
Dor Laor authored
-
- Feb 05, 2013
-
-
Dor Laor authored
-
Dor Laor authored
-
Dor Laor authored
Before we had 2 layes of calls, one in the virtio ring layer and another in the virtio-blk layer. There wasn't any reall need for that. The change allows the virtio-vring code to call a callback that the virtio-blk registers and execute it directly.
-