public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* __copy_user exception handling
@ 2005-07-29 22:10 Matt Chapman
  2005-07-29 23:23 ` Chen, Kenneth W
  2005-07-29 23:33 ` Matt Chapman
  0 siblings, 2 replies; 3+ messages in thread
From: Matt Chapman @ 2005-07-29 22:10 UTC (permalink / raw)
  To: linux-ia64

The main __copy_user loop looks like this:

2:
        EX(.failure_in3,(p16) ld8 val1[0]=[src1],16)
(p16)   ld8 val2[0]=[src2],16

        EX(.failure_out, (EPI)  st8 [dst1]=val1[PIPE_DEPTH-1],16)
(EPI)   st8 [dst2]=val2[PIPE_DEPTH-1],16
        br.ctop.dptk 2b

What I'm trying to understand is why there is no EX necessary on the
second store.  As far as I understand the implementation, src is 16-byte
aligned here, so there is no need for EX on the second load, since it
necessarily hits the same page.  But dst is only 8-byte aligned, so I
would think that the second store could fault.

I've done some testing and for some reason it doesn't seem to be a
problem in Linux; I haven't been able to produce an oops.  But I've hit
oopses in Xen (we use the same code), and so I'm trying to understand
*why* it's not a problem in Linux.

Does anyone have some insight?

Matt


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

end of thread, other threads:[~2005-07-29 23:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-29 22:10 __copy_user exception handling Matt Chapman
2005-07-29 23:23 ` Chen, Kenneth W
2005-07-29 23:33 ` Matt Chapman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox