xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* Xentrace on Xilinx ARM
@ 2016-03-04 20:53 Ben Sanda
  2016-03-05 15:43 ` Dario Faggioli
  0 siblings, 1 reply; 18+ messages in thread
From: Ben Sanda @ 2016-03-04 20:53 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 5952 bytes --]

Hello,

My name is Ben Sanda, I'm a kernel/firmware developer with DornerWorks
engineering. Our team is working on support for Xen on the new Xilinx
Ultrascale+ MPSoC platforms (ARM A53 core) and I've specifically been tasked
with characterizing performance, particularly that of the schedulers. I wanted
to make use of the xentrace tool to help give us some timing and performance
benchmarks, but searching over the Xen mailing lists it appears xentrace has not
yet been ported to ARM. When you run it crashes complaining about allocating
memory buffers. While we could just write some custom quick program to
collect the data we need, I would rather help get xentrace working on ARM
so is generally available to everyone and usable for any benchmarking
moving forward.

In searching for existing topics on this my main reference thread for this has
been the "[Xen-devel] xentrace, arm, hvm" email chain started by Pavlo Suikov
here: http://xen.markmail.org/thread/zochggqxcifs5cdi

I have been trying to follow that email chain, which made some suggestions as to
how xentrace could be ported to ARM and where things are going wrong, but it
never came to any concrete conclusions. I have gathered from the thread that
there are issues with the memory allocation for the xentrace buffers due to MFN
and PFN mapping differences on the ARM vs x86 when attempting to map
from the XEN HEAP. I followed the suggestions posed by the thread as follows
(performed against the Xilinx/master Git version of the Xen source here:
https://github.com/Xilinx/xen):

First, in mm.c, I modified the xenmem_add_to_physmap_one() and its call to
rcu_lock_domain_by_any_id() call to provide a special case for the DOM_XEN
domain request. For this I created a new function, get_pg_owner(), which does
the same domain checks as get_pg_owner() on the x86 source performs. This allows
the correct domid_t to be returned.

--- xen-src/xen/arch/arm/mm.c   2016-03-04 10:44:31.364572302 -0800
+++ xen-src_mod/xen/arch/arm/mm.c   2016-02-24 09:41:43.000000000 -0800
@@ -41,6 +41,7 @@
#include <xen/pfn.h>
 struct domain *dom_xen, *dom_io, *dom_cow;
+static struct domain *get_pg_owner(domid_t domid);
 /* Static start-of-day pagetables that we use before the allocators
  * are up. These are used by all CPUs during bringup before switching
@@ -1099,7 +1100,8 @@
     {
         struct domain *od;
         p2m_type_t p2mt;
-        od = rcu_lock_domain_by_any_id(foreign_domid);
+        od = get_pg_owner(foreign_domid);
+
         if ( od == NULL )
             return -ESRCH;
@@ -1132,7 +1134,15 @@
             return -EINVAL;
         }
-        mfn = page_to_mfn(page);
+        if(od->domain_id != DOMID_XEN)
+        {
+            mfn = page_to_mfn(page);
+        }
+        else
+        {
+            mfn = idx;
+        }
+
         t = p2m_map_foreign;
         rcu_unlock_domain(od);
@@ -1312,6 +1321,42 @@
     unmap_domain_page(p);
}
+static struct domain *get_pg_owner(domid_t domid)
+{
+    struct domain *pg_owner = NULL, *curr = current->domain;
+
+    if ( likely(domid == DOMID_SELF) )
+    {
+        pg_owner = rcu_lock_current_domain();
+        goto out;
+    }
+
+    if ( unlikely(domid == curr->domain_id) )
+    {
+        goto out;
+    }
+
+    switch ( domid )
+    {
+    case DOMID_IO:
+        pg_owner = rcu_lock_domain(dom_io);
+        break;
+    case DOMID_XEN:
+        /*printk("DOM_XEN Selected\n");*/
+        pg_owner = rcu_lock_domain(dom_xen);
+        break;
+    default:
+        if ( (pg_owner = rcu_lock_domain_by_id(domid)) == NULL )
+        {
+            break;
+        }
+        break;
+    }
+
+ out:
+    return pg_owner;
+}

Second I modified p2m_lookup() in p2m.c to manage the fact that xentrace
provides a MFN, not a PFN to the domain lookup calls. It now checks for DOM_XEN,
and if found, returns the MFN directly instead of trying to translate it from a
PFN. It also sets the page type to p2m_raw_rw. (Which I guessed was the correct
type for read/write to the XEN Heap? I'm not sure if that's correct.)

@@ -228,10 +228,19 @@
     paddr_t ret;
     struct p2m_domain *p2m = &d->arch.p2m;
-    spin_lock(&p2m->lock);
-    ret = __p2m_lookup(d, paddr, t);
-    spin_unlock(&p2m->lock);
+    if(d->domain_id != DOMID_XEN)
+    {
+        spin_lock(&p2m->lock);
+        ret = __p2m_lookup(d, paddr, t);
+        spin_unlock(&p2m->lock);
+    }
+    else
+    {
+        *t = p2m_ram_rw;
+        ret = paddr;
+    }
+
     return ret;
}

The result is that now when I call xentrace() no errors are reported, however; I
also don't observe any trace logs actually being collected. I can invoke
xentrace (as xentrace -D -S 256 -t 10 -e all out.bin), and I see xentrace start,
and out.bin created, but it's always empty.

[root@xilinx-dom0 ~]# xentrace -D -S 256 -T 10 -e all out.bin
change evtmask to 0xffff000
(XEN) xentrace: requesting 2 t_info pages for 256 trace pages on 4 cpus
(XEN) xentrace: p0 mfn 7ffb6 offset 65
(XEN) xentrace: p1 mfn 7fd7c offset 321
(XEN) xentrace: p2 mfn 7fc7c offset 577
(XEN) xentrace: p3 mfn 7fb7c offset 833
(XEN) xentrace: initialised
[root@xilinx-dom0 ~]# ls -l
total 5257236
-rwxrwxr-x    1 root   root   9417104 Feb 10  2016 Dom1-Kernel*
-rw-rw-r--    1 root   root   073741824 Mar  4  2016 Dom1.img
-rw-r--r--    1 root   root   3221225472 Mar  4  2016 linaro-openembedded-fs.img
-rw-r--r--    1 root   root   0 Jan  1 00:00 out.bin
-rw-r--r--    1 root   root   1073741824 Mar  4  2016 ubuntu-core-fs.img
-rwxrwxr-x    1 root   root   4104 Mar  4  2016 xzd_bare.img*
[root@xilinx-dom0 ~]#

Thank you for any assistance,

Benjamin Sanda
Embedded Software Engineer
616.389.6138
Ben.Sanda@dornerworks.com<mailto:Ben.Sanda@dornerworks.com>

DornerWorks, Ltd.
3445 Lake Eastbrook Blvd. SE
Grand Rapids, MI 49546



[-- Attachment #1.2: Type: text/html, Size: 20028 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-04 20:53 Xentrace on Xilinx ARM Ben Sanda
@ 2016-03-05 15:43 ` Dario Faggioli
  2016-03-07  3:20   ` Ben Sanda
  2016-03-07 19:36   ` Ben Sanda
  0 siblings, 2 replies; 18+ messages in thread
