mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-14 07:20:42 +00:00
Merge remote-tracking branch 'kwolf/for-anthony' into staging
* kwolf/for-anthony: (30 commits) declare ECANCELED on all machines tests/Makefile: Add missing $(EXESUF) stream: do not copy unallocated sectors from the base stream: fix ratelimiting corner case stream: fix HMP block_job_set_speed stream: pass new base image format to bdrv_change_backing_file stream: add testcase for partial streaming stream: fix sectors not allocated test qemu-io: fix the alloc command qemu-io: correctly print non-integer values as decimals qemu-img: make "info" backing file output correct and easier to use block: move field reset from bdrv_open_common to bdrv_close block: protect path_has_protocol from filenames with colons block: simplify path_is_absolute block: wait for job callback in block_job_cancel_sync block: add block_job_sleep_ns block: fully delete bs->file when closing block: do not reuse the backing file across bdrv_close/bdrv_open block: another bdrv_append fix block: fix snapshot on QED ...
This commit is contained in:
commit
b3d6ca770d
176
block.c
176
block.c
@ -198,33 +198,31 @@ static void bdrv_io_limits_intercept(BlockDriverState *bs,
|
|||||||
/* check if the path starts with "<protocol>:" */
|
/* check if the path starts with "<protocol>:" */
|
||||||
static int path_has_protocol(const char *path)
|
static int path_has_protocol(const char *path)
|
||||||
{
|
{
|
||||||
|
const char *p;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (is_windows_drive(path) ||
|
if (is_windows_drive(path) ||
|
||||||
is_windows_drive_prefix(path)) {
|
is_windows_drive_prefix(path)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
p = path + strcspn(path, ":/\\");
|
||||||
|
#else
|
||||||
|
p = path + strcspn(path, ":/");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return strchr(path, ':') != NULL;
|
return *p == ':';
|
||||||
}
|
}
|
||||||
|
|
||||||
int path_is_absolute(const char *path)
|
int path_is_absolute(const char *path)
|
||||||
{
|
{
|
||||||
const char *p;
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* specific case for names like: "\\.\d:" */
|
/* specific case for names like: "\\.\d:" */
|
||||||
if (*path == '/' || *path == '\\')
|
if (is_windows_drive(path) || is_windows_drive_prefix(path)) {
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
}
|
||||||
p = strchr(path, ':');
|
return (*path == '/' || *path == '\\');
|
||||||
if (p)
|
|
||||||
p++;
|
|
||||||
else
|
|
||||||
p = path;
|
|
||||||
#ifdef _WIN32
|
|
||||||
return (*p == '/' || *p == '\\');
|
|
||||||
#else
|
#else
|
||||||
return (*p == '/');
|
return (*path == '/');
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,6 +270,15 @@ void path_combine(char *dest, int dest_size,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void bdrv_get_full_backing_filename(BlockDriverState *bs, char *dest, size_t sz)
|
||||||
|
{
|
||||||
|
if (bs->backing_file[0] == '\0' || path_has_protocol(bs->backing_file)) {
|
||||||
|
pstrcpy(dest, sz, bs->backing_file);
|
||||||
|
} else {
|
||||||
|
path_combine(dest, sz, bs->filename, bs->backing_file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void bdrv_register(BlockDriver *bdrv)
|
void bdrv_register(BlockDriver *bdrv)
|
||||||
{
|
{
|
||||||
/* Block drivers without coroutine functions need emulation */
|
/* Block drivers without coroutine functions need emulation */
|
||||||
@ -612,16 +619,11 @@ static int bdrv_open_common(BlockDriverState *bs, const char *filename,
|
|||||||
int ret, open_flags;
|
int ret, open_flags;
|
||||||
|
|
||||||
assert(drv != NULL);
|
assert(drv != NULL);
|
||||||
|
assert(bs->file == NULL);
|
||||||
|
|
||||||
trace_bdrv_open_common(bs, filename, flags, drv->format_name);
|
trace_bdrv_open_common(bs, filename, flags, drv->format_name);
|
||||||
|
|
||||||
bs->file = NULL;
|
|
||||||
bs->total_sectors = 0;
|
|
||||||
bs->encrypted = 0;
|
|
||||||
bs->valid_key = 0;
|
|
||||||
bs->sg = 0;
|
|
||||||
bs->open_flags = flags;
|
bs->open_flags = flags;
|
||||||
bs->growable = 0;
|
|
||||||
bs->buffer_alignment = 512;
|
bs->buffer_alignment = 512;
|
||||||
|
|
||||||
assert(bs->copy_on_read == 0); /* bdrv_new() and bdrv_close() make it so */
|
assert(bs->copy_on_read == 0); /* bdrv_new() and bdrv_close() make it so */
|
||||||
@ -630,7 +632,6 @@ static int bdrv_open_common(BlockDriverState *bs, const char *filename,
|
|||||||
}
|
}
|
||||||
|
|
||||||
pstrcpy(bs->filename, sizeof(bs->filename), filename);
|
pstrcpy(bs->filename, sizeof(bs->filename), filename);
|
||||||
bs->backing_file[0] = '\0';
|
|
||||||
|
|
||||||
if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv)) {
|
if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv)) {
|
||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
@ -804,14 +805,8 @@ int bdrv_open(BlockDriverState *bs, const char *filename, int flags,
|
|||||||
BlockDriver *back_drv = NULL;
|
BlockDriver *back_drv = NULL;
|
||||||
|
|
||||||
bs->backing_hd = bdrv_new("");
|
bs->backing_hd = bdrv_new("");
|
||||||
|
bdrv_get_full_backing_filename(bs, backing_filename,
|
||||||
if (path_has_protocol(bs->backing_file)) {
|
sizeof(backing_filename));
|
||||||
pstrcpy(backing_filename, sizeof(backing_filename),
|
|
||||||
bs->backing_file);
|
|
||||||
} else {
|
|
||||||
path_combine(backing_filename, sizeof(backing_filename),
|
|
||||||
filename, bs->backing_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bs->backing_format[0] != '\0') {
|
if (bs->backing_format[0] != '\0') {
|
||||||
back_drv = bdrv_find_format(bs->backing_format);
|
back_drv = bdrv_find_format(bs->backing_format);
|
||||||
@ -878,9 +873,17 @@ void bdrv_close(BlockDriverState *bs)
|
|||||||
bs->opaque = NULL;
|
bs->opaque = NULL;
|
||||||
bs->drv = NULL;
|
bs->drv = NULL;
|
||||||
bs->copy_on_read = 0;
|
bs->copy_on_read = 0;
|
||||||
|
bs->backing_file[0] = '\0';
|
||||||
|
bs->backing_format[0] = '\0';
|
||||||
|
bs->total_sectors = 0;
|
||||||
|
bs->encrypted = 0;
|
||||||
|
bs->valid_key = 0;
|
||||||
|
bs->sg = 0;
|
||||||
|
bs->growable = 0;
|
||||||
|
|
||||||
if (bs->file != NULL) {
|
if (bs->file != NULL) {
|
||||||
bdrv_close(bs->file);
|
bdrv_delete(bs->file);
|
||||||
|
bs->file = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bdrv_dev_change_media_cb(bs, false);
|
bdrv_dev_change_media_cb(bs, false);
|
||||||
@ -906,12 +909,31 @@ void bdrv_close_all(void)
|
|||||||
*
|
*
|
||||||
* This function does not flush data to disk, use bdrv_flush_all() for that
|
* This function does not flush data to disk, use bdrv_flush_all() for that
|
||||||
* after calling this function.
|
* after calling this function.
|
||||||
|
*
|
||||||
|
* Note that completion of an asynchronous I/O operation can trigger any
|
||||||
|
* number of other I/O operations on other devices---for example a coroutine
|
||||||
|
* can be arbitrarily complex and a constant flow of I/O can come until the
|
||||||
|
* coroutine is complete. Because of this, it is not possible to have a
|
||||||
|
* function to drain a single device's I/O queue.
|
||||||
*/
|
*/
|
||||||
void bdrv_drain_all(void)
|
void bdrv_drain_all(void)
|
||||||
{
|
{
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
|
bool busy;
|
||||||
|
|
||||||
qemu_aio_flush();
|
do {
|
||||||
|
busy = qemu_aio_wait();
|
||||||
|
|
||||||
|
/* FIXME: We do not have timer support here, so this is effectively
|
||||||
|
* a busy wait.
|
||||||
|
*/
|
||||||
|
QTAILQ_FOREACH(bs, &bdrv_states, list) {
|
||||||
|
if (!qemu_co_queue_empty(&bs->throttled_reqs)) {
|
||||||
|
qemu_co_queue_restart_all(&bs->throttled_reqs);
|
||||||
|
busy = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (busy);
|
||||||
|
|
||||||
/* If requests are still pending there is a bug somewhere */
|
/* If requests are still pending there is a bug somewhere */
|
||||||
QTAILQ_FOREACH(bs, &bdrv_states, list) {
|
QTAILQ_FOREACH(bs, &bdrv_states, list) {
|
||||||
@ -930,6 +952,13 @@ void bdrv_make_anon(BlockDriverState *bs)
|
|||||||
bs->device_name[0] = '\0';
|
bs->device_name[0] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void bdrv_rebind(BlockDriverState *bs)
|
||||||
|
{
|
||||||
|
if (bs->drv && bs->drv->bdrv_rebind) {
|
||||||
|
bs->drv->bdrv_rebind(bs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add new bs contents at the top of an image chain while the chain is
|
* Add new bs contents at the top of an image chain while the chain is
|
||||||
* live, while keeping required fields on the top layer.
|
* live, while keeping required fields on the top layer.
|
||||||
@ -951,6 +980,7 @@ void bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top)
|
|||||||
tmp = *bs_new;
|
tmp = *bs_new;
|
||||||
|
|
||||||
/* there are some fields that need to stay on the top layer: */
|
/* there are some fields that need to stay on the top layer: */
|
||||||
|
tmp.open_flags = bs_top->open_flags;
|
||||||
|
|
||||||
/* dev info */
|
/* dev info */
|
||||||
tmp.dev_ops = bs_top->dev_ops;
|
tmp.dev_ops = bs_top->dev_ops;
|
||||||
@ -1018,6 +1048,9 @@ void bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top)
|
|||||||
bs_new->slice_time = 0;
|
bs_new->slice_time = 0;
|
||||||
bs_new->slice_start = 0;
|
bs_new->slice_start = 0;
|
||||||
bs_new->slice_end = 0;
|
bs_new->slice_end = 0;
|
||||||
|
|
||||||
|
bdrv_rebind(bs_new);
|
||||||
|
bdrv_rebind(bs_top);
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdrv_delete(BlockDriverState *bs)
|
void bdrv_delete(BlockDriverState *bs)
|
||||||
@ -1030,9 +1063,6 @@ void bdrv_delete(BlockDriverState *bs)
|
|||||||
bdrv_make_anon(bs);
|
bdrv_make_anon(bs);
|
||||||
|
|
||||||
bdrv_close(bs);
|
bdrv_close(bs);
|
||||||
if (bs->file != NULL) {
|
|
||||||
bdrv_delete(bs->file);
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(bs != bs_snapshots);
|
assert(bs != bs_snapshots);
|
||||||
g_free(bs);
|
g_free(bs);
|
||||||
@ -1440,12 +1470,24 @@ int bdrv_change_backing_file(BlockDriverState *bs,
|
|||||||
const char *backing_file, const char *backing_fmt)
|
const char *backing_file, const char *backing_fmt)
|
||||||
{
|
{
|
||||||
BlockDriver *drv = bs->drv;
|
BlockDriver *drv = bs->drv;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/* Backing file format doesn't make sense without a backing file */
|
||||||
|
if (backing_fmt && !backing_file) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
if (drv->bdrv_change_backing_file != NULL) {
|
if (drv->bdrv_change_backing_file != NULL) {
|
||||||
return drv->bdrv_change_backing_file(bs, backing_file, backing_fmt);
|
ret = drv->bdrv_change_backing_file(bs, backing_file, backing_fmt);
|
||||||
} else {
|
} else {
|
||||||
return -ENOTSUP;
|
ret = -ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ret == 0) {
|
||||||
|
pstrcpy(bs->backing_file, sizeof(bs->backing_file), backing_file ?: "");
|
||||||
|
pstrcpy(bs->backing_format, sizeof(bs->backing_format), backing_fmt ?: "");
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bdrv_check_byte_request(BlockDriverState *bs, int64_t offset,
|
static int bdrv_check_byte_request(BlockDriverState *bs, int64_t offset,
|
||||||
@ -1553,6 +1595,8 @@ int bdrv_read(BlockDriverState *bs, int64_t sector_num,
|
|||||||
return bdrv_rw_co(bs, sector_num, buf, nb_sectors, false);
|
return bdrv_rw_co(bs, sector_num, buf, nb_sectors, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define BITS_PER_LONG (sizeof(unsigned long) * 8)
|
||||||
|
|
||||||
static void set_dirty_bitmap(BlockDriverState *bs, int64_t sector_num,
|
static void set_dirty_bitmap(BlockDriverState *bs, int64_t sector_num,
|
||||||
int nb_sectors, int dirty)
|
int nb_sectors, int dirty)
|
||||||
{
|
{
|
||||||
@ -1563,8 +1607,8 @@ static void set_dirty_bitmap(BlockDriverState *bs, int64_t sector_num,
|
|||||||
end = (sector_num + nb_sectors - 1) / BDRV_SECTORS_PER_DIRTY_CHUNK;
|
end = (sector_num + nb_sectors - 1) / BDRV_SECTORS_PER_DIRTY_CHUNK;
|
||||||
|
|
||||||
for (; start <= end; start++) {
|
for (; start <= end; start++) {
|
||||||
idx = start / (sizeof(unsigned long) * 8);
|
idx = start / BITS_PER_LONG;
|
||||||
bit = start % (sizeof(unsigned long) * 8);
|
bit = start % BITS_PER_LONG;
|
||||||
val = bs->dirty_bitmap[idx];
|
val = bs->dirty_bitmap[idx];
|
||||||
if (dirty) {
|
if (dirty) {
|
||||||
if (!(val & (1UL << bit))) {
|
if (!(val & (1UL << bit))) {
|
||||||
@ -3869,10 +3913,10 @@ void bdrv_set_dirty_tracking(BlockDriverState *bs, int enable)
|
|||||||
if (enable) {
|
if (enable) {
|
||||||
if (!bs->dirty_bitmap) {
|
if (!bs->dirty_bitmap) {
|
||||||
bitmap_size = (bdrv_getlength(bs) >> BDRV_SECTOR_BITS) +
|
bitmap_size = (bdrv_getlength(bs) >> BDRV_SECTOR_BITS) +
|
||||||
BDRV_SECTORS_PER_DIRTY_CHUNK * 8 - 1;
|
BDRV_SECTORS_PER_DIRTY_CHUNK * BITS_PER_LONG - 1;
|
||||||
bitmap_size /= BDRV_SECTORS_PER_DIRTY_CHUNK * 8;
|
bitmap_size /= BDRV_SECTORS_PER_DIRTY_CHUNK * BITS_PER_LONG;
|
||||||
|
|
||||||
bs->dirty_bitmap = g_malloc0(bitmap_size);
|
bs->dirty_bitmap = g_new0(unsigned long, bitmap_size);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (bs->dirty_bitmap) {
|
if (bs->dirty_bitmap) {
|
||||||
@ -4072,10 +4116,15 @@ int bdrv_img_create(const char *filename, const char *fmt,
|
|||||||
if (backing_file && backing_file->value.s) {
|
if (backing_file && backing_file->value.s) {
|
||||||
uint64_t size;
|
uint64_t size;
|
||||||
char buf[32];
|
char buf[32];
|
||||||
|
int back_flags;
|
||||||
|
|
||||||
|
/* backing files always opened read-only */
|
||||||
|
back_flags =
|
||||||
|
flags & ~(BDRV_O_RDWR | BDRV_O_SNAPSHOT | BDRV_O_NO_BACKING);
|
||||||
|
|
||||||
bs = bdrv_new("");
|
bs = bdrv_new("");
|
||||||
|
|
||||||
ret = bdrv_open(bs, backing_file->value.s, flags, backing_drv);
|
ret = bdrv_open(bs, backing_file->value.s, back_flags, backing_drv);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
error_report("Could not open '%s'", backing_file->value.s);
|
error_report("Could not open '%s'", backing_file->value.s);
|
||||||
goto out;
|
goto out;
|
||||||
@ -4139,6 +4188,7 @@ void *block_job_create(const BlockJobType *job_type, BlockDriverState *bs,
|
|||||||
job->bs = bs;
|
job->bs = bs;
|
||||||
job->cb = cb;
|
job->cb = cb;
|
||||||
job->opaque = opaque;
|
job->opaque = opaque;
|
||||||
|
job->busy = true;
|
||||||
bs->job = job;
|
bs->job = job;
|
||||||
|
|
||||||
/* Only set speed when necessary to avoid NotSupported error */
|
/* Only set speed when necessary to avoid NotSupported error */
|
||||||
@ -4188,6 +4238,9 @@ void block_job_set_speed(BlockJob *job, int64_t speed, Error **errp)
|
|||||||
void block_job_cancel(BlockJob *job)
|
void block_job_cancel(BlockJob *job)
|
||||||
{
|
{
|
||||||
job->cancelled = true;
|
job->cancelled = true;
|
||||||
|
if (job->co && !job->busy) {
|
||||||
|
qemu_coroutine_enter(job->co, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool block_job_is_cancelled(BlockJob *job)
|
bool block_job_is_cancelled(BlockJob *job)
|
||||||
@ -4195,13 +4248,52 @@ bool block_job_is_cancelled(BlockJob *job)
|
|||||||
return job->cancelled;
|
return job->cancelled;
|
||||||
}
|
}
|
||||||
|
|
||||||
void block_job_cancel_sync(BlockJob *job)
|
struct BlockCancelData {
|
||||||
|
BlockJob *job;
|
||||||
|
BlockDriverCompletionFunc *cb;
|
||||||
|
void *opaque;
|
||||||
|
bool cancelled;
|
||||||
|
int ret;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void block_job_cancel_cb(void *opaque, int ret)
|
||||||
{
|
{
|
||||||
|
struct BlockCancelData *data = opaque;
|
||||||
|
|
||||||
|
data->cancelled = block_job_is_cancelled(data->job);
|
||||||
|
data->ret = ret;
|
||||||
|
data->cb(data->opaque, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
int block_job_cancel_sync(BlockJob *job)
|
||||||
|
{
|
||||||
|
struct BlockCancelData data;
|
||||||
BlockDriverState *bs = job->bs;
|
BlockDriverState *bs = job->bs;
|
||||||
|
|
||||||
assert(bs->job == job);
|
assert(bs->job == job);
|
||||||
|
|
||||||
|
/* Set up our own callback to store the result and chain to
|
||||||
|
* the original callback.
|
||||||
|
*/
|
||||||
|
data.job = job;
|
||||||
|
data.cb = job->cb;
|
||||||
|
data.opaque = job->opaque;
|
||||||
|
data.ret = -EINPROGRESS;
|
||||||
|
job->cb = block_job_cancel_cb;
|
||||||
|
job->opaque = &data;
|
||||||
block_job_cancel(job);
|
block_job_cancel(job);
|
||||||
while (bs->job != NULL && bs->job->busy) {
|
while (data.ret == -EINPROGRESS) {
|
||||||
qemu_aio_wait();
|
qemu_aio_wait();
|
||||||
}
|
}
|
||||||
|
return (data.cancelled && data.ret == 0) ? -ECANCELED : data.ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void block_job_sleep_ns(BlockJob *job, QEMUClock *clock, int64_t ns)
|
||||||
|
{
|
||||||
|
/* Check cancellation *before* setting busy = false, too! */
|
||||||
|
if (!block_job_is_cancelled(job)) {
|
||||||
|
job->busy = false;
|
||||||
|
co_sleep_ns(clock, ns);
|
||||||
|
job->busy = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
2
block.h
2
block.h
@ -303,6 +303,8 @@ int bdrv_get_info(BlockDriverState *bs, BlockDriverInfo *bdi);
|
|||||||
const char *bdrv_get_encrypted_filename(BlockDriverState *bs);
|
const char *bdrv_get_encrypted_filename(BlockDriverState *bs);
|
||||||
void bdrv_get_backing_filename(BlockDriverState *bs,
|
void bdrv_get_backing_filename(BlockDriverState *bs,
|
||||||
char *filename, int filename_size);
|
char *filename, int filename_size);
|
||||||
|
void bdrv_get_full_backing_filename(BlockDriverState *bs,
|
||||||
|
char *dest, size_t sz);
|
||||||
int bdrv_can_snapshot(BlockDriverState *bs);
|
int bdrv_can_snapshot(BlockDriverState *bs);
|
||||||
int bdrv_is_snapshot(BlockDriverState *bs);
|
int bdrv_is_snapshot(BlockDriverState *bs);
|
||||||
BlockDriverState *bdrv_snapshots(void);
|
BlockDriverState *bdrv_snapshots(void);
|
||||||
|
@ -1011,11 +1011,6 @@ fail:
|
|||||||
static int qcow2_change_backing_file(BlockDriverState *bs,
|
static int qcow2_change_backing_file(BlockDriverState *bs,
|
||||||
const char *backing_file, const char *backing_fmt)
|
const char *backing_file, const char *backing_fmt)
|
||||||
{
|
{
|
||||||
/* Backing file format doesn't make sense without a backing file */
|
|
||||||
if (backing_fmt && !backing_file) {
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
pstrcpy(bs->backing_file, sizeof(bs->backing_file), backing_file ?: "");
|
pstrcpy(bs->backing_file, sizeof(bs->backing_file), backing_file ?: "");
|
||||||
pstrcpy(bs->backing_format, sizeof(bs->backing_format), backing_fmt ?: "");
|
pstrcpy(bs->backing_format, sizeof(bs->backing_format), backing_fmt ?: "");
|
||||||
|
|
||||||
|
@ -367,6 +367,12 @@ static void qed_cancel_need_check_timer(BDRVQEDState *s)
|
|||||||
qemu_del_timer(s->need_check_timer);
|
qemu_del_timer(s->need_check_timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void bdrv_qed_rebind(BlockDriverState *bs)
|
||||||
|
{
|
||||||
|
BDRVQEDState *s = bs->opaque;
|
||||||
|
s->bs = bs;
|
||||||
|
}
|
||||||
|
|
||||||
static int bdrv_qed_open(BlockDriverState *bs, int flags)
|
static int bdrv_qed_open(BlockDriverState *bs, int flags)
|
||||||
{
|
{
|
||||||
BDRVQEDState *s = bs->opaque;
|
BDRVQEDState *s = bs->opaque;
|
||||||
@ -1550,6 +1556,7 @@ static BlockDriver bdrv_qed = {
|
|||||||
.create_options = qed_create_options,
|
.create_options = qed_create_options,
|
||||||
|
|
||||||
.bdrv_probe = bdrv_qed_probe,
|
.bdrv_probe = bdrv_qed_probe,
|
||||||
|
.bdrv_rebind = bdrv_qed_rebind,
|
||||||
.bdrv_open = bdrv_qed_open,
|
.bdrv_open = bdrv_qed_open,
|
||||||
.bdrv_close = bdrv_qed_close,
|
.bdrv_close = bdrv_qed_close,
|
||||||
.bdrv_create = bdrv_qed_create,
|
.bdrv_create = bdrv_qed_create,
|
||||||
|
@ -33,19 +33,19 @@ typedef struct {
|
|||||||
|
|
||||||
static int64_t ratelimit_calculate_delay(RateLimit *limit, uint64_t n)
|
static int64_t ratelimit_calculate_delay(RateLimit *limit, uint64_t n)
|
||||||
{
|
{
|
||||||
int64_t delay_ns = 0;
|
|
||||||
int64_t now = qemu_get_clock_ns(rt_clock);
|
int64_t now = qemu_get_clock_ns(rt_clock);
|
||||||
|
|
||||||
if (limit->next_slice_time < now) {
|
if (limit->next_slice_time < now) {
|
||||||
limit->next_slice_time = now + SLICE_TIME;
|
limit->next_slice_time = now + SLICE_TIME;
|
||||||
limit->dispatched = 0;
|
limit->dispatched = 0;
|
||||||
}
|
}
|
||||||
if (limit->dispatched + n > limit->slice_quota) {
|
if (limit->dispatched == 0 || limit->dispatched + n <= limit->slice_quota) {
|
||||||
delay_ns = limit->next_slice_time - now;
|
|
||||||
} else {
|
|
||||||
limit->dispatched += n;
|
limit->dispatched += n;
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
limit->dispatched = n;
|
||||||
|
return limit->next_slice_time - now;
|
||||||
}
|
}
|
||||||
return delay_ns;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ratelimit_set_speed(RateLimit *limit, uint64_t speed)
|
static void ratelimit_set_speed(RateLimit *limit, uint64_t speed)
|
||||||
@ -96,17 +96,6 @@ static void close_unused_images(BlockDriverState *top, BlockDriverState *base,
|
|||||||
bdrv_delete(unused);
|
bdrv_delete(unused);
|
||||||
}
|
}
|
||||||
top->backing_hd = base;
|
top->backing_hd = base;
|
||||||
|
|
||||||
pstrcpy(top->backing_file, sizeof(top->backing_file), "");
|
|
||||||
pstrcpy(top->backing_format, sizeof(top->backing_format), "");
|
|
||||||
if (base_id) {
|
|
||||||
pstrcpy(top->backing_file, sizeof(top->backing_file), base_id);
|
|
||||||
if (base->drv) {
|
|
||||||
pstrcpy(top->backing_format, sizeof(top->backing_format),
|
|
||||||
base->drv->format_name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -141,14 +130,9 @@ static int coroutine_fn is_allocated_base(BlockDriverState *top,
|
|||||||
*/
|
*/
|
||||||
intermediate = top->backing_hd;
|
intermediate = top->backing_hd;
|
||||||
|
|
||||||
while (intermediate) {
|
while (intermediate != base) {
|
||||||
int pnum_inter;
|
int pnum_inter;
|
||||||
|
|
||||||
/* reached base */
|
|
||||||
if (intermediate == base) {
|
|
||||||
*pnum = n;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
ret = bdrv_co_is_allocated(intermediate, sector_num, nb_sectors,
|
ret = bdrv_co_is_allocated(intermediate, sector_num, nb_sectors,
|
||||||
&pnum_inter);
|
&pnum_inter);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@ -171,6 +155,7 @@ static int coroutine_fn is_allocated_base(BlockDriverState *top,
|
|||||||
intermediate = intermediate->backing_hd;
|
intermediate = intermediate->backing_hd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*pnum = n;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,30 +188,25 @@ static void coroutine_fn stream_run(void *opaque)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (sector_num = 0; sector_num < end; sector_num += n) {
|
for (sector_num = 0; sector_num < end; sector_num += n) {
|
||||||
retry:
|
uint64_t delay_ns = 0;
|
||||||
|
|
||||||
|
wait:
|
||||||
|
/* Note that even when no rate limit is applied we need to yield
|
||||||
|
* with no pending I/O here so that qemu_aio_flush() returns.
|
||||||
|
*/
|
||||||
|
block_job_sleep_ns(&s->common, rt_clock, delay_ns);
|
||||||
if (block_job_is_cancelled(&s->common)) {
|
if (block_job_is_cancelled(&s->common)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
s->common.busy = true;
|
ret = is_allocated_base(bs, base, sector_num,
|
||||||
if (base) {
|
STREAM_BUFFER_SIZE / BDRV_SECTOR_SIZE, &n);
|
||||||
ret = is_allocated_base(bs, base, sector_num,
|
|
||||||
STREAM_BUFFER_SIZE / BDRV_SECTOR_SIZE, &n);
|
|
||||||
} else {
|
|
||||||
ret = bdrv_co_is_allocated(bs, sector_num,
|
|
||||||
STREAM_BUFFER_SIZE / BDRV_SECTOR_SIZE,
|
|
||||||
&n);
|
|
||||||
}
|
|
||||||
trace_stream_one_iteration(s, sector_num, n, ret);
|
trace_stream_one_iteration(s, sector_num, n, ret);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
if (s->common.speed) {
|
if (s->common.speed) {
|
||||||
uint64_t delay_ns = ratelimit_calculate_delay(&s->limit, n);
|
delay_ns = ratelimit_calculate_delay(&s->limit, n);
|
||||||
if (delay_ns > 0) {
|
if (delay_ns > 0) {
|
||||||
s->common.busy = false;
|
goto wait;
|
||||||
co_sleep_ns(rt_clock, delay_ns);
|
|
||||||
|
|
||||||
/* Recheck cancellation and that sectors are unallocated */
|
|
||||||
goto retry;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret = stream_populate(bs, sector_num, n, buf);
|
ret = stream_populate(bs, sector_num, n, buf);
|
||||||
@ -238,12 +218,6 @@ retry:
|
|||||||
|
|
||||||
/* Publish progress */
|
/* Publish progress */
|
||||||
s->common.offset += n * BDRV_SECTOR_SIZE;
|
s->common.offset += n * BDRV_SECTOR_SIZE;
|
||||||
|
|
||||||
/* Note that even when no rate limit is applied we need to yield
|
|
||||||
* with no pending I/O here so that qemu_aio_flush() returns.
|
|
||||||
*/
|
|
||||||
s->common.busy = false;
|
|
||||||
co_sleep_ns(rt_clock, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!base) {
|
if (!base) {
|
||||||
@ -251,11 +225,14 @@ retry:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!block_job_is_cancelled(&s->common) && sector_num == end && ret == 0) {
|
if (!block_job_is_cancelled(&s->common) && sector_num == end && ret == 0) {
|
||||||
const char *base_id = NULL;
|
const char *base_id = NULL, *base_fmt = NULL;
|
||||||
if (base) {
|
if (base) {
|
||||||
base_id = s->backing_file_id;
|
base_id = s->backing_file_id;
|
||||||
|
if (base->drv) {
|
||||||
|
base_fmt = base->drv->format_name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ret = bdrv_change_backing_file(bs, base_id, NULL);
|
ret = bdrv_change_backing_file(bs, base_id, base_fmt);
|
||||||
close_unused_images(bs, base, base_id);
|
close_unused_images(bs, base, base_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,7 +263,6 @@ void stream_start(BlockDriverState *bs, BlockDriverState *base,
|
|||||||
void *opaque, Error **errp)
|
void *opaque, Error **errp)
|
||||||
{
|
{
|
||||||
StreamBlockJob *s;
|
StreamBlockJob *s;
|
||||||
Coroutine *co;
|
|
||||||
|
|
||||||
s = block_job_create(&stream_job_type, bs, speed, cb, opaque, errp);
|
s = block_job_create(&stream_job_type, bs, speed, cb, opaque, errp);
|
||||||
if (!s) {
|
if (!s) {
|
||||||
@ -298,7 +274,7 @@ void stream_start(BlockDriverState *bs, BlockDriverState *base,
|
|||||||
pstrcpy(s->backing_file_id, sizeof(s->backing_file_id), base_id);
|
pstrcpy(s->backing_file_id, sizeof(s->backing_file_id), base_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
co = qemu_coroutine_create(stream_run);
|
s->common.co = qemu_coroutine_create(stream_run);
|
||||||
trace_stream_start(bs, base, s, co, opaque);
|
trace_stream_start(bs, base, s, s->common.co, opaque);
|
||||||
qemu_coroutine_enter(co, s);
|
qemu_coroutine_enter(s->common.co, s);
|
||||||
}
|
}
|
||||||
|
@ -982,6 +982,12 @@ static BDRVVVFATState *vvv = NULL;
|
|||||||
static int enable_write_target(BDRVVVFATState *s);
|
static int enable_write_target(BDRVVVFATState *s);
|
||||||
static int is_consistent(BDRVVVFATState *s);
|
static int is_consistent(BDRVVVFATState *s);
|
||||||
|
|
||||||
|
static void vvfat_rebind(BlockDriverState *bs)
|
||||||
|
{
|
||||||
|
BDRVVVFATState *s = bs->opaque;
|
||||||
|
s->bs = bs;
|
||||||
|
}
|
||||||
|
|
||||||
static int vvfat_open(BlockDriverState *bs, const char* dirname, int flags)
|
static int vvfat_open(BlockDriverState *bs, const char* dirname, int flags)
|
||||||
{
|
{
|
||||||
BDRVVVFATState *s = bs->opaque;
|
BDRVVVFATState *s = bs->opaque;
|
||||||
@ -2855,6 +2861,7 @@ static BlockDriver bdrv_vvfat = {
|
|||||||
.format_name = "vvfat",
|
.format_name = "vvfat",
|
||||||
.instance_size = sizeof(BDRVVVFATState),
|
.instance_size = sizeof(BDRVVVFATState),
|
||||||
.bdrv_file_open = vvfat_open,
|
.bdrv_file_open = vvfat_open,
|
||||||
|
.bdrv_rebind = vvfat_rebind,
|
||||||
.bdrv_read = vvfat_co_read,
|
.bdrv_read = vvfat_co_read,
|
||||||
.bdrv_write = vvfat_co_write,
|
.bdrv_write = vvfat_co_write,
|
||||||
.bdrv_close = vvfat_close,
|
.bdrv_close = vvfat_close,
|
||||||
|
34
block_int.h
34
block_int.h
@ -94,21 +94,24 @@ struct BlockJob {
|
|||||||
/** The block device on which the job is operating. */
|
/** The block device on which the job is operating. */
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The coroutine that executes the job. If not NULL, it is
|
||||||
|
* reentered when busy is false and the job is cancelled.
|
||||||
|
*/
|
||||||
|
Coroutine *co;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set to true if the job should cancel itself. The flag must
|
* Set to true if the job should cancel itself. The flag must
|
||||||
* always be tested just before toggling the busy flag from false
|
* always be tested just before toggling the busy flag from false
|
||||||
* to true. After a job has detected that the cancelled flag is
|
* to true. After a job has been cancelled, it should only yield
|
||||||
* true, it should not anymore issue any I/O operation to the
|
* if #qemu_aio_wait will ("sooner or later") reenter the coroutine.
|
||||||
* block device.
|
|
||||||
*/
|
*/
|
||||||
bool cancelled;
|
bool cancelled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set to false by the job while it is in a quiescent state, where
|
* Set to false by the job while it is in a quiescent state, where
|
||||||
* no I/O is pending and cancellation can be processed without
|
* no I/O is pending and the job has yielded on any condition
|
||||||
* issuing new I/O. The busy flag must be set to false when the
|
* that is not detected by #qemu_aio_wait, such as a timer.
|
||||||
* job goes to sleep on any condition that is not detected by
|
|
||||||
* #qemu_aio_wait, such as a timer.
|
|
||||||
*/
|
*/
|
||||||
bool busy;
|
bool busy;
|
||||||
|
|
||||||
@ -140,6 +143,7 @@ struct BlockDriver {
|
|||||||
int (*bdrv_write)(BlockDriverState *bs, int64_t sector_num,
|
int (*bdrv_write)(BlockDriverState *bs, int64_t sector_num,
|
||||||
const uint8_t *buf, int nb_sectors);
|
const uint8_t *buf, int nb_sectors);
|
||||||
void (*bdrv_close)(BlockDriverState *bs);
|
void (*bdrv_close)(BlockDriverState *bs);
|
||||||
|
void (*bdrv_rebind)(BlockDriverState *bs);
|
||||||
int (*bdrv_create)(const char *filename, QEMUOptionParameter *options);
|
int (*bdrv_create)(const char *filename, QEMUOptionParameter *options);
|
||||||
int (*bdrv_set_key)(BlockDriverState *bs, const char *key);
|
int (*bdrv_set_key)(BlockDriverState *bs, const char *key);
|
||||||
int (*bdrv_make_empty)(BlockDriverState *bs);
|
int (*bdrv_make_empty)(BlockDriverState *bs);
|
||||||
@ -362,6 +366,17 @@ void *block_job_create(const BlockJobType *job_type, BlockDriverState *bs,
|
|||||||
int64_t speed, BlockDriverCompletionFunc *cb,
|
int64_t speed, BlockDriverCompletionFunc *cb,
|
||||||
void *opaque, Error **errp);
|
void *opaque, Error **errp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* block_job_sleep_ns:
|
||||||
|
* @job: The job that calls the function.
|
||||||
|
* @clock: The clock to sleep on.
|
||||||
|
* @ns: How many nanoseconds to stop for.
|
||||||
|
*
|
||||||
|
* Put the job to sleep (assuming that it wasn't canceled) for @ns
|
||||||
|
* nanoseconds. Canceling the job will interrupt the wait immediately.
|
||||||
|
*/
|
||||||
|
void block_job_sleep_ns(BlockJob *job, QEMUClock *clock, int64_t ns);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* block_job_complete:
|
* block_job_complete:
|
||||||
* @job: The job being completed.
|
* @job: The job being completed.
|
||||||
@ -409,8 +424,11 @@ bool block_job_is_cancelled(BlockJob *job);
|
|||||||
* immediately after #block_job_cancel_sync. Users of block jobs
|
* immediately after #block_job_cancel_sync. Users of block jobs
|
||||||
* will usually protect the BlockDriverState objects with a reference
|
* will usually protect the BlockDriverState objects with a reference
|
||||||
* count, should this be a concern.
|
* count, should this be a concern.
|
||||||
|
*
|
||||||
|
* Returns the return value from the job if the job actually completed
|
||||||
|
* during the call, or -ECANCELED if it was canceled.
|
||||||
*/
|
*/
|
||||||
void block_job_cancel_sync(BlockJob *job);
|
int block_job_cancel_sync(BlockJob *job);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* stream_start:
|
* stream_start:
|
||||||
|
@ -756,14 +756,17 @@ void qmp_transaction(BlockdevActionList *dev_list, Error **errp)
|
|||||||
goto delete_and_fail;
|
goto delete_and_fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!bdrv_is_inserted(states->old_bs)) {
|
||||||
|
error_set(errp, QERR_DEVICE_HAS_NO_MEDIUM, device);
|
||||||
|
goto delete_and_fail;
|
||||||
|
}
|
||||||
|
|
||||||
if (bdrv_in_use(states->old_bs)) {
|
if (bdrv_in_use(states->old_bs)) {
|
||||||
error_set(errp, QERR_DEVICE_IN_USE, device);
|
error_set(errp, QERR_DEVICE_IN_USE, device);
|
||||||
goto delete_and_fail;
|
goto delete_and_fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bdrv_is_read_only(states->old_bs) &&
|
if (!bdrv_is_read_only(states->old_bs)) {
|
||||||
bdrv_is_inserted(states->old_bs)) {
|
|
||||||
|
|
||||||
if (bdrv_flush(states->old_bs)) {
|
if (bdrv_flush(states->old_bs)) {
|
||||||
error_set(errp, QERR_IO_ERROR);
|
error_set(errp, QERR_IO_ERROR);
|
||||||
goto delete_and_fail;
|
goto delete_and_fail;
|
||||||
|
40
cmd.c
40
cmd.c
@ -418,31 +418,37 @@ cvtstr(
|
|||||||
char *str,
|
char *str,
|
||||||
size_t size)
|
size_t size)
|
||||||
{
|
{
|
||||||
const char *fmt;
|
char *trim;
|
||||||
int precise;
|
const char *suffix;
|
||||||
|
|
||||||
precise = ((double)value * 1000 == (double)(int)value * 1000);
|
|
||||||
|
|
||||||
if (value >= EXABYTES(1)) {
|
if (value >= EXABYTES(1)) {
|
||||||
fmt = precise ? "%.f EiB" : "%.3f EiB";
|
suffix = " EiB";
|
||||||
snprintf(str, size, fmt, TO_EXABYTES(value));
|
snprintf(str, size - 4, "%.3f", TO_EXABYTES(value));
|
||||||
} else if (value >= PETABYTES(1)) {
|
} else if (value >= PETABYTES(1)) {
|
||||||
fmt = precise ? "%.f PiB" : "%.3f PiB";
|
suffix = " PiB";
|
||||||
snprintf(str, size, fmt, TO_PETABYTES(value));
|
snprintf(str, size - 4, "%.3f", TO_PETABYTES(value));
|
||||||
} else if (value >= TERABYTES(1)) {
|
} else if (value >= TERABYTES(1)) {
|
||||||
fmt = precise ? "%.f TiB" : "%.3f TiB";
|
suffix = " TiB";
|
||||||
snprintf(str, size, fmt, TO_TERABYTES(value));
|
snprintf(str, size - 4, "%.3f", TO_TERABYTES(value));
|
||||||
} else if (value >= GIGABYTES(1)) {
|
} else if (value >= GIGABYTES(1)) {
|
||||||
fmt = precise ? "%.f GiB" : "%.3f GiB";
|
suffix = " GiB";
|
||||||
snprintf(str, size, fmt, TO_GIGABYTES(value));
|
snprintf(str, size - 4, "%.3f", TO_GIGABYTES(value));
|
||||||
} else if (value >= MEGABYTES(1)) {
|
} else if (value >= MEGABYTES(1)) {
|
||||||
fmt = precise ? "%.f MiB" : "%.3f MiB";
|
suffix = " MiB";
|
||||||
snprintf(str, size, fmt, TO_MEGABYTES(value));
|
snprintf(str, size - 4, "%.3f", TO_MEGABYTES(value));
|
||||||
} else if (value >= KILOBYTES(1)) {
|
} else if (value >= KILOBYTES(1)) {
|
||||||
fmt = precise ? "%.f KiB" : "%.3f KiB";
|
suffix = " KiB";
|
||||||
snprintf(str, size, fmt, TO_KILOBYTES(value));
|
snprintf(str, size - 4, "%.3f", TO_KILOBYTES(value));
|
||||||
} else {
|
} else {
|
||||||
snprintf(str, size, "%f bytes", value);
|
suffix = " bytes";
|
||||||
|
snprintf(str, size - 6, "%f", value);
|
||||||
|
}
|
||||||
|
|
||||||
|
trim = strstr(str, ".000");
|
||||||
|
if (trim) {
|
||||||
|
strcpy(trim, suffix);
|
||||||
|
} else {
|
||||||
|
strcat(str, suffix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
hmp.c
2
hmp.c
@ -849,7 +849,7 @@ void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict)
|
|||||||
{
|
{
|
||||||
Error *error = NULL;
|
Error *error = NULL;
|
||||||
const char *device = qdict_get_str(qdict, "device");
|
const char *device = qdict_get_str(qdict, "device");
|
||||||
int64_t value = qdict_get_int(qdict, "value");
|
int64_t value = qdict_get_int(qdict, "speed");
|
||||||
|
|
||||||
qmp_block_job_set_speed(device, value, &error);
|
qmp_block_job_set_speed(device, value, &error);
|
||||||
|
|
||||||
|
@ -61,6 +61,9 @@ typedef struct Monitor Monitor;
|
|||||||
#if !defined(ENOTSUP)
|
#if !defined(ENOTSUP)
|
||||||
#define ENOTSUP 4096
|
#define ENOTSUP 4096
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(ECANCELED)
|
||||||
|
#define ECANCELED 4097
|
||||||
|
#endif
|
||||||
#ifndef TIME_MAX
|
#ifndef TIME_MAX
|
||||||
#define TIME_MAX LONG_MAX
|
#define TIME_MAX LONG_MAX
|
||||||
#endif
|
#endif
|
||||||
|
12
qemu-img.c
12
qemu-img.c
@ -1138,11 +1138,13 @@ static int img_info(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
bdrv_get_backing_filename(bs, backing_filename, sizeof(backing_filename));
|
bdrv_get_backing_filename(bs, backing_filename, sizeof(backing_filename));
|
||||||
if (backing_filename[0] != '\0') {
|
if (backing_filename[0] != '\0') {
|
||||||
path_combine(backing_filename2, sizeof(backing_filename2),
|
bdrv_get_full_backing_filename(bs, backing_filename2,
|
||||||
filename, backing_filename);
|
sizeof(backing_filename2));
|
||||||
printf("backing file: %s (actual path: %s)\n",
|
printf("backing file: %s", backing_filename);
|
||||||
backing_filename,
|
if (strcmp(backing_filename, backing_filename2) != 0) {
|
||||||
backing_filename2);
|
printf(" (actual path: %s)", backing_filename2);
|
||||||
|
}
|
||||||
|
putchar('\n');
|
||||||
}
|
}
|
||||||
dump_snapshots(bs);
|
dump_snapshots(bs);
|
||||||
bdrv_delete(bs);
|
bdrv_delete(bs);
|
||||||
|
10
qemu-io.c
10
qemu-io.c
@ -1560,7 +1560,7 @@ out:
|
|||||||
|
|
||||||
static int alloc_f(int argc, char **argv)
|
static int alloc_f(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int64_t offset;
|
int64_t offset, sector_num;
|
||||||
int nb_sectors, remaining;
|
int nb_sectors, remaining;
|
||||||
char s1[64];
|
char s1[64];
|
||||||
int num, sum_alloc;
|
int num, sum_alloc;
|
||||||
@ -1581,12 +1581,18 @@ static int alloc_f(int argc, char **argv)
|
|||||||
|
|
||||||
remaining = nb_sectors;
|
remaining = nb_sectors;
|
||||||
sum_alloc = 0;
|
sum_alloc = 0;
|
||||||
|
sector_num = offset >> 9;
|
||||||
while (remaining) {
|
while (remaining) {
|
||||||
ret = bdrv_is_allocated(bs, offset >> 9, nb_sectors, &num);
|
ret = bdrv_is_allocated(bs, sector_num, remaining, &num);
|
||||||
|
sector_num += num;
|
||||||
remaining -= num;
|
remaining -= num;
|
||||||
if (ret) {
|
if (ret) {
|
||||||
sum_alloc += num;
|
sum_alloc += num;
|
||||||
}
|
}
|
||||||
|
if (num == 0) {
|
||||||
|
nb_sectors -= remaining;
|
||||||
|
remaining = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cvtstr(offset, s1, sizeof(s1));
|
cvtstr(offset, s1, sizeof(s1));
|
||||||
|
@ -759,7 +759,7 @@ EQMP
|
|||||||
|
|
||||||
{
|
{
|
||||||
.name = "blockdev-snapshot-sync",
|
.name = "blockdev-snapshot-sync",
|
||||||
.args_type = "device:B,snapshot-file:s,format:s?",
|
.args_type = "device:B,snapshot-file:s,format:s?,mode:s?",
|
||||||
.mhandler.cmd_new = qmp_marshal_input_blockdev_snapshot_sync,
|
.mhandler.cmd_new = qmp_marshal_input_blockdev_snapshot_sync,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -18,7 +18,8 @@ check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
|
|||||||
|
|
||||||
# All QTests for now are POSIX-only, but the dependencies are
|
# All QTests for now are POSIX-only, but the dependencies are
|
||||||
# really in libqtest, not in the testcases themselves.
|
# really in libqtest, not in the testcases themselves.
|
||||||
check-qtest-i386-y = tests/rtc-test
|
check-qtest-i386-y = tests/rtc-test$(EXESUF)
|
||||||
|
check-qtest-i386-y = tests/fdc-test$(EXESUF)
|
||||||
check-qtest-x86_64-y = $(check-qtest-i386-y)
|
check-qtest-x86_64-y = $(check-qtest-i386-y)
|
||||||
check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
|
check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
|
||||||
check-qtest-sparc64-y = tests/m48t59-test$(EXESUF)
|
check-qtest-sparc64-y = tests/m48t59-test$(EXESUF)
|
||||||
@ -67,6 +68,7 @@ tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marsh
|
|||||||
|
|
||||||
tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y)
|
tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y)
|
||||||
tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y)
|
tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y)
|
||||||
|
tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o
|
||||||
|
|
||||||
# QTest rules
|
# QTest rules
|
||||||
|
|
||||||
|
195
tests/fdc-test.c
Normal file
195
tests/fdc-test.c
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
/*
|
||||||
|
* Floppy test cases.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2012 Kevin Wolf <kwolf@redhat.com>
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
#include "libqtest.h"
|
||||||
|
#include "qemu-common.h"
|
||||||
|
|
||||||
|
#define TEST_IMAGE_SIZE 1440 * 1024
|
||||||
|
|
||||||
|
#define FLOPPY_BASE 0x3f0
|
||||||
|
#define FLOPPY_IRQ 6
|
||||||
|
|
||||||
|
enum {
|
||||||
|
reg_sra = 0x0,
|
||||||
|
reg_srb = 0x1,
|
||||||
|
reg_dor = 0x2,
|
||||||
|
reg_msr = 0x4,
|
||||||
|
reg_dsr = 0x4,
|
||||||
|
reg_fifo = 0x5,
|
||||||
|
reg_dir = 0x7,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
CMD_SENSE_INT = 0x08,
|
||||||
|
CMD_SEEK = 0x0f,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
RQM = 0x80,
|
||||||
|
DIO = 0x40,
|
||||||
|
|
||||||
|
DSKCHG = 0x80,
|
||||||
|
};
|
||||||
|
|
||||||
|
char test_image[] = "/tmp/qtest.XXXXXX";
|
||||||
|
|
||||||
|
#define assert_bit_set(data, mask) g_assert_cmphex((data) & (mask), ==, (mask))
|
||||||
|
#define assert_bit_clear(data, mask) g_assert_cmphex((data) & (mask), ==, 0)
|
||||||
|
|
||||||
|
static void floppy_send(uint8_t byte)
|
||||||
|
{
|
||||||
|
uint8_t msr;
|
||||||
|
|
||||||
|
msr = inb(FLOPPY_BASE + reg_msr);
|
||||||
|
assert_bit_set(msr, RQM);
|
||||||
|
assert_bit_clear(msr, DIO);
|
||||||
|
|
||||||
|
outb(FLOPPY_BASE + reg_fifo, byte);
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint8_t floppy_recv(void)
|
||||||
|
{
|
||||||
|
uint8_t msr;
|
||||||
|
|
||||||
|
msr = inb(FLOPPY_BASE + reg_msr);
|
||||||
|
assert_bit_set(msr, RQM | DIO);
|
||||||
|
|
||||||
|
return inb(FLOPPY_BASE + reg_fifo);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ack_irq(void)
|
||||||
|
{
|
||||||
|
g_assert(get_irq(FLOPPY_IRQ));
|
||||||
|
floppy_send(CMD_SENSE_INT);
|
||||||
|
floppy_recv();
|
||||||
|
floppy_recv();
|
||||||
|
g_assert(!get_irq(FLOPPY_IRQ));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void send_step_pulse(void)
|
||||||
|
{
|
||||||
|
int drive = 0;
|
||||||
|
int head = 0;
|
||||||
|
static int cyl = 0;
|
||||||
|
|
||||||
|
floppy_send(CMD_SEEK);
|
||||||
|
floppy_send(head << 2 | drive);
|
||||||
|
g_assert(!get_irq(FLOPPY_IRQ));
|
||||||
|
floppy_send(cyl);
|
||||||
|
ack_irq();
|
||||||
|
|
||||||
|
cyl = (cyl + 1) % 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_media_change(void)
|
||||||
|
{
|
||||||
|
uint8_t dir;
|
||||||
|
|
||||||
|
/* Media changed bit must be up-to-date after step pulse. Do two SEEKs
|
||||||
|
* because we may already happen to be on the right cylinder initially. */
|
||||||
|
send_step_pulse();
|
||||||
|
send_step_pulse();
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_clear(dir, DSKCHG);
|
||||||
|
|
||||||
|
/* Eject the floppy and check that DSKCHG is set. Reading it out doesn't
|
||||||
|
* reset the bit. */
|
||||||
|
qmp("{'execute':'eject', 'arguments':{ 'device':'floppy0' }}");
|
||||||
|
qmp(""); /* ignore event */
|
||||||
|
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_set(dir, DSKCHG);
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_set(dir, DSKCHG);
|
||||||
|
|
||||||
|
send_step_pulse();
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_set(dir, DSKCHG);
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_set(dir, DSKCHG);
|
||||||
|
|
||||||
|
/* And then insert it again. DSKCHK should not be reset until a step pulse
|
||||||
|
* is sent. */
|
||||||
|
qmp("{'execute':'change', 'arguments':{ 'device':'floppy0', "
|
||||||
|
"'target': '%s' }}", test_image);
|
||||||
|
qmp(""); /* ignore event (FIXME open -> open transition?!) */
|
||||||
|
qmp(""); /* ignore event */
|
||||||
|
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_set(dir, DSKCHG);
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_set(dir, DSKCHG);
|
||||||
|
|
||||||
|
send_step_pulse();
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_clear(dir, DSKCHG);
|
||||||
|
dir = inb(FLOPPY_BASE + reg_dir);
|
||||||
|
assert_bit_clear(dir, DSKCHG);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
const char *arch = qtest_get_arch();
|
||||||
|
char *cmdline;
|
||||||
|
int fd;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/* Check architecture */
|
||||||
|
if (strcmp(arch, "i386") && strcmp(arch, "x86_64")) {
|
||||||
|
g_test_message("Skipping test for non-x86\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create a temporary raw image */
|
||||||
|
fd = mkstemp(test_image);
|
||||||
|
g_assert(fd >= 0);
|
||||||
|
ret = ftruncate(fd, TEST_IMAGE_SIZE);
|
||||||
|
g_assert(ret == 0);
|
||||||
|
close(fd);
|
||||||
|
|
||||||
|
/* Run the tests */
|
||||||
|
g_test_init(&argc, &argv, NULL);
|
||||||
|
|
||||||
|
cmdline = g_strdup_printf("-vnc none "
|
||||||
|
"-drive file=%s,if=floppy,cache=writeback ",
|
||||||
|
test_image);
|
||||||
|
|
||||||
|
qtest_start(cmdline);
|
||||||
|
qtest_irq_intercept_in(global_qtest, "ioapic");
|
||||||
|
qtest_add_func("/fdc/media_change", test_media_change);
|
||||||
|
|
||||||
|
ret = g_test_run();
|
||||||
|
|
||||||
|
/* Cleanup */
|
||||||
|
qtest_quit(global_qtest);
|
||||||
|
unlink(test_image);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
143
tests/libqtest.c
143
tests/libqtest.c
@ -36,6 +36,7 @@ QTestState *global_qtest;
|
|||||||
struct QTestState
|
struct QTestState
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
|
int qmp_fd;
|
||||||
bool irq_level[MAX_IRQ];
|
bool irq_level[MAX_IRQ];
|
||||||
GString *rx;
|
GString *rx;
|
||||||
gchar *pid_file;
|
gchar *pid_file;
|
||||||
@ -45,25 +46,11 @@ struct QTestState
|
|||||||
g_assert_cmpint(ret, !=, -1); \
|
g_assert_cmpint(ret, !=, -1); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
QTestState *qtest_init(const char *extra_args)
|
static int init_socket(const char *socket_path)
|
||||||
{
|
{
|
||||||
QTestState *s;
|
|
||||||
struct sockaddr_un addr;
|
struct sockaddr_un addr;
|
||||||
int sock, ret, i;
|
int sock;
|
||||||
gchar *socket_path;
|
int ret;
|
||||||
gchar *pid_file;
|
|
||||||
gchar *command;
|
|
||||||
const char *qemu_binary;
|
|
||||||
pid_t pid;
|
|
||||||
socklen_t addrlen;
|
|
||||||
|
|
||||||
qemu_binary = getenv("QTEST_QEMU_BINARY");
|
|
||||||
g_assert(qemu_binary != NULL);
|
|
||||||
|
|
||||||
socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
|
|
||||||
pid_file = g_strdup_printf("/tmp/qtest-%d.pid", getpid());
|
|
||||||
|
|
||||||
s = g_malloc(sizeof(*s));
|
|
||||||
|
|
||||||
sock = socket(PF_UNIX, SOCK_STREAM, 0);
|
sock = socket(PF_UNIX, SOCK_STREAM, 0);
|
||||||
g_assert_no_errno(sock);
|
g_assert_no_errno(sock);
|
||||||
@ -78,21 +65,14 @@ QTestState *qtest_init(const char *extra_args)
|
|||||||
g_assert_no_errno(ret);
|
g_assert_no_errno(ret);
|
||||||
listen(sock, 1);
|
listen(sock, 1);
|
||||||
|
|
||||||
pid = fork();
|
return sock;
|
||||||
if (pid == 0) {
|
}
|
||||||
command = g_strdup_printf("%s "
|
|
||||||
"-qtest unix:%s,nowait "
|
|
||||||
"-qtest-log /dev/null "
|
|
||||||
"-pidfile %s "
|
|
||||||
"-machine accel=qtest "
|
|
||||||
"%s", qemu_binary, socket_path,
|
|
||||||
pid_file,
|
|
||||||
extra_args ?: "");
|
|
||||||
|
|
||||||
ret = system(command);
|
static int socket_accept(int sock)
|
||||||
exit(ret);
|
{
|
||||||
g_free(command);
|
struct sockaddr_un addr;
|
||||||
}
|
socklen_t addrlen;
|
||||||
|
int ret;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
|
ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
|
||||||
@ -100,7 +80,52 @@ QTestState *qtest_init(const char *extra_args)
|
|||||||
g_assert_no_errno(ret);
|
g_assert_no_errno(ret);
|
||||||
close(sock);
|
close(sock);
|
||||||
|
|
||||||
s->fd = ret;
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTestState *qtest_init(const char *extra_args)
|
||||||
|
{
|
||||||
|
QTestState *s;
|
||||||
|
int sock, qmpsock, ret, i;
|
||||||
|
gchar *socket_path;
|
||||||
|
gchar *qmp_socket_path;
|
||||||
|
gchar *pid_file;
|
||||||
|
gchar *command;
|
||||||
|
const char *qemu_binary;
|
||||||
|
pid_t pid;
|
||||||
|
|
||||||
|
qemu_binary = getenv("QTEST_QEMU_BINARY");
|
||||||
|
g_assert(qemu_binary != NULL);
|
||||||
|
|
||||||
|
socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
|
||||||
|
qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid());
|
||||||
|
pid_file = g_strdup_printf("/tmp/qtest-%d.pid", getpid());
|
||||||
|
|
||||||
|
s = g_malloc(sizeof(*s));
|
||||||
|
|
||||||
|
sock = init_socket(socket_path);
|
||||||
|
qmpsock = init_socket(qmp_socket_path);
|
||||||
|
|
||||||
|
pid = fork();
|
||||||
|
if (pid == 0) {
|
||||||
|
command = g_strdup_printf("%s "
|
||||||
|
"-qtest unix:%s,nowait "
|
||||||
|
"-qtest-log /dev/null "
|
||||||
|
"-qmp unix:%s,nowait "
|
||||||
|
"-pidfile %s "
|
||||||
|
"-machine accel=qtest "
|
||||||
|
"%s", qemu_binary, socket_path,
|
||||||
|
qmp_socket_path, pid_file,
|
||||||
|
extra_args ?: "");
|
||||||
|
|
||||||
|
ret = system(command);
|
||||||
|
exit(ret);
|
||||||
|
g_free(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
s->fd = socket_accept(sock);
|
||||||
|
s->qmp_fd = socket_accept(qmpsock);
|
||||||
|
|
||||||
s->rx = g_string_new("");
|
s->rx = g_string_new("");
|
||||||
s->pid_file = pid_file;
|
s->pid_file = pid_file;
|
||||||
for (i = 0; i < MAX_IRQ; i++) {
|
for (i = 0; i < MAX_IRQ; i++) {
|
||||||
@ -108,6 +133,11 @@ QTestState *qtest_init(const char *extra_args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
g_free(socket_path);
|
g_free(socket_path);
|
||||||
|
g_free(qmp_socket_path);
|
||||||
|
|
||||||
|
/* Read the QMP greeting and then do the handshake */
|
||||||
|
qtest_qmp(s, "");
|
||||||
|
qtest_qmp(s, "{ 'execute': 'qmp_capabilities' }");
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
@ -131,22 +161,19 @@ void qtest_quit(QTestState *s)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
|
static void socket_sendf(int fd, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
gchar *str;
|
gchar *str;
|
||||||
size_t size, offset;
|
size_t size, offset;
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
str = g_strdup_vprintf(fmt, ap);
|
str = g_strdup_vprintf(fmt, ap);
|
||||||
va_end(ap);
|
|
||||||
size = strlen(str);
|
size = strlen(str);
|
||||||
|
|
||||||
offset = 0;
|
offset = 0;
|
||||||
while (offset < size) {
|
while (offset < size) {
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
len = write(s->fd, str + offset, size - offset);
|
len = write(fd, str + offset, size - offset);
|
||||||
if (len == -1 && errno == EINTR) {
|
if (len == -1 && errno == EINTR) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -158,6 +185,15 @@ static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
socket_sendf(s->fd, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
static GString *qtest_recv_line(QTestState *s)
|
static GString *qtest_recv_line(QTestState *s)
|
||||||
{
|
{
|
||||||
GString *line;
|
GString *line;
|
||||||
@ -233,6 +269,39 @@ redo:
|
|||||||
return words;
|
return words;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qtest_qmp(QTestState *s, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
bool has_reply = false;
|
||||||
|
int nesting = 0;
|
||||||
|
|
||||||
|
/* Send QMP request */
|
||||||
|
va_start(ap, fmt);
|
||||||
|
socket_sendf(s->qmp_fd, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
/* Receive reply */
|
||||||
|
while (!has_reply || nesting > 0) {
|
||||||
|
ssize_t len;
|
||||||
|
char c;
|
||||||
|
|
||||||
|
len = read(s->qmp_fd, &c, 1);
|
||||||
|
if (len == -1 && errno == EINTR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (c) {
|
||||||
|
case '{':
|
||||||
|
nesting++;
|
||||||
|
has_reply = true;
|
||||||
|
break;
|
||||||
|
case '}':
|
||||||
|
nesting--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char *qtest_get_arch(void)
|
const char *qtest_get_arch(void)
|
||||||
{
|
{
|
||||||
const char *qemu = getenv("QTEST_QEMU_BINARY");
|
const char *qemu = getenv("QTEST_QEMU_BINARY");
|
||||||
|
@ -37,6 +37,15 @@ QTestState *qtest_init(const char *extra_args);
|
|||||||
*/
|
*/
|
||||||
void qtest_quit(QTestState *s);
|
void qtest_quit(QTestState *s);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qtest_qmp:
|
||||||
|
* @s: QTestState instance to operate on.
|
||||||
|
* @fmt...: QMP message to send to qemu
|
||||||
|
*
|
||||||
|
* Sends a QMP message to QEMU
|
||||||
|
*/
|
||||||
|
void qtest_qmp(QTestState *s, const char *fmt, ...);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qtest_get_irq:
|
* qtest_get_irq:
|
||||||
* @s: QTestState instance to operate on.
|
* @s: QTestState instance to operate on.
|
||||||
@ -206,6 +215,14 @@ void qtest_add_func(const char *str, void (*fn));
|
|||||||
global_qtest = qtest_init((args)) \
|
global_qtest = qtest_init((args)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qmp:
|
||||||
|
* @fmt...: QMP message to send to qemu
|
||||||
|
*
|
||||||
|
* Sends a QMP message to QEMU
|
||||||
|
*/
|
||||||
|
#define qmp(fmt, ...) qtest_qmp(global_qtest, fmt, ## __VA_ARGS__)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get_irq:
|
* get_irq:
|
||||||
* @num: Interrupt to observe.
|
* @num: Interrupt to observe.
|
||||||
|
@ -15,9 +15,9 @@ read 134217728/134217728 bytes at offset 0
|
|||||||
|
|
||||||
unaligned pwrite
|
unaligned pwrite
|
||||||
wrote 42/42 bytes at offset 66
|
wrote 42/42 bytes at offset 66
|
||||||
42.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
42 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
verify pattern
|
verify pattern
|
||||||
read 42/42 bytes at offset 66
|
read 42/42 bytes at offset 66
|
||||||
42.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
42 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
*** done
|
*** done
|
||||||
|
@ -5,5 +5,5 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|||||||
|
|
||||||
== read from read-only image
|
== read from read-only image
|
||||||
read 512/512 bytes at offset 0
|
read 512/512 bytes at offset 0
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
*** done
|
*** done
|
||||||
|
@ -3,21 +3,21 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|||||||
|
|
||||||
== reading at EOF ==
|
== reading at EOF ==
|
||||||
read 512/512 bytes at offset 134217728
|
read 512/512 bytes at offset 134217728
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
== reading far past EOF ==
|
== reading far past EOF ==
|
||||||
read 512/512 bytes at offset 268435456
|
read 512/512 bytes at offset 268435456
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
== writing at EOF ==
|
== writing at EOF ==
|
||||||
wrote 512/512 bytes at offset 134217728
|
wrote 512/512 bytes at offset 134217728
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
read 512/512 bytes at offset 134217728
|
read 512/512 bytes at offset 134217728
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
== writing far past EOF ==
|
== writing far past EOF ==
|
||||||
wrote 512/512 bytes at offset 268435456
|
wrote 512/512 bytes at offset 268435456
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
read 512/512 bytes at offset 268435456
|
read 512/512 bytes at offset 268435456
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
*** done
|
*** done
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -19,5 +19,5 @@ read 2048/2048 bytes at offset 0
|
|||||||
|
|
||||||
== verify zeroes after sub-cluster pattern ==
|
== verify zeroes after sub-cluster pattern ==
|
||||||
read 2560/2560 bytes at offset 1024
|
read 2560/2560 bytes at offset 1024
|
||||||
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2.500 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
*** done
|
*** done
|
||||||
|
@ -4,69 +4,69 @@ Filling base image
|
|||||||
|
|
||||||
=== IO: pattern 195
|
=== IO: pattern 195
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221194240
|
qemu-io> wrote 512/512 bytes at offset 3221194240
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221195264
|
qemu-io> wrote 512/512 bytes at offset 3221195264
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221196288
|
qemu-io> wrote 512/512 bytes at offset 3221196288
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221197312
|
qemu-io> wrote 512/512 bytes at offset 3221197312
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221198336
|
qemu-io> wrote 512/512 bytes at offset 3221198336
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221199360
|
qemu-io> wrote 512/512 bytes at offset 3221199360
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221200384
|
qemu-io> wrote 512/512 bytes at offset 3221200384
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221201408
|
qemu-io> wrote 512/512 bytes at offset 3221201408
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221202432
|
qemu-io> wrote 512/512 bytes at offset 3221202432
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221203456
|
qemu-io> wrote 512/512 bytes at offset 3221203456
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221204480
|
qemu-io> wrote 512/512 bytes at offset 3221204480
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221205504
|
qemu-io> wrote 512/512 bytes at offset 3221205504
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221206528
|
qemu-io> wrote 512/512 bytes at offset 3221206528
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221207552
|
qemu-io> wrote 512/512 bytes at offset 3221207552
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221208576
|
qemu-io> wrote 512/512 bytes at offset 3221208576
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221209600
|
qemu-io> wrote 512/512 bytes at offset 3221209600
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221210624
|
qemu-io> wrote 512/512 bytes at offset 3221210624
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221211648
|
qemu-io> wrote 512/512 bytes at offset 3221211648
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221212672
|
qemu-io> wrote 512/512 bytes at offset 3221212672
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221213696
|
qemu-io> wrote 512/512 bytes at offset 3221213696
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221214720
|
qemu-io> wrote 512/512 bytes at offset 3221214720
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221215744
|
qemu-io> wrote 512/512 bytes at offset 3221215744
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221216768
|
qemu-io> wrote 512/512 bytes at offset 3221216768
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221217792
|
qemu-io> wrote 512/512 bytes at offset 3221217792
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221218816
|
qemu-io> wrote 512/512 bytes at offset 3221218816
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221219840
|
qemu-io> wrote 512/512 bytes at offset 3221219840
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221220864
|
qemu-io> wrote 512/512 bytes at offset 3221220864
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221221888
|
qemu-io> wrote 512/512 bytes at offset 3221221888
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221222912
|
qemu-io> wrote 512/512 bytes at offset 3221222912
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221223936
|
qemu-io> wrote 512/512 bytes at offset 3221223936
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221224960
|
qemu-io> wrote 512/512 bytes at offset 3221224960
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221225984
|
qemu-io> wrote 512/512 bytes at offset 3221225984
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> No errors were found on the image.
|
qemu-io> No errors were found on the image.
|
||||||
Creating test image with backing file
|
Creating test image with backing file
|
||||||
|
|
||||||
@ -75,395 +75,395 @@ Filling test image
|
|||||||
|
|
||||||
=== IO: pattern 196
|
=== IO: pattern 196
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221194752
|
qemu-io> wrote 512/512 bytes at offset 3221194752
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221195776
|
qemu-io> wrote 512/512 bytes at offset 3221195776
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221196800
|
qemu-io> wrote 512/512 bytes at offset 3221196800
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221197824
|
qemu-io> wrote 512/512 bytes at offset 3221197824
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221198848
|
qemu-io> wrote 512/512 bytes at offset 3221198848
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221199872
|
qemu-io> wrote 512/512 bytes at offset 3221199872
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221200896
|
qemu-io> wrote 512/512 bytes at offset 3221200896
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221201920
|
qemu-io> wrote 512/512 bytes at offset 3221201920
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221202944
|
qemu-io> wrote 512/512 bytes at offset 3221202944
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221203968
|
qemu-io> wrote 512/512 bytes at offset 3221203968
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221204992
|
qemu-io> wrote 512/512 bytes at offset 3221204992
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221206016
|
qemu-io> wrote 512/512 bytes at offset 3221206016
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221207040
|
qemu-io> wrote 512/512 bytes at offset 3221207040
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221208064
|
qemu-io> wrote 512/512 bytes at offset 3221208064
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221209088
|
qemu-io> wrote 512/512 bytes at offset 3221209088
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221210112
|
qemu-io> wrote 512/512 bytes at offset 3221210112
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221211136
|
qemu-io> wrote 512/512 bytes at offset 3221211136
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221212160
|
qemu-io> wrote 512/512 bytes at offset 3221212160
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221213184
|
qemu-io> wrote 512/512 bytes at offset 3221213184
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221214208
|
qemu-io> wrote 512/512 bytes at offset 3221214208
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221215232
|
qemu-io> wrote 512/512 bytes at offset 3221215232
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221216256
|
qemu-io> wrote 512/512 bytes at offset 3221216256
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221217280
|
qemu-io> wrote 512/512 bytes at offset 3221217280
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221218304
|
qemu-io> wrote 512/512 bytes at offset 3221218304
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221219328
|
qemu-io> wrote 512/512 bytes at offset 3221219328
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221220352
|
qemu-io> wrote 512/512 bytes at offset 3221220352
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221221376
|
qemu-io> wrote 512/512 bytes at offset 3221221376
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221222400
|
qemu-io> wrote 512/512 bytes at offset 3221222400
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221223424
|
qemu-io> wrote 512/512 bytes at offset 3221223424
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221224448
|
qemu-io> wrote 512/512 bytes at offset 3221224448
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221225472
|
qemu-io> wrote 512/512 bytes at offset 3221225472
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221226496
|
qemu-io> wrote 512/512 bytes at offset 3221226496
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221227520
|
qemu-io> wrote 512/512 bytes at offset 3221227520
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221228544
|
qemu-io> wrote 512/512 bytes at offset 3221228544
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221229568
|
qemu-io> wrote 512/512 bytes at offset 3221229568
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221230592
|
qemu-io> wrote 512/512 bytes at offset 3221230592
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221231616
|
qemu-io> wrote 512/512 bytes at offset 3221231616
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221232640
|
qemu-io> wrote 512/512 bytes at offset 3221232640
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221233664
|
qemu-io> wrote 512/512 bytes at offset 3221233664
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221234688
|
qemu-io> wrote 512/512 bytes at offset 3221234688
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221235712
|
qemu-io> wrote 512/512 bytes at offset 3221235712
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221236736
|
qemu-io> wrote 512/512 bytes at offset 3221236736
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221237760
|
qemu-io> wrote 512/512 bytes at offset 3221237760
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221238784
|
qemu-io> wrote 512/512 bytes at offset 3221238784
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221239808
|
qemu-io> wrote 512/512 bytes at offset 3221239808
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221240832
|
qemu-io> wrote 512/512 bytes at offset 3221240832
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221241856
|
qemu-io> wrote 512/512 bytes at offset 3221241856
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221242880
|
qemu-io> wrote 512/512 bytes at offset 3221242880
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221243904
|
qemu-io> wrote 512/512 bytes at offset 3221243904
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221244928
|
qemu-io> wrote 512/512 bytes at offset 3221244928
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221245952
|
qemu-io> wrote 512/512 bytes at offset 3221245952
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221246976
|
qemu-io> wrote 512/512 bytes at offset 3221246976
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221248000
|
qemu-io> wrote 512/512 bytes at offset 3221248000
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221249024
|
qemu-io> wrote 512/512 bytes at offset 3221249024
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221250048
|
qemu-io> wrote 512/512 bytes at offset 3221250048
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221251072
|
qemu-io> wrote 512/512 bytes at offset 3221251072
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221252096
|
qemu-io> wrote 512/512 bytes at offset 3221252096
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221253120
|
qemu-io> wrote 512/512 bytes at offset 3221253120
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221254144
|
qemu-io> wrote 512/512 bytes at offset 3221254144
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221255168
|
qemu-io> wrote 512/512 bytes at offset 3221255168
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221256192
|
qemu-io> wrote 512/512 bytes at offset 3221256192
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221257216
|
qemu-io> wrote 512/512 bytes at offset 3221257216
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221258240
|
qemu-io> wrote 512/512 bytes at offset 3221258240
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> wrote 512/512 bytes at offset 3221259264
|
qemu-io> wrote 512/512 bytes at offset 3221259264
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> No errors were found on the image.
|
qemu-io> No errors were found on the image.
|
||||||
Reading
|
Reading
|
||||||
|
|
||||||
=== IO: pattern 195
|
=== IO: pattern 195
|
||||||
qemu-io> read 512/512 bytes at offset 3221194240
|
qemu-io> read 512/512 bytes at offset 3221194240
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221195264
|
qemu-io> read 512/512 bytes at offset 3221195264
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221196288
|
qemu-io> read 512/512 bytes at offset 3221196288
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221197312
|
qemu-io> read 512/512 bytes at offset 3221197312
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221198336
|
qemu-io> read 512/512 bytes at offset 3221198336
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221199360
|
qemu-io> read 512/512 bytes at offset 3221199360
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221200384
|
qemu-io> read 512/512 bytes at offset 3221200384
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221201408
|
qemu-io> read 512/512 bytes at offset 3221201408
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221202432
|
qemu-io> read 512/512 bytes at offset 3221202432
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221203456
|
qemu-io> read 512/512 bytes at offset 3221203456
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221204480
|
qemu-io> read 512/512 bytes at offset 3221204480
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221205504
|
qemu-io> read 512/512 bytes at offset 3221205504
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221206528
|
qemu-io> read 512/512 bytes at offset 3221206528
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221207552
|
qemu-io> read 512/512 bytes at offset 3221207552
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221208576
|
qemu-io> read 512/512 bytes at offset 3221208576
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221209600
|
qemu-io> read 512/512 bytes at offset 3221209600
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221210624
|
qemu-io> read 512/512 bytes at offset 3221210624
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221211648
|
qemu-io> read 512/512 bytes at offset 3221211648
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221212672
|
qemu-io> read 512/512 bytes at offset 3221212672
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221213696
|
qemu-io> read 512/512 bytes at offset 3221213696
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221214720
|
qemu-io> read 512/512 bytes at offset 3221214720
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221215744
|
qemu-io> read 512/512 bytes at offset 3221215744
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221216768
|
qemu-io> read 512/512 bytes at offset 3221216768
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221217792
|
qemu-io> read 512/512 bytes at offset 3221217792
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221218816
|
qemu-io> read 512/512 bytes at offset 3221218816
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221219840
|
qemu-io> read 512/512 bytes at offset 3221219840
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221220864
|
qemu-io> read 512/512 bytes at offset 3221220864
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221221888
|
qemu-io> read 512/512 bytes at offset 3221221888
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221222912
|
qemu-io> read 512/512 bytes at offset 3221222912
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221223936
|
qemu-io> read 512/512 bytes at offset 3221223936
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221224960
|
qemu-io> read 512/512 bytes at offset 3221224960
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221225984
|
qemu-io> read 512/512 bytes at offset 3221225984
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> === IO: pattern 196
|
qemu-io> === IO: pattern 196
|
||||||
qemu-io> read 512/512 bytes at offset 3221194752
|
qemu-io> read 512/512 bytes at offset 3221194752
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221195776
|
qemu-io> read 512/512 bytes at offset 3221195776
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221196800
|
qemu-io> read 512/512 bytes at offset 3221196800
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221197824
|
qemu-io> read 512/512 bytes at offset 3221197824
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221198848
|
qemu-io> read 512/512 bytes at offset 3221198848
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221199872
|
qemu-io> read 512/512 bytes at offset 3221199872
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221200896
|
qemu-io> read 512/512 bytes at offset 3221200896
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221201920
|
qemu-io> read 512/512 bytes at offset 3221201920
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221202944
|
qemu-io> read 512/512 bytes at offset 3221202944
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221203968
|
qemu-io> read 512/512 bytes at offset 3221203968
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221204992
|
qemu-io> read 512/512 bytes at offset 3221204992
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221206016
|
qemu-io> read 512/512 bytes at offset 3221206016
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221207040
|
qemu-io> read 512/512 bytes at offset 3221207040
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221208064
|
qemu-io> read 512/512 bytes at offset 3221208064
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221209088
|
qemu-io> read 512/512 bytes at offset 3221209088
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221210112
|
qemu-io> read 512/512 bytes at offset 3221210112
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221211136
|
qemu-io> read 512/512 bytes at offset 3221211136
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221212160
|
qemu-io> read 512/512 bytes at offset 3221212160
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221213184
|
qemu-io> read 512/512 bytes at offset 3221213184
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221214208
|
qemu-io> read 512/512 bytes at offset 3221214208
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221215232
|
qemu-io> read 512/512 bytes at offset 3221215232
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221216256
|
qemu-io> read 512/512 bytes at offset 3221216256
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221217280
|
qemu-io> read 512/512 bytes at offset 3221217280
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221218304
|
qemu-io> read 512/512 bytes at offset 3221218304
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221219328
|
qemu-io> read 512/512 bytes at offset 3221219328
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221220352
|
qemu-io> read 512/512 bytes at offset 3221220352
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221221376
|
qemu-io> read 512/512 bytes at offset 3221221376
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221222400
|
qemu-io> read 512/512 bytes at offset 3221222400
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221223424
|
qemu-io> read 512/512 bytes at offset 3221223424
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221224448
|
qemu-io> read 512/512 bytes at offset 3221224448
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221225472
|
qemu-io> read 512/512 bytes at offset 3221225472
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221226496
|
qemu-io> read 512/512 bytes at offset 3221226496
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221227520
|
qemu-io> read 512/512 bytes at offset 3221227520
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221228544
|
qemu-io> read 512/512 bytes at offset 3221228544
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221229568
|
qemu-io> read 512/512 bytes at offset 3221229568
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221230592
|
qemu-io> read 512/512 bytes at offset 3221230592
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221231616
|
qemu-io> read 512/512 bytes at offset 3221231616
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221232640
|
qemu-io> read 512/512 bytes at offset 3221232640
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221233664
|
qemu-io> read 512/512 bytes at offset 3221233664
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221234688
|
qemu-io> read 512/512 bytes at offset 3221234688
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221235712
|
qemu-io> read 512/512 bytes at offset 3221235712
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221236736
|
qemu-io> read 512/512 bytes at offset 3221236736
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221237760
|
qemu-io> read 512/512 bytes at offset 3221237760
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221238784
|
qemu-io> read 512/512 bytes at offset 3221238784
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221239808
|
qemu-io> read 512/512 bytes at offset 3221239808
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221240832
|
qemu-io> read 512/512 bytes at offset 3221240832
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221241856
|
qemu-io> read 512/512 bytes at offset 3221241856
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221242880
|
qemu-io> read 512/512 bytes at offset 3221242880
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221243904
|
qemu-io> read 512/512 bytes at offset 3221243904
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221244928
|
qemu-io> read 512/512 bytes at offset 3221244928
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221245952
|
qemu-io> read 512/512 bytes at offset 3221245952
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221246976
|
qemu-io> read 512/512 bytes at offset 3221246976
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221248000
|
qemu-io> read 512/512 bytes at offset 3221248000
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221249024
|
qemu-io> read 512/512 bytes at offset 3221249024
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221250048
|
qemu-io> read 512/512 bytes at offset 3221250048
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221251072
|
qemu-io> read 512/512 bytes at offset 3221251072
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221252096
|
qemu-io> read 512/512 bytes at offset 3221252096
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221253120
|
qemu-io> read 512/512 bytes at offset 3221253120
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221254144
|
qemu-io> read 512/512 bytes at offset 3221254144
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221255168
|
qemu-io> read 512/512 bytes at offset 3221255168
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221256192
|
qemu-io> read 512/512 bytes at offset 3221256192
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221257216
|
qemu-io> read 512/512 bytes at offset 3221257216
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221258240
|
qemu-io> read 512/512 bytes at offset 3221258240
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221259264
|
qemu-io> read 512/512 bytes at offset 3221259264
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> === IO: pattern 0
|
qemu-io> === IO: pattern 0
|
||||||
qemu-io> read 512/512 bytes at offset 3221227008
|
qemu-io> read 512/512 bytes at offset 3221227008
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221228032
|
qemu-io> read 512/512 bytes at offset 3221228032
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221229056
|
qemu-io> read 512/512 bytes at offset 3221229056
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221230080
|
qemu-io> read 512/512 bytes at offset 3221230080
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221231104
|
qemu-io> read 512/512 bytes at offset 3221231104
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221232128
|
qemu-io> read 512/512 bytes at offset 3221232128
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221233152
|
qemu-io> read 512/512 bytes at offset 3221233152
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221234176
|
qemu-io> read 512/512 bytes at offset 3221234176
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221235200
|
qemu-io> read 512/512 bytes at offset 3221235200
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221236224
|
qemu-io> read 512/512 bytes at offset 3221236224
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221237248
|
qemu-io> read 512/512 bytes at offset 3221237248
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221238272
|
qemu-io> read 512/512 bytes at offset 3221238272
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221239296
|
qemu-io> read 512/512 bytes at offset 3221239296
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221240320
|
qemu-io> read 512/512 bytes at offset 3221240320
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221241344
|
qemu-io> read 512/512 bytes at offset 3221241344
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221242368
|
qemu-io> read 512/512 bytes at offset 3221242368
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221243392
|
qemu-io> read 512/512 bytes at offset 3221243392
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221244416
|
qemu-io> read 512/512 bytes at offset 3221244416
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221245440
|
qemu-io> read 512/512 bytes at offset 3221245440
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221246464
|
qemu-io> read 512/512 bytes at offset 3221246464
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221247488
|
qemu-io> read 512/512 bytes at offset 3221247488
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221248512
|
qemu-io> read 512/512 bytes at offset 3221248512
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221249536
|
qemu-io> read 512/512 bytes at offset 3221249536
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221250560
|
qemu-io> read 512/512 bytes at offset 3221250560
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221251584
|
qemu-io> read 512/512 bytes at offset 3221251584
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221252608
|
qemu-io> read 512/512 bytes at offset 3221252608
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221253632
|
qemu-io> read 512/512 bytes at offset 3221253632
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221254656
|
qemu-io> read 512/512 bytes at offset 3221254656
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221255680
|
qemu-io> read 512/512 bytes at offset 3221255680
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221256704
|
qemu-io> read 512/512 bytes at offset 3221256704
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221257728
|
qemu-io> read 512/512 bytes at offset 3221257728
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> read 512/512 bytes at offset 3221258752
|
qemu-io> read 512/512 bytes at offset 3221258752
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
qemu-io> No errors were found on the image.
|
qemu-io> No errors were found on the image.
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
*** done
|
*** done
|
||||||
|
@ -23,6 +23,7 @@ import iotests
|
|||||||
from iotests import qemu_img, qemu_io
|
from iotests import qemu_img, qemu_io
|
||||||
|
|
||||||
backing_img = os.path.join(iotests.test_dir, 'backing.img')
|
backing_img = os.path.join(iotests.test_dir, 'backing.img')
|
||||||
|
mid_img = os.path.join(iotests.test_dir, 'mid.img')
|
||||||
test_img = os.path.join(iotests.test_dir, 'test.img')
|
test_img = os.path.join(iotests.test_dir, 'test.img')
|
||||||
|
|
||||||
class ImageStreamingTestCase(iotests.QMPTestCase):
|
class ImageStreamingTestCase(iotests.QMPTestCase):
|
||||||
@ -52,13 +53,15 @@ class TestSingleDrive(ImageStreamingTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
qemu_img('create', backing_img, str(TestSingleDrive.image_len))
|
qemu_img('create', backing_img, str(TestSingleDrive.image_len))
|
||||||
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % backing_img, test_img)
|
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % backing_img, mid_img)
|
||||||
|
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % mid_img, test_img)
|
||||||
self.vm = iotests.VM().add_drive(test_img)
|
self.vm = iotests.VM().add_drive(test_img)
|
||||||
self.vm.launch()
|
self.vm.launch()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.vm.shutdown()
|
self.vm.shutdown()
|
||||||
os.remove(test_img)
|
os.remove(test_img)
|
||||||
|
os.remove(mid_img)
|
||||||
os.remove(backing_img)
|
os.remove(backing_img)
|
||||||
|
|
||||||
def test_stream(self):
|
def test_stream(self):
|
||||||
@ -78,9 +81,34 @@ class TestSingleDrive(ImageStreamingTestCase):
|
|||||||
completed = True
|
completed = True
|
||||||
|
|
||||||
self.assert_no_active_streams()
|
self.assert_no_active_streams()
|
||||||
|
self.vm.shutdown()
|
||||||
|
|
||||||
self.assertFalse('sectors not allocated' in qemu_io('-c', 'map', test_img),
|
self.assertEqual(qemu_io('-c', 'map', backing_img),
|
||||||
'image file not fully populated after streaming')
|
qemu_io('-c', 'map', test_img),
|
||||||
|
'image file map does not match backing file after streaming')
|
||||||
|
|
||||||
|
def test_stream_partial(self):
|
||||||
|
self.assert_no_active_streams()
|
||||||
|
|
||||||
|
result = self.vm.qmp('block-stream', device='drive0', base=mid_img)
|
||||||
|
self.assert_qmp(result, 'return', {})
|
||||||
|
|
||||||
|
completed = False
|
||||||
|
while not completed:
|
||||||
|
for event in self.vm.get_qmp_events(wait=True):
|
||||||
|
if event['event'] == 'BLOCK_JOB_COMPLETED':
|
||||||
|
self.assert_qmp(event, 'data/type', 'stream')
|
||||||
|
self.assert_qmp(event, 'data/device', 'drive0')
|
||||||
|
self.assert_qmp(event, 'data/offset', self.image_len)
|
||||||
|
self.assert_qmp(event, 'data/len', self.image_len)
|
||||||
|
completed = True
|
||||||
|
|
||||||
|
self.assert_no_active_streams()
|
||||||
|
self.vm.shutdown()
|
||||||
|
|
||||||
|
self.assertEqual(qemu_io('-c', 'map', mid_img),
|
||||||
|
qemu_io('-c', 'map', test_img),
|
||||||
|
'image file map does not match backing file after streaming')
|
||||||
|
|
||||||
def test_device_not_found(self):
|
def test_device_not_found(self):
|
||||||
result = self.vm.qmp('block-stream', device='nonexistent')
|
result = self.vm.qmp('block-stream', device='nonexistent')
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.....
|
......
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Ran 5 tests
|
Ran 6 tests
|
||||||
|
|
||||||
OK
|
OK
|
||||||
|
@ -5,17 +5,17 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|||||||
wrote 1024/1024 bytes at offset 512
|
wrote 1024/1024 bytes at offset 512
|
||||||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 1536/1536 bytes at offset 131072
|
wrote 1536/1536 bytes at offset 131072
|
||||||
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1.500 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 131072/131072 bytes at offset 1024
|
wrote 131072/131072 bytes at offset 1024
|
||||||
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
== verifying patterns (1) ==
|
== verifying patterns (1) ==
|
||||||
read 512/512 bytes at offset 512
|
read 512/512 bytes at offset 512
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
read 131072/131072 bytes at offset 1024
|
read 131072/131072 bytes at offset 1024
|
||||||
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
read 512/512 bytes at offset 132096
|
read 512/512 bytes at offset 132096
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
== rewriting zeroes ==
|
== rewriting zeroes ==
|
||||||
wrote 65536/65536 bytes at offset 65536
|
wrote 65536/65536 bytes at offset 65536
|
||||||
|
@ -3,389 +3,389 @@ QA output created by 035
|
|||||||
creating image
|
creating image
|
||||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=6442450944
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=6442450944
|
||||||
qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> wrote 512/512 bytes at offset XXX
|
qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> qemu-io> wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 512/512 bytes at offset XXX
|
wrote 512/512 bytes at offset XXX
|
||||||
512.000000 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
checking image for errors
|
checking image for errors
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
|
@ -28,9 +28,9 @@ __all__ = ['imgfmt', 'imgproto', 'test_dir' 'qemu_img', 'qemu_io',
|
|||||||
|
|
||||||
# This will not work if arguments or path contain spaces but is necessary if we
|
# This will not work if arguments or path contain spaces but is necessary if we
|
||||||
# want to support the override options that ./check supports.
|
# want to support the override options that ./check supports.
|
||||||
qemu_img_args = os.environ.get('QEMU_IMG', 'qemu-img').split(' ')
|
qemu_img_args = os.environ.get('QEMU_IMG', 'qemu-img').strip().split(' ')
|
||||||
qemu_io_args = os.environ.get('QEMU_IO', 'qemu-io').split(' ')
|
qemu_io_args = os.environ.get('QEMU_IO', 'qemu-io').strip().split(' ')
|
||||||
qemu_args = os.environ.get('QEMU', 'qemu').split(' ')
|
qemu_args = os.environ.get('QEMU', 'qemu').strip().split(' ')
|
||||||
|
|
||||||
imgfmt = os.environ.get('IMGFMT', 'raw')
|
imgfmt = os.environ.get('IMGFMT', 'raw')
|
||||||
imgproto = os.environ.get('IMGPROTO', 'file')
|
imgproto = os.environ.get('IMGPROTO', 'file')
|
||||||
@ -87,10 +87,12 @@ class VM(object):
|
|||||||
|
|
||||||
def shutdown(self):
|
def shutdown(self):
|
||||||
'''Terminate the VM and clean up'''
|
'''Terminate the VM and clean up'''
|
||||||
self._qmp.cmd('quit')
|
if not self._popen is None:
|
||||||
self._popen.wait()
|
self._qmp.cmd('quit')
|
||||||
os.remove(self._monitor_path)
|
self._popen.wait()
|
||||||
os.remove(self._qemu_log_path)
|
os.remove(self._monitor_path)
|
||||||
|
os.remove(self._qemu_log_path)
|
||||||
|
self._popen = None
|
||||||
|
|
||||||
def qmp(self, cmd, **args):
|
def qmp(self, cmd, **args):
|
||||||
'''Invoke a QMP command and return the result dict'''
|
'''Invoke a QMP command and return the result dict'''
|
||||||
|
Loading…
Reference in New Issue
Block a user