* [PATCH] Fix arguments passed to SHADOW_PRINTK
@ 2008-09-11 10:44 Yoshiaki Tamura
2008-09-11 10:49 ` Gianluca Guida
2008-09-11 11:00 ` Keir Fraser
0 siblings, 2 replies; 6+ messages in thread
From: Yoshiaki Tamura @ 2008-09-11 10:44 UTC (permalink / raw)
To: xen-devel; +Cc: Satoshi Moriai
Hi.
When I compiled xen-3.3-testing with DEBUG_TRACE_DUMP in xen/include/xen/lib.h
turned on, I got some errors at SHADOW_PRINTK.
The following patch will fix the arguments passed to SHADOW_PRINTK in
xen/arch/x86/mm/shadow/common.c and xen/arch/x86/mm/shadow/multi.c.
Although I haven't tested, it is the same for xen-unstable.hg
Thanks,
Yoshi
Signed-off-by: Yoshi Tamura <tamura.yoshiaki@lab.ntt.co.jp>
diff -r bfd1157dd315 xen/arch/x86/mm/shadow/common.c
--- a/xen/arch/x86/mm/shadow/common.c Thu Sep 11 08:06:48 2008 +0900
+++ b/xen/arch/x86/mm/shadow/common.c Thu Sep 11 09:25:28 2008 +0900
@@ -701,7 +701,8 @@ static void _sh_resync(struct vcpu *v, m
ASSERT(!sh_page_has_multiple_shadows(mfn_to_page(gmfn)));
SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx, va=%lx\n",
- v->domain->domain_id, v->vcpu_id, mfn_x(gmfn), va);
+ v->domain->domain_id, v->vcpu_id, mfn_x(gmfn),
+ sh_map_domain_page(gmfn));
/* Need to pull write access so the page *stays* in sync. */
if ( oos_remove_write_access(v, gmfn, fixup) )
@@ -953,7 +954,8 @@ int sh_unsync(struct vcpu *v, mfn_t gmfn
ASSERT(shadow_locked_by_me(v->domain));
SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx va %lx\n",
- v->domain->domain_id, v->vcpu_id, mfn_x(gmfn), va);
+ v->domain->domain_id, v->vcpu_id, mfn_x(gmfn),
+ sh_map_domain_page(gmfn));
pg = mfn_to_page(gmfn);
diff -r bfd1157dd315 xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c Thu Sep 11 08:06:48 2008 +0900
+++ b/xen/arch/x86/mm/shadow/multi.c Thu Sep 11 09:49:09 2008 +0900
@@ -3041,9 +3041,14 @@ static int sh_page_fault(struct vcpu *v,
int fast_emul = 0;
#endif
+#ifdef __x86_64__
SHADOW_PRINTK("d:v=%u:%u va=%#lx err=%u, rip=%lx\n",
v->domain->domain_id, v->vcpu_id, va, regs->error_code,
regs->rip);
+#elif defined(__i386__)
+ SHADOW_PRINTK("d:v=%u:%u va=%#lx err=%u\n",
+ v->domain->domain_id, v->vcpu_id, va, regs->error_code);
+#endif /* __i386__ */
perfc_incr(shadow_fault);
--
TAMURA, Yoshiaki
NTT Cyber Space Labs
OSS Computing Project
Kernel Group
E-mail: tamura.yoshiaki@lab.ntt.co.jp
TEL: +81-46-859-2771
FAX: +81-46-855-1152
Address: 1-1 Hikarinooka, Yokosuka
Kanagawa 239-0847 JAPAN
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix arguments passed to SHADOW_PRINTK
2008-09-11 10:44 [PATCH] Fix arguments passed to SHADOW_PRINTK Yoshiaki Tamura
@ 2008-09-11 10:49 ` Gianluca Guida
2008-09-11 11:00 ` Keir Fraser
1 sibling, 0 replies; 6+ messages in thread
From: Gianluca Guida @ 2008-09-11 10:49 UTC (permalink / raw)
To: Yoshiaki Tamura; +Cc: Satoshi Moriai, xen-devel
Hi,
Yoshiaki Tamura wrote:
> Hi.
>
> When I compiled xen-3.3-testing with DEBUG_TRACE_DUMP in xen/include/xen/lib.h
> turned on, I got some errors at SHADOW_PRINTK.
> The following patch will fix the arguments passed to SHADOW_PRINTK in
> xen/arch/x86/mm/shadow/common.c and xen/arch/x86/mm/shadow/multi.c.
My fault, the va argument was removed with recent changes in the OOS
code and it is unneeded now.
> SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx, va=%lx\n",
> - v->domain->domain_id, v->vcpu_id, mfn_x(gmfn), va);
> + v->domain->domain_id, v->vcpu_id, mfn_x(gmfn),
> + sh_map_domain_page(gmfn));
>
> /* Need to pull write access so the page *stays* in sync. */
> if ( oos_remove_write_access(v, gmfn, fixup) )
> @@ -953,7 +954,8 @@ int sh_unsync(struct vcpu *v, mfn_t gmfn
> ASSERT(shadow_locked_by_me(v->domain));
>
> SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx va %lx\n",
> - v->domain->domain_id, v->vcpu_id, mfn_x(gmfn), va);
> + v->domain->domain_id, v->vcpu_id, mfn_x(gmfn),
> + sh_map_domain_page(gmfn));
These will likely break Xen in 32 bit, since you should unmap the gmfn
in those architecture. As I said, the va argument is unneeded now, so
you should remove it.
Thanks,
Gianluca
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix arguments passed to SHADOW_PRINTK
2008-09-11 10:44 [PATCH] Fix arguments passed to SHADOW_PRINTK Yoshiaki Tamura
2008-09-11 10:49 ` Gianluca Guida
@ 2008-09-11 11:00 ` Keir Fraser
2008-09-11 11:24 ` Yoshiaki Tamura
1 sibling, 1 reply; 6+ messages in thread
From: Keir Fraser @ 2008-09-11 11:00 UTC (permalink / raw)
To: Yoshiaki Tamura, xen-devel; +Cc: Satoshi Moriai
On 11/9/08 11:44, "Yoshiaki Tamura" <tamura.yoshiaki@lab.ntt.co.jp> wrote:
> When I compiled xen-3.3-testing with DEBUG_TRACE_DUMP in xen/include/xen/lib.h
> turned on, I got some errors at SHADOW_PRINTK.
> The following patch will fix the arguments passed to SHADOW_PRINTK in
> xen/arch/x86/mm/shadow/common.c and xen/arch/x86/mm/shadow/multi.c.
>
> Although I haven't tested, it is the same for xen-unstable.hg
First chunks of patch: If there is no longer a va to print, then don't
manufacture one to print; just remove it entirely from the printk. Apart
from anything else, using sh_map_domain_page() without
sh_unmap_domain_page() will leak mappings. And the va printed will not be
useful anyway.
Final chunk of patch: print regs->eip? That should work on both x86_64 and
i386.
Please fix and re-send.
Thanks,
Keir
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix arguments passed to SHADOW_PRINTK
2008-09-11 11:00 ` Keir Fraser
@ 2008-09-11 11:24 ` Yoshiaki Tamura
2008-09-11 11:42 ` Gianluca Guida
0 siblings, 1 reply; 6+ messages in thread
From: Yoshiaki Tamura @ 2008-09-11 11:24 UTC (permalink / raw)
To: Keir Fraser; +Cc: xen-devel
Keir and Gianluca,
Keir Fraser wrote:
> On 11/9/08 11:44, "Yoshiaki Tamura" <tamura.yoshiaki@lab.ntt.co.jp> wrote:
>
>> When I compiled xen-3.3-testing with DEBUG_TRACE_DUMP in xen/include/xen/lib.h
>> turned on, I got some errors at SHADOW_PRINTK.
>> The following patch will fix the arguments passed to SHADOW_PRINTK in
>> xen/arch/x86/mm/shadow/common.c and xen/arch/x86/mm/shadow/multi.c.
>>
>> Although I haven't tested, it is the same for xen-unstable.hg
>
> First chunks of patch: If there is no longer a va to print, then don't
> manufacture one to print; just remove it entirely from the printk. Apart
> from anything else, using sh_map_domain_page() without
> sh_unmap_domain_page() will leak mappings. And the va printed will not be
> useful anyway.
Sorry, that was my mistake.
> Final chunk of patch: print regs->eip? That should work on both x86_64 and
> i386.
When I compiled xen-3.3-testing with DEBUG_TRACE_DUMP turned on,
I got the following errors. Would you please tell me how to work around?
multi.c: In function 'sh_page_fault__guest_2':
multi.c:3045: error: 'struct cpu_user_regs' has no member named 'rip'
multi.c: In function 'sh_page_fault__guest_3':
multi.c:3045: error: 'struct cpu_user_regs' has no member named 'rip'
make[6]: *** [guest_3.o] Error 1
make[6]: *** Waiting for unfinished jobs....
make[6]: *** [guest_2.o] Error 1
make[5]: *** [shadow/built_in.o] Error 2
make[4]: *** [mm/built_in.o] Error 2
make[3]: *** [/home/tamura/Developer/kemari-v1-devel.hg/xen/arch/x86/built_in.o]
Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [/home/tamura/Developer/kemari-v1-devel.hg/xen/xen] Error 2
make[1]: *** [install] Error 2
make: *** [install-xen] Error 2
>
> Please fix and re-send.
>
> Thanks,
> Keir
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
>
--
TAMURA, Yoshiaki
NTT Cyber Space Labs
OSS Computing Project
Kernel Group
E-mail: tamura.yoshiaki@lab.ntt.co.jp
TEL: +81-46-859-2771
FAX: +81-46-855-1152
Address: 1-1 Hikarinooka, Yokosuka
Kanagawa 239-0847 JAPAN
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix arguments passed to SHADOW_PRINTK
2008-09-11 11:24 ` Yoshiaki Tamura
@ 2008-09-11 11:42 ` Gianluca Guida
2008-09-11 11:56 ` Yoshiaki Tamura
0 siblings, 1 reply; 6+ messages in thread
From: Gianluca Guida @ 2008-09-11 11:42 UTC (permalink / raw)
To: Yoshiaki Tamura; +Cc: xen-devel, Keir Fraser
Yoshiaki Tamura wrote:
> Keir and Gianluca,
>
> When I compiled xen-3.3-testing with DEBUG_TRACE_DUMP turned on,
> I got the following errors. Would you please tell me how to work around?
>
> multi.c: In function 'sh_page_fault__guest_2':
> multi.c:3045: error: 'struct cpu_user_regs' has no member named 'rip'
Using regs->eip should work both on 32 and 64 bit.
Thanks,
Gianluca
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix arguments passed to SHADOW_PRINTK
2008-09-11 11:42 ` Gianluca Guida
@ 2008-09-11 11:56 ` Yoshiaki Tamura
0 siblings, 0 replies; 6+ messages in thread
From: Yoshiaki Tamura @ 2008-09-11 11:56 UTC (permalink / raw)
To: Gianluca Guida; +Cc: xen-devel, Keir Fraser
Gianluca,
Thanks for your comment.
The following is the fixed patch.
Thanks,
Yoshi
Signed-off-by: Yoshi Tamura <tamura.yoshiaki@lab.ntt.co.jp>
diff -r bfd1157dd315 xen/arch/x86/mm/shadow/common.c
--- a/xen/arch/x86/mm/shadow/common.c Thu Sep 11 08:06:48 2008 +0900
+++ b/xen/arch/x86/mm/shadow/common.c Thu Sep 11 11:42:40 2008 +0900
@@ -700,8 +700,8 @@ static void _sh_resync(struct vcpu *v, m
& ~SHF_L1_ANY));
ASSERT(!sh_page_has_multiple_shadows(mfn_to_page(gmfn)));
- SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx, va=%lx\n",
- v->domain->domain_id, v->vcpu_id, mfn_x(gmfn), va);
+ SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx\n",
+ v->domain->domain_id, v->vcpu_id, mfn_x(gmfn));
/* Need to pull write access so the page *stays* in sync. */
if ( oos_remove_write_access(v, gmfn, fixup) )
@@ -952,8 +952,8 @@ int sh_unsync(struct vcpu *v, mfn_t gmfn
ASSERT(shadow_locked_by_me(v->domain));
- SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx va %lx\n",
- v->domain->domain_id, v->vcpu_id, mfn_x(gmfn), va);
+ SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx\n",
+ v->domain->domain_id, v->vcpu_id, mfn_x(gmfn));
pg = mfn_to_page(gmfn);
diff -r bfd1157dd315 xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c Thu Sep 11 08:06:48 2008 +0900
+++ b/xen/arch/x86/mm/shadow/multi.c Thu Sep 11 11:46:48 2008 +0900
@@ -3041,9 +3041,9 @@ static int sh_page_fault(struct vcpu *v,
int fast_emul = 0;
#endif
- SHADOW_PRINTK("d:v=%u:%u va=%#lx err=%u, rip=%lx\n",
+ SHADOW_PRINTK("d:v=%u:%u va=%#lx err=%u, eip=%lx\n",
v->domain->domain_id, v->vcpu_id, va, regs->error_code,
- regs->rip);
+ regs->eip);
perfc_incr(shadow_fault);
Gianluca Guida wrote:
>
>
> Yoshiaki Tamura wrote:
>> Keir and Gianluca,
>>
>> When I compiled xen-3.3-testing with DEBUG_TRACE_DUMP turned on,
>> I got the following errors. Would you please tell me how to work around?
>>
>> multi.c: In function 'sh_page_fault__guest_2':
>> multi.c:3045: error: 'struct cpu_user_regs' has no member named 'rip'
>
> Using regs->eip should work both on 32 and 64 bit.
>
> Thanks,
> Gianluca
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
>
--
TAMURA, Yoshiaki
NTT Cyber Space Labs
OSS Computing Project
Kernel Group
E-mail: tamura.yoshiaki@lab.ntt.co.jp
TEL: +81-46-859-2771
FAX: +81-46-855-1152
Address: 1-1 Hikarinooka, Yokosuka
Kanagawa 239-0847 JAPAN
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-09-11 11:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-11 10:44 [PATCH] Fix arguments passed to SHADOW_PRINTK Yoshiaki Tamura
2008-09-11 10:49 ` Gianluca Guida
2008-09-11 11:00 ` Keir Fraser
2008-09-11 11:24 ` Yoshiaki Tamura
2008-09-11 11:42 ` Gianluca Guida
2008-09-11 11:56 ` Yoshiaki Tamura
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.