From: Dario Faggioli @ 2016-03-05 15:43 UTC (permalink / raw)
  To: Ben Sanda, xen-devel; +Cc: Paul Sujkov


[-- Attachment #1.1: Type: text/plain, Size: 1526 bytes --]

On Fri, 2016-03-04 at 20:53 +0000, Ben Sanda wrote:
> Hello,
>  
Hello,

first of all, please, use plain text instead of HTML for emails to this
list.

> My name is Ben Sanda, I’m a kernel/firmware developer with
> DornerWorks
> engineering. Our team is working on support for Xen on the new Xilinx
> Ultrascale+ MPSoC platforms (ARM A53 core) and I’ve specifically been
> tasked
> with characterizing performance, particularly that of the schedulers.
> I wanted
> to make use of the xentrace tool to help give us some timing and
> performance
> benchmarks, but searching over the Xen mailing lists it appears
> xentrace has not
> yet been ported to ARM. 
>
No, tracing support for ARM is not present upstream
 
> In searching for existing topics on this my main reference thread for
> this has
> been the “[Xen-devel] xentrace, arm, hvm” email chain started by
> Pavlo Suikov
> here: http://xen.markmail.org/thread/zochggqxcifs5cdi
> 
Well, in this other thread, Paul (Cc-ed) says he basically has tracing
working on ARM:

http://lists.xenproject.org/archives/html/xen-devel/2016-02/msg03373.html

Any chance you maybe to can cooperate to get such support upstream?
That would be reallyy cool. :-)

Regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-05 15:43 ` Dario Faggioli
@ 2016-03-07  3:20   ` Ben Sanda
  2016-03-07 19:36   ` Ben Sanda
  1 sibling, 0 replies; 18+ messages in thread
From: Ben Sanda @ 2016-03-07  3:20 UTC (permalink / raw)
  To: Dario Faggioli, xen-devel; +Cc: Paul Sujkov

Dario,

Thank you very much for the help. I apologize for the HTML output on
the first email, I thought I had outlook set to send it in plain text.
My mistake. 

> Well, in this other thread, Paul (Cc-ed) says he basically has tracing working on ARM:

> http://lists.xenproject.org/archives/html/xen-devel/2016-02/msg03373.html

I hadn't found that thread by Paul thank you for pointing it out. I would be eager to
see what additional changes he had to make to get it actually working.
It sounds like we headed down the same path, but there's more needed
that I'm unaware of.

Paul, I would be eager to see what changes you had to make to get
xentrace working on ARM and compare that against what I've tried. If
we could push up a formal patch that would be excellent.

Thanks,
Ben

-----Original Message-----
From: Dario Faggioli [mailto:dario.faggioli@citrix.com] 
Sent: 05 March, 2016 10:43
To: Ben Sanda <Ben.Sanda@dornerworks.com>; xen-devel@lists.xen.org
Cc: Paul Sujkov <psujkov@gmail.com>
Subject: Re: [Xen-devel] Xentrace on Xilinx ARM

On Fri, 2016-03-04 at 20:53 +0000, Ben Sanda wrote:
> Hello,
>  
Hello,

first of all, please, use plain text instead of HTML for emails to this list.

> My name is Ben Sanda, I’m a kernel/firmware developer with DornerWorks 
> engineering. Our team is working on support for Xen on the new Xilinx
> Ultrascale+ MPSoC platforms (ARM A53 core) and I’ve specifically been
> tasked
> with characterizing performance, particularly that of the schedulers.
> I wanted
> to make use of the xentrace tool to help give us some timing and 
> performance benchmarks, but searching over the Xen mailing lists it 
> appears xentrace has not yet been ported to ARM.
>
No, tracing support for ARM is not present upstream
 
> In searching for existing topics on this my main reference thread for 
> this has been the “[Xen-devel] xentrace, arm, hvm” email chain started 
> by Pavlo Suikov
> here: http://xen.markmail.org/thread/zochggqxcifs5cdi
> 
Well, in this other thread, Paul (Cc-ed) says he basically has tracing working on ARM:

http://lists.xenproject.org/archives/html/xen-devel/2016-02/msg03373.html

Any chance you maybe to can cooperate to get such support upstream?
That would be reallyy cool. :-)

Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-05 15:43 ` Dario Faggioli
  2016-03-07  3:20   ` Ben Sanda
@ 2016-03-07 19:36   ` Ben Sanda
  2016-03-07 20:30     ` Paul Sujkov
  2016-03-08 12:41     ` Dario Faggioli
  1 sibling, 2 replies; 18+ messages in thread
