[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 2/2] trace: [all] Add "guest_mem_before" even
From: |
Lluís Vilanova |
Subject: |
Re: [Qemu-devel] [PATCH v2 2/2] trace: [all] Add "guest_mem_before" event |
Date: |
Thu, 12 May 2016 17:36:37 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Lluís Vilanova writes:
[...]
> diff --git a/trace/mem-internal.h b/trace/mem-internal.h
> new file mode 100644
> index 0000000..970d525
> --- /dev/null
> +++ b/trace/mem-internal.h
> @@ -0,0 +1,46 @@
> +/*
> + * Helper functions for guest memory tracing
> + *
> + * Copyright (C) 2016 Lluís Vilanova <address@hidden>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or later.
> + * See the COPYING file in the top-level directory.
> + */
> +
> +#ifndef TRACE__MEM_INTERNAL_H
> +#define TRACE__MEM_INTERNAL_H
> +
> +static inline uint8_t trace_mem_get_info(TCGMemOp op, bool store)
> +{
> + uint8_t res = op;
> + bool be = (op & MO_BSWAP) == MO_BE;
> +
> + /* remove untraced fields */
> + res &= (~((1ULL << 4) - 1));
> + /* make endianness absolute */
> + res &= ~MO_BSWAP;
> + if (be) {
> + res |= 1ULL << 3;
> + }
> + /* add fields */
> + if (store) {
> + res |= 1ULL << 4;
> + }
> +
> + return res;
> +}
[...]
I forgot to comment on the commit message/code why I'm ignoring the
MO_ALIGN/MO_UNALN flag.
In principle, these are plainly calculable from the virtual address and target
architecture, so I decided to not emit them on the trace to keep it as simple as
possible.
Cheers,
Lluis