14 messages in com.xensource.lists.xen-ia64-develRE: [Xen-ia64-devel] PATCH [resend]: ...
FromSent OnAttachments
Tristan Gingold14 Apr 2006 04:35.diffs
Xu, Anthony14 Apr 2006 07:37 
Tristan Gingold18 Apr 2006 01:44 
Tristan Gingold19 Apr 2006 00:33 
Tian, Kevin19 Apr 2006 00:57 
Xu, Anthony19 Apr 2006 21:28 
Tristan Gingold20 Apr 2006 06:15 
Xu, Anthony21 Apr 2006 00:44 
Tristan Gingold21 Apr 2006 00:52 
Xu, Anthony21 Apr 2006 00:54 
Xu, Anthony21 Apr 2006 01:01 
Tristan Gingold21 Apr 2006 01:04 
Xu, Anthony21 Apr 2006 01:05 
Tristan Gingold21 Apr 2006 01:22 
Subject:RE: [Xen-ia64-devel] PATCH [resend]: more case handled in mmio.c
From:Xu, Anthony (anth@intel.com)
Date:04/21/2006 12:44:56 AM
List:com.xensource.lists.xen-ia64-devel

One more comment. /* Write high word. FIXME: this is a kludge! */ v.u.bits[1] &= 0x3ffff; This seems not be necessary. v is got by stf.spill, stf.spill makes sure the high 47 bits of v.u.bits[1] is 0.

Thanks, -Anthony

-----Original Message----- From: Tristan Gingold [mailto:Tris@bull.net] Sent: 2006?4?20? 21:16 To: Xu, Anthony; xen-@lists.xensource.com; Alex Williamson Subject: Re: [Xen-ia64-devel] PATCH [resend]: more case handled in mmio.c

Le Jeudi 20 Avril 2006 06:28, Xu, Anthony a écrit :

From: Tristan Gingold

Sent: 2006?4?18? 16:44 Correct, but this doesn't happen in the mmio case, because fp_reg_disabled is tested before doing the memory access.

I didn't find where fp_reg_disabled is tested:-)

The processor does it.

If we only emulate stf.spill and stf8, yes fp fault doesn't happen.

Yes.

But if we need to emulate ldf, definitely fp fault will happen,

Yes, but in this case we don't call vcpu_get_fpreg!

The sequence of emulating ldf maybe, Mmio_access( , , , , ,IOREQ_READ) Vcpu_set_fpreg( ) Mmio_access will cause domain_switch, When switch back, psr.dfh is set, Then when executing vcpu_set_fpreg, fp fault happens.

And I had found Xwindow use ldfp8 instruction to access frame buffer. BTW, Where did you find stf.spill and stf8 are used to access mmio?

memset.

Can we address this issue like below? #ifdef XEN #define ia64_fph_enable() #define ia64_fph_disable() #else #define ia64_fph_enable() do { ia64_rsm(IA64_PSR_DFH); ia64_srlz_d(); } while (0) #define ia64_fph_disable() do { ia64_ssm(IA64_PSR_DFH); ia64_srlz_d(); } while (0) #endif //XEN

This makes sure there is no fp fault happening within xen.

I am quiet sure we need the ia64_fph_enable before saving fp regs!

Yes later on if we want to use lazy fp algorithm within xen, we should revisit this.

Sure.

Thanks, Tristan.