From: Ben Sanda @ 2016-03-07 19:36 UTC (permalink / raw)
  To: Dario Faggioli, xen-devel; +Cc: Paul Sujkov

Dario,

I gleamed enough information from Paul's posts that I now have xentrace
outputting data (I don't know if it's correct data or gibberish yet though). To
discover this I tried to find the xenalyze tool but have not been able to figure
out how to get it built. According to the old documentation at:
https://blog.xenproject.org/2012/09/27/tracing-with-xentrace-and-xenalyze/

it was in a mercurial repo here:  
http://xenbits.xensource.com/ext/xenalyze.hg 

but that repo is no longer functional it seems. I searched through the mailing
lists and it looks like xenalyze was pulled into the mainline and now resides in
tools/xentrace. I can't determine how to get it to build though. I've tried
calling make in the directory but that fails. I'm using petalinux which has a
build xen tools make object, which I have also tried, and it generates an object
file for xenalyze.c, but no executable. Could you provide any guidance as to how
to actually get xenalyze built? I'm assuming it's still an offline tool? Or is it now
built into the Xen image?

Thank you,
Ben Sanda
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-07 19:36   ` Ben Sanda
@ 2016-03-07 20:30     ` Paul Sujkov
  2016-03-07 20:32       ` Ben Sanda
  2016-03-08 12:41     ` Dario Faggioli
  1 sibling, 1 reply; 18+ messages in thread
From: Paul Sujkov @ 2016-03-07 20:30 UTC (permalink / raw)
  To: Ben Sanda; +Cc: Dario Faggioli, xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 359 bytes --]

Hi Ben,

sorry for the delayed answer. There is xenalyze fork repo made by RT-Xen
author, Meng Xu:

https://github.com/PennPanda/xen-analyze

apart from some comments and logs it's quite the same tool as it was of Xen
4.5, you can use it while you have troubles with the code in the Xen repo.
Do you still need any help with Xen traces on arm?

Regards, Paul

