From: Jerone Young <jyoung5@us.ibm.com>
To: "Tan, Li" <li.tan@intel.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH] kvm: kvmtrace: kvm_trace in kernel for supporting big_endian
Date: Wed, 11 Jun 2008 14:53:41 -0500 [thread overview]
Message-ID: <1213214021.6672.6.camel@thinkpadL> (raw)
In-Reply-To: <08DF4D958216244799FC84F3514D70F00169206D@pdsmsx415.ccr.corp.intel.com>
This patch is not in yet. Wanted to make sure that it doesn't fall off
the radar. Please include upstream.
Acked-by: Jerone Young <jyoung5@us.ibm.com>
On Fri, 2008-05-23 at 14:54 +0800, Tan, Li wrote:
> From 8f1cd69b77054681bbb7e81a1a2d31b887db9fbb Mon Sep 17 00:00:00 2001
> From: Tan Li <li.tan@intel.com>
> Date: Fri, 23 May 2008 14:41:17 +0800
> Subject: [PATCH] kvm: kvmtrace: kvm_trace in kernel for supporting
> big_endian
>
> Currently kvmtrace is not portable. This will prevent from copying a
> trace
> file from big-endian target to little-endian workstation for analysis.
> In the patch, kernel outputs metadata containing a magic number to trace
> log.
>
> Signed-off-by: Tan Li <li.tan@intel.com>
>
> ---
> include/linux/kvm.h | 4 ++--
> virt/kvm/kvm_trace.c | 18 ++++++++++++------
> 2 files changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/include/linux/kvm.h b/include/linux/kvm.h
> index a281afe..ca08cb1 100644
> --- a/include/linux/kvm.h
> +++ b/include/linux/kvm.h
> @@ -294,14 +294,14 @@ struct kvm_trace_rec {
> __u32 vcpu_id;
> union {
> struct {
> - __u32 cycle_lo, cycle_hi;
> + __u64 cycle_u64;
> __u32 extra_u32[KVM_TRC_EXTRA_MAX];
> } cycle;
> struct {
> __u32 extra_u32[KVM_TRC_EXTRA_MAX];
> } nocycle;
> } u;
> -};
> +} __attribute__((packed));
>
> #define KVMIO 0xAE
>
> diff --git a/virt/kvm/kvm_trace.c b/virt/kvm/kvm_trace.c
> index 0e49547..58141f3 100644
> --- a/virt/kvm/kvm_trace.c
> +++ b/virt/kvm/kvm_trace.c
> @@ -72,11 +72,7 @@ static void kvm_add_trace(void *probe_private, void
> *call_data,
> rec.cycle_in = p->cycle_in;
>
> if (rec.cycle_in) {
> - u64 cycle = 0;
> -
> - cycle = get_cycles();
> - rec.u.cycle.cycle_lo = (u32)cycle;
> - rec.u.cycle.cycle_hi = (u32)(cycle >> 32);
> + rec.u.cycle.cycle_u64 = get_cycles();
>
> for (i = 0; i < rec.extra_u32; i++)
> rec.u.cycle.extra_u32[i] = va_arg(*args, u32);
> @@ -114,8 +110,18 @@ static int kvm_subbuf_start_callback(struct
> rchan_buf *buf, void *subbuf,
> {
> struct kvm_trace *kt;
>
> - if (!relay_buf_full(buf))
> + if (!relay_buf_full(buf)) {
> + if (!prev_subbuf) {
> + /*
> + * executed only once when the channel is opened
> + * save metadata as first record
> + */
> + subbuf_start_reserve(buf, sizeof(u32));
> + *(u32 *)subbuf = 0x12345678;
> + }
> +
> return 1;
> + }
>
> kt = buf->chan->private_data;
> atomic_inc(&kt->lost_records);
next prev parent reply other threads:[~2008-06-11 19:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-23 6:54 [PATCH] kvm: kvmtrace: kvm_trace in kernel for supporting big_endian Tan, Li
2008-05-23 17:39 ` Hollis Blanchard
2008-06-11 19:53 ` Jerone Young [this message]
2008-06-12 13:38 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1213214021.6672.6.camel@thinkpadL \
--to=jyoung5@us.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=li.tan@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.