Hi, Isaku
Thanks very much. xenoprof works now. And I can profile in passive mode
now.
But the profiling data seems not to be right.
I write one hello_world.c program to have a test (only domain0, not test the
passive domain), but the result is not result. The hello_world program is
only one dead loop:
int main(){
volatile int i=0;
while(1) {
i++;
}
return i;
}
But the result is strange:
#opcontrol --event=CPU_CYCLES=50000
#opcontrol --start
#./hello_world
#opcontrol --stop
#opreport
CPU: IA64, speed 1396 MHz (estimated)
Counted CPU_CYCLES events (CPU Cycles) with a unit mask of 0x00 (No unit mask)
count 50000
CPU_CYCLES:50000|
samples| %|
------------------
997 77.2868 xen-syms
189 14.6512 vmlinux
34 2.6357 ld-2.3.4.so
34 2.6357 libc-2.3.4.so
16 1.2403 bash
12 0.9302 hello
2 0.1550 grep
2 0.1550 libm-2.3.4.so
2 0.1550 sshd
1 0.0775 gawk
1 0.0775 libdl-2.3.4.so
And also there's an fatel error when execute "opcontrol -d".
(XEN) Xen BUG at mm.c:1265
(XEN) FIXME: implement ia64 dump_execution_state()
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Xen BUG at mm.c:1265
(XEN) ***************************************
//source based on 15044
//arch/ia64/xen/mm.c
1214 static void
1215 zap_domain_page_one(struct domain *d, unsigned long mpaddr,
1216 int clear_PGC_allocate, unsigned long mfn)
1264 page = mfn_to_page(mfn);
1265 BUG_ON((page->count_info & PGC_count_mask) == 0);
1266
1267 BUG_ON(clear_PGC_allocate && (page_get_owner(page) == NULL));
1268 domain_put_page(d, mpaddr, pte, old_pte, clear_PGC_allocate);
1269 perfc_incr(zap_dcomain_page_one);
Thanks
-----Original Message-----
From: Isaku Yamahata [mailto:yamahata@xxxxxxxxxxxxx]
Sent: 2007年11月20日 16:39
To: Xing, Chong
Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-ia64-devel] xenoprof usage question on ia64/xen
One more comment.
You need to tell the oprofile daemon that this session is xenoprofile
session by "--xen" option.
I hope the following example woule help.
Here we're assuming that domain0 and domain1 exist.
- dom0 active, dom1 passive case example
on dom0
# opctonrol --start-daemon --xen=<path to xen-syms> \
--vmlinux=<path to vmlinux> \
--active-domains=0 --passive-domains=1
# opcontrol --start
<make activity you want>
# opcontrol --stop (or opcontrol --shutdown?)
# opreport -l or something to get the result
- both dom0 and dom1 active example
on dom0
# opctonrol --start-daemon --xen=<path to xen-syms> \
--vmlinux=<path to vmlinux> \
--active-domains=0,1
on dom1
# opctonrol --start-daemon --xen=<path to xen-syms> \
--vmlinux=<path to vmlinux>
domain1 isn't primary domain so that --active-domains/--passive-domains
shouldn't be specified.
on dom0
# opcontrol --start
on dom1
# opcontrol --start
<make activity you want>
on dom1
# opcontrol --stop (or opcontrol --shutdown)
on dom0
# opcontrol --stop (or opcontrol --shutdown)
on dom0
# opreport -l or something to get the result of dom0
on dom1
# opreport -l or something to get the result of dom1
On Tue, Nov 20, 2007 at 02:35:59PM +0900, Isaku Yamahata wrote:
> Hi Xing.
>
> You need one more ia64 specific patch to the oprofile user land.
> The patch can be found from
> http://lists.xensource.com/archives/html/xen-ia64-devel/2006-11/msg00132.html
> I also attached the patch for your convenience.
>
> I haven't send the patch to the oprofile upstream because
> someone reported the profiled result sometimes looked odd.
> But I haven't looked into it.
> If you use xenoprof/ia64, please report whether the result looks sane
> or bad. (Or unable to use xenoprof.)
> Then, I'll (try to fix it and) send the patch to the oprofile upstream.
>
> thanks.
>
> On Mon, Nov 19, 2007 at 05:15:21PM +0800, Xing, Chong wrote:
> >
> >
> > I want to use xenoprof on ia64/xen to do some performance analysis. But
> > xenoprof fails to work.
> >
> >
> >
> > The following is what I have configured:
> >
> > Xen version: changeset: 15044:eabda101b0c5
> >
> > download oprofile 0.9.2 and oprofile-0.9.2-xen-r2.patch is patched in
> > domain0,
> > and also built & installed.
> >
> > domain0 linux kernel is configured and rebuilt for enabling
> > oprofile:
> >
> > CONFIG_PROFILING=y
> >
> > CONFIG_OPROFILE=y
> >
> >
> >
> > But after the above work, xenoprof still can?t work correctly
> >
> > #opcontrol ?start
> >
> > Using default event: CPU_CYCLES:1000000:0:1:1
> >
> > Using 2.6+ OProfile kernel interface.
> >
> > Running perfmon child on CPU0.
> >
> > CREATE_CONTEXT failed: Device or resource busy
> >
> > Waiting on CPU0
> >
> > <hang??>
> >
> >
> >
> > Does anybody have some suggestions?
> >
> > Thanks
> >
> >
> >
>
> > _______________________________________________
> > Xen-ia64-devel mailing list
> > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-ia64-devel
>
> --
> yamahata
> _______________________________________________
> Xen-ia64-devel mailing list
> Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-ia64-devel
--
yamahata
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|