[-- Attachment #1.2: Type: text/html, Size: 522 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-07 20:30     ` Paul Sujkov
@ 2016-03-07 20:32       ` Ben Sanda
  0 siblings, 0 replies; 18+ messages in thread
From: Ben Sanda @ 2016-03-07 20:32 UTC (permalink / raw)
  To: Paul Sujkov; +Cc: Dario Faggioli, xen-devel

Paul,

Thank you very much for the reply. I’ll check out the fork for xenalyze.

I believe I have xentrace working now, mostly, but if possible I’d like to
see what you did on your build to get it working to compare. I 
would like to push a patch into the mainline that agrees with both
of our efforts.

Thanks,
Ben
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-07 19:36   ` Ben Sanda
  2016-03-07 20:30     ` Paul Sujkov
@ 2016-03-08 12:41     ` Dario Faggioli
  2016-03-08 18:04       ` Ben Sanda
  1 sibling, 1 reply; 18+ messages in thread
From: Dario Faggioli @ 2016-03-08 12:41 UTC (permalink / raw)
  To: Ben Sanda, xen-devel
  Cc: Paul Sujkov, George Dunlap, Julien Grall, stefano.stabellini


[-- Attachment #1.1: Type: text/plain, Size: 2128 bytes --]

[Adding (back?) George, which wrote and maintains xenalyze, and tracing
in general, and adding ARM people as well, because this is on ARM,
isn't it?]

On Mon, 2016-03-07 at 19:36 +0000, Ben Sanda wrote:
> it was in a mercurial repo here:  
> http://xenbits.xensource.com/ext/xenalyze.hg 
> 
> but that repo is no longer functional it seems. I searched through
> the mailing
> lists and it looks like xenalyze was pulled into the mainline and now
> resides in
> tools/xentrace. 
>
That's correct, it's all in tree now.

> I can't determine how to get it to build though. I've tried
> calling make in the directory but that fails. I'm using petalinux
> which has a
> build xen tools make object, which I have also tried, and it
> generates an object
> file for xenalyze.c, but no executable. 
>
Mmm... In an x86 build, this is what I get:
(debian-stable_amd64)dario@Solace:/home/SOURCES/xen/xen/xen.git$ ls tools/xentrace/xenalyze -lah
-rwxrwxr-x. 1 dario dario 174K Mar  8 12:36 tools/xentrace/xenalyze
(debian-stable_amd64)dario@Solace:/home/SOURCES/xen/xen/xen.git$ ls dist/install/usr/local/bin/xenalyze -lah
-rwxr-xr-x. 1 dario dario 174K Mar  8 12:36 dist/install/usr/local/bin/xenalyze

I guess we're talking about ARM (cross?) builds, which is something
(especially for tools!) that I really have not much experience with.

Maybe there's more to modify, in terms of Makefile-s, etc., to make
that be build on ARM...

> Could you provide any guidance as to how
> to actually get xenalyze built? I'm assuming it's still an offline
> tool? Or is it now
> built into the Xen image?
> 
It's not part of any Xen image. It's a command line tool to be used,
usually but not necessarily, in dom0, build and installed together with
the other tools... At least in my case, for x86 builds and installs.

Regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 12:41     ` Dario Faggioli
@ 2016-03-08 18:04       ` Ben Sanda
  2016-03-08 18:15         ` Dario Faggioli
                           ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Ben Sanda @ 2016-03-08 18:04 UTC (permalink / raw)
  To: Dario Faggioli, xen-devel
  Cc: Paul Sujkov, George Dunlap, Julien Grall, stefano.stabellini

All,

To update to the current situation. I have been able to get xentrace() and
xenalyze working completely (at least as far as I can tell) on ARM.

For xentrace there were changes to the memory allocation routines to allow
mapping of the Xen Heap by dom0, correcting the MFN->PFN translations, adding
the trace buffer initialization to setup.c (init_trace_bufs), and correcting the
get_cycles() call to provide the system TSC. For the get_cycles() call I
gathered that was supposed to return the raw tick count, not a translated
ticks->real time timestamp. I then had to call xenalyze with the core frequency
defined so the timestamps made sence.

Paul: Was there anything else you did I missed?

>It's not part of any Xen image. It's a command line tool to be used, usually
>but not necessarily, in dom0, build and installed together with the other
>tools... At least in my case, for x86 builds and installs. 

For xenalyze I had to modify the makefile to build xenalyze on the ARM platform
(it was specifically removed from the ARM build). Once that was corrected I
could find and call it from dom0. It built only locally to Xen though (could
only run from dom0), I could not use it from the native Linux development
environment (I don't know if you're supposed to be able to? Or since I'm running
ARM it built for ARM not x86 and thus could not be used natively).

I plan to push they changes in as a patch to the mainline if that seems
reasonable to everyone.

Thanks,
Ben Sanda
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 18:04       ` Ben Sanda
@ 2016-03-08 18:15         ` Dario Faggioli
  2016-03-08 18:28         ` Paul Sujkov
  2016-03-08 18:44         ` George Dunlap
  2 siblings, 0 replies; 18+ messages in thread
From: Dario Faggioli @ 2016-03-08 18:15 UTC (permalink / raw)
  To: Ben Sanda, xen-devel
  Cc: Paul Sujkov, George Dunlap, Julien Grall, stefano.stabellini


[-- Attachment #1.1: Type: text/plain, Size: 2598 bytes --]

On Tue, 2016-03-08 at 18:04 +0000, Ben Sanda wrote:
> All,
> 
> To update to the current situation. I have been able to get
> xentrace() and
> xenalyze working completely (at least as far as I can tell) on ARM.
> 
Great! :-)

> For xentrace there were changes to the memory allocation routines to
> allow
> mapping of the Xen Heap by dom0, correcting the MFN->PFN
> translations, adding
> the trace buffer initialization to setup.c (init_trace_bufs), and
> correcting the
> get_cycles() call to provide the system TSC. For the get_cycles()
> call I
> gathered that was supposed to return the raw tick count, not a
> translated
> ticks->real time timestamp. I then had to call xenalyze with the core
> frequency
> defined so the timestamps made sence.
> 
> Paul: Was there anything else you did I missed?
> 
Sorry, I can't really comment, as I know few about this part of the
tracing infra, and nothing about ARM.

I do encourage Paul to chime in, but, actually, that would probably be
even easier when we'll have the code posted.

So, you know as they say in Open Source, don't you: release early,
release often! :-)

> > It's not part of any Xen image. It's a command line tool to be
> > used, usually
> > but not necessarily, in dom0, build and installed together with the
> > other
> > tools... At least in my case, for x86 builds and installs. 
> For xenalyze I had to modify the makefile to build xenalyze on the
> ARM platform
> (it was specifically removed from the ARM build). Once that was
> corrected I
> could find and call it from dom0. 
>
Great again!

> It built only locally to Xen though (could
> only run from dom0), I could not use it from the native Linux
> development
> environment (I don't know if you're supposed to be able to? Or since
> I'm running
> ARM it built for ARM not x86 and thus could not be used natively).
> 
Yeah, well, if both dev and test environments are x86, I've done it a
couple of times, but I don't think its critical that we support that.

If architectures don't match, I actually think it is _the_right_thing_
that it does not work (as you say yourself)! :-)

> I plan to push they changes in as a patch to the mainline if that
> seems
> reasonable to everyone.
> 
Looking forward to it. :-)

Thanks and regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 18:04       ` Ben Sanda
  2016-03-08 18:15         ` Dario Faggioli
