Revision 6d519a5f
b/block.c | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
#include "config-host.h" |
25 | 25 |
#include "qemu-common.h" |
26 |
#include "trace.h" |
|
26 | 27 |
#include "monitor.h" |
27 | 28 |
#include "block_int.h" |
28 | 29 |
#include "module.h" |
... | ... | |
2063 | 2064 |
{ |
2064 | 2065 |
MultiwriteCB *mcb = opaque; |
2065 | 2066 |
|
2067 |
trace_multiwrite_cb(mcb, ret); |
|
2068 |
|
|
2066 | 2069 |
if (ret < 0 && !mcb->error) { |
2067 | 2070 |
mcb->error = ret; |
2068 | 2071 |
} |
... | ... | |
2203 | 2206 |
// Check for mergable requests |
2204 | 2207 |
num_reqs = multiwrite_merge(bs, reqs, num_reqs, mcb); |
2205 | 2208 |
|
2209 |
trace_bdrv_aio_multiwrite(mcb, mcb->num_callbacks, num_reqs); |
|
2210 |
|
|
2206 | 2211 |
/* |
2207 | 2212 |
* Run the aio requests. As soon as one request can't be submitted |
2208 | 2213 |
* successfully, fail all requests that are not yet submitted (we must |
... | ... | |
2224 | 2229 |
*/ |
2225 | 2230 |
mcb->num_requests = 1; |
2226 | 2231 |
|
2232 |
// Run the aio requests |
|
2227 | 2233 |
for (i = 0; i < num_reqs; i++) { |
2228 | 2234 |
mcb->num_requests++; |
2229 | 2235 |
acb = bdrv_aio_writev(bs, reqs[i].sector, reqs[i].qiov, |
... | ... | |
2234 | 2240 |
// submitted yet. Otherwise we'll wait for the submitted AIOs to |
2235 | 2241 |
// complete and report the error in the callback. |
2236 | 2242 |
if (i == 0) { |
2243 |
trace_bdrv_aio_multiwrite_earlyfail(mcb); |
|
2237 | 2244 |
goto fail; |
2238 | 2245 |
} else { |
2246 |
trace_bdrv_aio_multiwrite_latefail(mcb, i); |
|
2239 | 2247 |
multiwrite_cb(mcb, -EIO); |
2240 | 2248 |
break; |
2241 | 2249 |
} |
b/hw/virtio-blk.c | ||
---|---|---|
13 | 13 |
|
14 | 14 |
#include <qemu-common.h> |
15 | 15 |
#include "qemu-error.h" |
16 |
#include "trace.h" |
|
16 | 17 |
#include "blockdev.h" |
17 | 18 |
#include "virtio-blk.h" |
18 | 19 |
#ifdef __linux__ |
... | ... | |
52 | 53 |
{ |
53 | 54 |
VirtIOBlock *s = req->dev; |
54 | 55 |
|
56 |
trace_virtio_blk_req_complete(req, status); |
|
57 |
|
|
55 | 58 |
req->in->status = status; |
56 | 59 |
virtqueue_push(s->vq, &req->elem, req->qiov.size + sizeof(*req->in)); |
57 | 60 |
virtio_notify(&s->vdev, s->vq); |
... | ... | |
88 | 91 |
{ |
89 | 92 |
VirtIOBlockReq *req = opaque; |
90 | 93 |
|
94 |
trace_virtio_blk_rw_complete(req, ret); |
|
95 |
|
|
91 | 96 |
if (ret) { |
92 | 97 |
int is_read = !(req->out->type & VIRTIO_BLK_T_OUT); |
93 | 98 |
if (virtio_blk_handle_rw_error(req, -ret, is_read)) |
... | ... | |
270 | 275 |
{ |
271 | 276 |
BlockRequest *blkreq; |
272 | 277 |
|
278 |
trace_virtio_blk_handle_write(req, req->out->sector, req->qiov.size / 512); |
|
279 |
|
|
273 | 280 |
if (req->out->sector & req->dev->sector_mask) { |
274 | 281 |
virtio_blk_rw_complete(req, -EIO); |
275 | 282 |
return; |
b/posix-aio-compat.c | ||
---|---|---|
25 | 25 |
#include "qemu-queue.h" |
26 | 26 |
#include "osdep.h" |
27 | 27 |
#include "qemu-common.h" |
28 |
#include "trace.h" |
|
28 | 29 |
#include "block_int.h" |
29 | 30 |
|
30 | 31 |
#include "block/raw-posix-aio.h" |
... | ... | |
583 | 584 |
acb->next = posix_aio_state->first_aio; |
584 | 585 |
posix_aio_state->first_aio = acb; |
585 | 586 |
|
587 |
trace_paio_submit(acb, opaque, sector_num, nb_sectors, type); |
|
586 | 588 |
qemu_paio_submit(acb); |
587 | 589 |
return &acb->common; |
588 | 590 |
} |
b/trace-events | ||
---|---|---|
37 | 37 |
disable qemu_memalign(size_t alignment, size_t size, void *ptr) "alignment %zu size %zu ptr %p" |
38 | 38 |
disable qemu_valloc(size_t size, void *ptr) "size %zu ptr %p" |
39 | 39 |
disable qemu_vfree(void *ptr) "ptr %p" |
40 |
|
|
41 |
# block.c |
|
42 |
disable multiwrite_cb(void *mcb, int ret) "mcb %p ret %d" |
|
43 |
disable bdrv_aio_multiwrite(void *mcb, int num_callbacks, int num_reqs) "mcb %p num_callbacks %d num_reqs %d" |
|
44 |
disable bdrv_aio_multiwrite_earlyfail(void *mcb) "mcb %p" |
|
45 |
disable bdrv_aio_multiwrite_latefail(void *mcb, int i) "mcb %p i %d" |
|
46 |
|
|
47 |
# hw/virtio-blk.c |
|
48 |
disable virtio_blk_req_complete(void *req, int status) "req %p status %d" |
|
49 |
disable virtio_blk_rw_complete(void *req, int ret) "req %p ret %d" |
|
50 |
disable virtio_blk_handle_write(void *req, unsigned long sector, unsigned long nsectors) "req %p sector %lu nsectors %lu" |
|
51 |
|
|
52 |
# posix-aio-compat.c |
|
53 |
disable paio_submit(void *acb, void *opaque, unsigned long sector_num, unsigned long nb_sectors, unsigned long type) "acb %p opaque %p sector_num %lu nb_sectors %lu type %lu" |
Also available in: Unified diff