Eran Rom wrote:
The "Host<-->Guest" calls in virtio_blk (using the generic virtio kick/notify)
are as follows:
Guest->Host
-----------
do_virtlkb_request calls kick in the guest side causing handle_output to be
called on the host side.
Host->Guest
-----------
virtio_blk_rw_complete calls notify in the host side causing block_done to be
called on the guest side
My question has to do with the timing of the calls.
Which would be the correct drawing
1. Overlapping:
kick |------------|
handle_output |------------|
2. Disjoint:
kick |------------|
handle_output |------------|
kick() competely contains handle_output().
In other words:
if I do
g1 = get_cpu_cycles
kick
g2 = get_cpu_cycles
and
h1 = get_cpu_cycles
handle_output
h2 = get_cpu_cycles
would (g2-g1) + (h2-h2) count some cycles twice?
h2-h1 would be counted twice.
Same question for notify and block_done.
Different answer. The guest starts executing sometimes in the middle of
the host notify function.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html