@ 2016-03-08 18:28         ` Paul Sujkov
  2016-03-08 18:32           ` Andrew Cooper
  2016-03-08 18:44         ` George Dunlap
  2 siblings, 1 reply; 18+ messages in thread
From: Paul Sujkov @ 2016-03-08 18:28 UTC (permalink / raw)
  To: Ben Sanda
  Cc: George Dunlap, Dario Faggioli, stefano.stabellini, Julien Grall,
	xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 476 bytes --]

Hi Ben,

looks like you've done everything I did. I'm far from my working laptop
today, so I can post my work on this issue only tomorrow so you can look
through the code, compare and estimate solutions.

Regarding ARM build, I'm using xenalyze as both host tool (x86 build, e.g.
for gnuplot scatterplot graphs) and target tool (ARM, for fast summary
check); but since we're working with Xen 4.5, I'm building it outside Xen
source tree with a custom Makefile.

Regards, Paul

[-- Attachment #1.2: Type: text/html, Size: 743 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 18:28         ` Paul Sujkov
@ 2016-03-08 18:32           ` Andrew Cooper
  2016-03-09 11:22             ` Dario Faggioli
  0 siblings, 1 reply; 18+ messages in thread
From: Andrew Cooper @ 2016-03-08 18:32 UTC (permalink / raw)
  To: Paul Sujkov, Ben Sanda
  Cc: George Dunlap, Dario Faggioli, xen-devel, Julien Grall,
	stefano.stabellini


[-- Attachment #1.1: Type: text/plain, Size: 772 bytes --]

On 08/03/16 18:28, Paul Sujkov wrote:
> Hi Ben,
>
> looks like you've done everything I did. I'm far from my working
> laptop today, so I can post my work on this issue only tomorrow so you
> can look through the code, compare and estimate solutions.
>
> Regarding ARM build, I'm using xenalyze as both host tool (x86 build,
> e.g. for gnuplot scatterplot graphs) and target tool (ARM, for fast
> summary check); but since we're working with Xen 4.5, I'm building it
> outside Xen source tree with a custom Makefile.

xenalyse should be able to be run as a separate tool, and on a different
architecture.  All it does is annotate the binary trace file.

I don't think there is much change between what's now in-tree and what
was out of tree in the 4.5 timeframe.

~Andrew

[-- Attachment #1.2: Type: text/html, Size: 1561 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 18:04       ` Ben Sanda
  2016-03-08 18:15         ` Dario Faggioli
  2016-03-08 18:28         ` Paul Sujkov
@ 2016-03-08 18:44         ` George Dunlap
  2016-03-08 20:51           ` Ben Sanda
  2 siblings, 1 reply; 18+ messages in thread
From: George Dunlap @ 2016-03-08 18:44 UTC (permalink / raw)
  To: Ben Sanda, Dario Faggioli, xen-devel
  Cc: Paul Sujkov, George Dunlap, Julien Grall, stefano.stabellini

On 08/03/16 18:04, Ben Sanda wrote:
> All,
> 
> To update to the current situation. I have been able to get xentrace() and
> xenalyze working completely (at least as far as I can tell) on ARM.
> 
> For xentrace there were changes to the memory allocation routines to allow
> mapping of the Xen Heap by dom0, correcting the MFN->PFN translations, adding
> the trace buffer initialization to setup.c (init_trace_bufs), and correcting the
> get_cycles() call to provide the system TSC. For the get_cycles() call I
> gathered that was supposed to return the raw tick count, not a translated
> ticks->real time timestamp. I then had to call xenalyze with the core frequency
> defined so the timestamps made sence.

FWIW, on my "to-do" list for xenalyze for years has been to have the
xentrace process query something (either Xen or Linux) to find the hz
rate, and then write that at the beginning of the xentrace file, so that
xenalyze could just pick that up and use it.  Since you're doing some
work on xentrace / xenalyze anyway, you might think about adding that to
your "to-do" list -- it doesn't seem conceptually like it would be that
hard.

The other thing that might be useful is information about the
architecture you're running on -- right now it assumes intel, and will
crash tracing a file generated on an AMD box unless you specify
--svm-mode.  Adding a trace record that indicates "Intel / AMD / ARM"
would also make things a lot easier.

> I plan to push they changes in as a patch to the mainline if that seems
> reasonable to everyone.

Yes, please. :-)

 -George


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 18:44         ` George Dunlap
@ 2016-03-08 20:51           ` Ben Sanda
  2016-03-09 11:05             ` George Dunlap
  2016-03-09 11:41             ` Paul Sujkov
  0 siblings, 2 replies; 18+ messages in thread
From: Ben Sanda @ 2016-03-08 20:51 UTC (permalink / raw)
  To: George Dunlap, Dario Faggioli, xen-devel
  Cc: Paul Sujkov, George Dunlap, Julien Grall, stefano.stabellini

George,

>FWIW, on my "to-do" list for xenalyze for years has been to have the xentrace
>process query something (either Xen or Linux) to find the hz rate, and then
>write that at the beginning of the xentrace file, so that xenalyze could just
>pick that up and use it.  Since you're doing some work on xentrace / xenalyze
>anyway, you might think about adding that to your "to-do" list -- it doesn't
>seem conceptually like it would be that hard.

Since I'm in the code base anyway right now I'll give it a look. I was wondering
about that for the xenalyze hertz parameter. I had assumed initially xentrace
embedded the value somehow already. Is there any documentation as to the binary
format xentrace outputs? Or is it best just to look at the code and figure it
out? I guess the main thing would be providing a common interface for both ARM
and x86 but the common trace.c has a get frequency function that's implemented
by both so we should be able to query it and shove in the data.

>The other thing that might be useful is information about the architecture
>you're running on -- right now it assumes intel, and will crash tracing a file
>generated on an AMD box unless you specify --svm-mode.  Adding a trace record
>that indicates "Intel / AMD / ARM" would also make things a lot easier.

