Date: Wed, 12 May 2004 22:30:53 -0700 From: Marcel Moolenaar <marcel@xcllnt.net> To: Arun Sharma <arun.sharma@intel.com> Cc: freebsd-ia64@freebsd.org Subject: Re: invala Message-ID: <20040513053053.GA4487@dhcp01.pn.xcllnt.net> In-Reply-To: <40A2D3D7.4030804@intel.com> References: <40A2A0A2.8040004@intel.com> <20040512232827.GB45389@ns1.xcllnt.net> <40A2D3D7.4030804@intel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, May 12, 2004 at 06:48:07PM -0700, Arun Sharma wrote: > On 5/12/2004 4:28 PM, Marcel Moolenaar wrote: > > >On Wed, May 12, 2004 at 03:09:38PM -0700, Arun Sharma wrote: > >> > >>I noticed that the code in exception.S:TRAP() doesn't invalidate the ALAT > >>on a register backing store switch. This could be a problem if the kernel > >>starts using data speculation (say by using a different compiler). > >>However, restorectx is doing the right thing by using invala. > > > >Why would this be a problem? > > The kernel data speculation might introduce entries into the ALAT which > might cause the user data speculation to think that the speculation > (advanced load) succeeded, when in fact it has failed. True. But doesn't a rfi instruction restore RSE.BOF, and thus preserve the virtual to physical register mapping? Note also that we have the EPC syscall path (sys/ia64/ia64/syscall.S), where we also switch stacks, but we do not have the rfi on our way out. This could mean that we actually do need an invala in that case. I do not know under which conditions RSE.BOF is preserved... -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040513053053.GA4487>