I didn't run into any issue with xenalyze analyzing the ARM generated trace file
(I didn't give it any special flag). What does --svm-mode modify? The endedness?
I can look quick into that as well.

Thanks,
Ben
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 20:51           ` Ben Sanda
@ 2016-03-09 11:05             ` George Dunlap
  2016-03-09 16:28               ` Ben Sanda
  2016-03-09 11:41             ` Paul Sujkov
  1 sibling, 1 reply; 18+ messages in thread
From: George Dunlap @ 2016-03-09 11:05 UTC (permalink / raw)
  To: Ben Sanda, Dario Faggioli, xen-devel
  Cc: Paul Sujkov, George Dunlap, Julien Grall, stefano.stabellini

On 08/03/16 20:51, Ben Sanda wrote:
> George,
> 
>> FWIW, on my "to-do" list for xenalyze for years has been to have the xentrace
>> process query something (either Xen or Linux) to find the hz rate, and then
>> write that at the beginning of the xentrace file, so that xenalyze could just
>> pick that up and use it.  Since you're doing some work on xentrace / xenalyze
>> anyway, you might think about adding that to your "to-do" list -- it doesn't
>> seem conceptually like it would be that hard.
> 
> Since I'm in the code base anyway right now I'll give it a look. I was wondering
> about that for the xenalyze hertz parameter. I had assumed initially xentrace
> embedded the value somehow already. Is there any documentation as to the binary
> format xentrace outputs? Or is it best just to look at the code and figure it
> out? I guess the main thing would be providing a common interface for both ARM
> and x86 but the common trace.c has a get frequency function that's implemented
> by both so we should be able to query it and shove in the data.

Well fundamentally the output is a series of variable-sized records of
"struct t_rec", defined in xen/include/public/trace.h.  Each trace is at
least one word (4 bytes) long, and at most 10 words (40 bytes) long.  I
think between the t_rec definition and the code that handles it in
xenalyze you should be able to figure out what's going on. :-)

Xen creates one ring-buffer per cpu and simply writes trace records into
the buffers (with producer / consumer pointers).  If the buffer is full,
it simply drops trace records; however, it counts  how many records get
dropped, and when there is space again it creates a TRC_LOST_RECORDS
trace record that contains:
1. The number of lost records
2. The tsc of the first lost record (which, with the current tsc, gives
you a clear picture of the timeframe over which records were lost)
3. The currently running vcpu (so you can tell which vcpu to account the
records until the next schedule trace record)

xentrace will intermittently wake up and check for outstanding records
in the cpu buffers.  For each buffer it finds consumed records, it
creates a TRC_CPU_CHANGE record, which says the physical cpu of the
following records, as well as the number of bytes about to be written.
This allows xenalyze to efficiently scan through the file looking for
records from a specific pcpu.

So xentrace already generates new trace records and inserts them into
the stream.  The new functionality we're talking about would just be a
matter of defining a new trace record or two (probably of time TRC_GEN
-- see TRC_CPU_CHANGE in xen/include/public/trace.h), then getting
xentrace to add the records at the beginning of the trace file.

I *think* that you could get away with not writing a TRC_CPU_CHANGE
record for those trace records; but it wouldn't really hurt to insert
one anyway.  I'll leave that up to you.

>> The other thing that might be useful is information about the architecture
>> you're running on -- right now it assumes intel, and will crash tracing a file
>> generated on an AMD box unless you specify --svm-mode.  Adding a trace record
>> that indicates "Intel / AMD / ARM" would also make things a lot easier.
> 
> I didn't run into any issue with xenalyze analyzing the ARM generated trace file
> (I didn't give it any special flag). What does --svm-mode modify? The endedness?
> I can look quick into that as well.

"SVM" is* AMD's name for their virtualization extension (as "VMX" or
"VT-x" is for Intel).

* Or at least, it was at one time -- they tend to rename these things
for marketing reasons.

If you're just doing a straight dump of the records, with no analysis,
then it's probably not a big deal.  The main thing with Intel / AMD is
that they have different VMEXIT types, so xenalyze needs to know which
one it's getting to be able to analyze them properly.

On the other hand, maybe what we should do is just have a flag in the
architecture-specific trace records themselves saying whether they
should be interpreted as VMX or SVM. :-)

 -George


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 18:32           ` Andrew Cooper
@ 2016-03-09 11:22             ` Dario Faggioli
  0 siblings, 0 replies; 18+ messages in thread
From: Dario Faggioli @ 2016-03-09 11:22 UTC (permalink / raw)
  To: Andrew Cooper, Paul Sujkov, Ben Sanda
  Cc: George Dunlap, Julien Grall, xen-devel, stefano.stabellini


[-- Attachment #1.1: Type: text/plain, Size: 1459 bytes --]

On Tue, 2016-03-08 at 18:32 +0000, Andrew Cooper wrote:
> On 08/03/16 18:28, Paul Sujkov wrote:
> > Regarding ARM build, I'm using xenalyze as both host tool (x86
> > build, e.g. for gnuplot scatterplot graphs) and target tool (ARM,
> > for fast summary check); but since we're working with Xen 4.5, I'm
> > building it outside Xen source tree with a custom Makefile.
>  
> xenalyse should be able to be run as a separate tool, and on a
> different architecture.  All it does is annotate the binary trace
> file.
> 
It sure should. However, I would not expect the ARM binary, built when
building of the tools for ARM, to work on an x86 box (either dom0,
devbox, or whatever). That's what I think Ben was asking about, and
what I was responding to.

> I don't think there is much change between what's now in-tree and
> what was out of tree in the 4.5 timeframe.
> 
Apart from my recent enhancement in events displaying, I'm quite sure I
remember Coverity uncovering something pretty important about how some
stats were being handled, and that being fixed not more that a couple
of weeks ago.

Ah, here it is: ebdba150bff1d914805d60efa576337bbef0c305

Regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-08 20:51           ` Ben Sanda
  2016-03-09 11:05             ` George Dunlap
@ 2016-03-09 11:41             ` Paul Sujkov
  2016-03-09 16:26               ` Ben Sanda
  1 sibling, 1 reply; 18+ messages in thread
From: Paul Sujkov @ 2016-03-09 11:41 UTC (permalink / raw)
  To: Ben Sanda
  Cc: stefano.stabellini, George Dunlap, Dario Faggioli, George Dunlap,
	xen-devel, Julien Grall


[-- Attachment #1.1: Type: text/plain, Size: 1863 bytes --]

Hi Ben,

see the patch attached. It's a bit dirty still (that's why it wasn't
upstreamed long time ago), but you can obviously look through it and gain
some information.

On 8 March 2016 at 22:51, Ben Sanda <Ben.Sanda@dornerworks.com> wrote:

> George,
>
> >FWIW, on my "to-do" list for xenalyze for years has been to have the
> xentrace
> >process query something (either Xen or Linux) to find the hz rate, and
> then
> >write that at the beginning of the xentrace file, so that xenalyze could
> just
> >pick that up and use it.  Since you're doing some work on xentrace /
> xenalyze
> >anyway, you might think about adding that to your "to-do" list -- it
> doesn't
> >seem conceptually like it would be that hard.
>
> Since I'm in the code base anyway right now I'll give it a look. I was
> wondering
> about that for the xenalyze hertz parameter. I had assumed initially
> xentrace
> embedded the value somehow already. Is there any documentation as to the
> binary
> format xentrace outputs? Or is it best just to look at the code and figure
> it
> out? I guess the main thing would be providing a common interface for both
> ARM
> and x86 but the common trace.c has a get frequency function that's
> implemented
> by both so we should be able to query it and shove in the data.
>
> >The other thing that might be useful is information about the architecture
> >you're running on -- right now it assumes intel, and will crash tracing a
> file
> >generated on an AMD box unless you specify --svm-mode.  Adding a trace
> record
> >that indicates "Intel / AMD / ARM" would also make things a lot easier.
>
> I didn't run into any issue with xenalyze analyzing the ARM generated
> trace file
> (I didn't give it any special flag). What does --svm-mode modify? The
> endedness?
> I can look quick into that as well.
>
> Thanks,
> Ben
>



-- 
Regards, Paul Sujkov

[-- Attachment #1.2: Type: text/html, Size: 2461 bytes --]

[-- Attachment #2: 0001-ARM-xentrace-and-xenbaked-fix.patch --]
[-- Type: text/x-patch, Size: 5117 bytes --]

From 429924af6c0633968c5ca4bc9ce277f7deaa0367 Mon Sep 17 00:00:00 2001
From: Pavlo Suikov <pavlo.suikov@globallogic.com>
Date: Wed, 27 Jan 2016 14:56:01 +0200
Subject: [PATCH 1/5] ARM xentrace and xenbaked fix

Fix for traces for ARM. Makes xentrace and xenbaked work correctly
in Dom0.

Change-Id: I445fe96a50ebeda7437ef37da52ad87d46fd8202
Signed-off-by: Pavlo Suikov <pavlo.suikov@globallogic.com>
---
 tools/flask/policy/policy/modules/xen/xen.te |  4 ++++
 xen/arch/arm/gic.c                           |  2 +-
 xen/arch/arm/mm.c                            | 13 +++++++++++--
 xen/arch/arm/p2m.c                           |  4 ++++
 xen/arch/arm/setup.c                         |  3 +++
 xen/common/spinlock.c                        |  2 +-
 xen/include/asm-arm/time.h                   |  8 ++++++--
 7 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/tools/flask/policy/policy/modules/xen/xen.te b/tools/flask/policy/policy/modules/xen/xen.te
index 81a0b9c..7290813 100644
--- a/tools/flask/policy/policy/modules/xen/xen.te
+++ b/tools/flask/policy/policy/modules/xen/xen.te
@@ -84,6 +84,8 @@ allow dom0_t dom0_t:domain2 {
 };
 allow dom0_t dom0_t:resource { add remove };
 
+allow dom0_t domxen_t:mmu { memorymap map_write };
+
 # These permissions allow using the FLASK security server to compute access
 # checks locally, which could be used by a domain or service (such as xenstore)
 # that does not have its own security server to make access decisions based on
@@ -152,6 +154,8 @@ allow domd_t domd_t:domain2 {
 };
 allow dom0_t domd_t:resource { add remove };
 
+allow domd_t domxen_t:mmu { memorymap map_read map_write };
+
 allow dom0_t domd_t:domain2 set_11_mapping;
 
 # These permissions allow using the FLASK security server to compute access
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index ae08774..f7c0a25 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -69,7 +69,7 @@ unsigned int gic_number_lines(void)
 
 void gic_save_state(struct vcpu *v)
 {
-    ASSERT(!local_irq_is_enabled());
+/*    ASSERT(!local_irq_is_enabled()); */
     ASSERT(!is_idle_vcpu(v));
 
     /* No need for spinlocks here because interrupts are disabled around
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index d20a7d0..2dd8e06 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -1085,7 +1085,15 @@ int xenmem_add_to_physmap_one(
     {
         struct domain *od;
         p2m_type_t p2mt;
-        od = rcu_lock_domain_by_any_id(foreign_domid);
+        /* od = rcu_lock_domain_by_any_id(foreign_domid); */
+
+        if (foreign_domid == dom_xen->domain_id) {
+            rcu_lock_domain(dom_xen);
+            od = dom_xen;
+        } else {
+            od = rcu_lock_domain_by_any_id(foreign_domid);
+        }
+
         if ( od == NULL )
             return -ESRCH;
 
@@ -1112,7 +1120,8 @@ int xenmem_add_to_physmap_one(
             return -EINVAL;
         }
 
-        if ( !p2m_is_ram(p2mt) )
+        /* if ( !p2m_is_ram(p2mt) ) */
+        if ( (foreign_domid != dom_xen->domain_id) && !p2m_is_ram(p2mt) )
         {
             put_page(page);
             rcu_unlock_domain(od);
diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index 8809f5a..163b69b 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -159,6 +159,10 @@ paddr_t p2m_lookup(struct domain *d, paddr_t paddr, p2m_type_t *t)
 
     BUILD_BUG_ON(THIRD_MASK != PAGE_MASK);
 
+    if (DOMID_XEN == d->domain_id) {
+        return paddr;
+    }
+
     /* Allow t to be NULL */
     t = t ?: &_t;
 
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 47b2d96..5e53440 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -36,6 +36,7 @@
 #include <xen/pfn.h>
 #include <xen/vmap.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/trace.h>
 #include <asm/page.h>
 #include <asm/current.h>
 #include <asm/setup.h>
@@ -827,6 +828,8 @@ void __init start_xen(unsigned long boot_phys_offset,
     /* Scrub RAM that is still free and so may go to an unprivileged domain. */
     scrub_heap_pages();
 
+    init_trace_bufs();
+
     init_constructors();
 
     console_endboot();
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index f9f19a8..8c40aca 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -134,7 +134,7 @@ void _spin_lock_irq(spinlock_t *lock)
 {
     LOCK_PROFILE_VAR;
 
-    ASSERT(local_irq_is_enabled());
+/*    ASSERT(local_irq_is_enabled()); */
     local_irq_disable();
     check_lock(&lock->debug);
     while ( unlikely(!_raw_spin_trylock(&lock->raw)) )
diff --git a/xen/include/asm-arm/time.h b/xen/include/asm-arm/time.h
index d544b5b..a16d355 100644
--- a/xen/include/asm-arm/time.h
+++ b/xen/include/asm-arm/time.h
@@ -5,11 +5,15 @@
     DT_MATCH_COMPATIBLE("arm,armv7-timer"), \
     DT_MATCH_COMPATIBLE("arm,armv8-timer")
 
-typedef unsigned long cycles_t;
+/* typedef unsigned long cycles_t; */
+#include <asm/regs.h>
+
+typedef uint64_t cycles_t;
 
 static inline cycles_t get_cycles (void)
 {
-        return 0;
+    /* return 0; */
+    return READ_SYSREG64(CNTPCT_EL0);
 }
 
 /* List of timer's IRQ */
-- 
2.7.0


[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-09 11:41             ` Paul Sujkov
@ 2016-03-09 16:26               ` Ben Sanda
  0 siblings, 0 replies; 18+ messages in thread
From: Ben Sanda @ 2016-03-09 16:26 UTC (permalink / raw)
  To: Paul Sujkov
  Cc: stefano.stabellini, George Dunlap, Dario Faggioli, George Dunlap,
	xen-devel, Julien Grall

Paul,

>see the patch attached. It's a bit dirty still (that's why it wasn't upstreamed 
>long time ago), but you can obviously look through it and gain some information.

Thanks, I’ll take a look and compare it against
mine to make sure we capture everything.

Ben

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Xentrace on Xilinx ARM
  2016-03-09 11:05             ` George Dunlap
@ 2016-03-09 16:28               ` Ben Sanda
  0 siblings, 0 replies; 18+ messages in thread
From: Ben Sanda @ 2016-03-09 16:28 UTC (permalink / raw)
  To: George Dunlap, Dario Faggioli, xen-devel
  Cc: Paul Sujkov, George Dunlap, Julien Grall, stefano.stabellini

George,

Thank you for all the information. I'll take a dive in and see what I can see.
I'd at least like to get the CPU core frequency detection in as that will
make things a lot easier for us as we port to multiple platforms with
different cores. Then we don't have to keep looking up core speeds.

Ben

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2016-03-09 16:28 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-04 20:53 Xentrace on Xilinx ARM Ben Sanda
2016-03-05 15:43 ` Dario Faggioli
2016-03-07  3:20   ` Ben Sanda
2016-03-07 19:36   ` Ben Sanda
2016-03-07 20:30     ` Paul Sujkov
2016-03-07 20:32       ` Ben Sanda
2016-03-08 12:41     ` Dario Faggioli
2016-03-08 18:04       ` Ben Sanda
2016-03-08 18:15         ` Dario Faggioli
2016-03-08 18:28         ` Paul Sujkov
2016-03-08 18:32           ` Andrew Cooper
2016-03-09 11:22             ` Dario Faggioli
2016-03-08 18:44         ` George Dunlap
2016-03-08 20:51           ` Ben Sanda
2016-03-09 11:05             ` George Dunlap
2016-03-09 16:28               ` Ben Sanda
2016-03-09 11:41             ` Paul Sujkov
2016-03-09 16:26               ` Ben Sanda

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).