Subject: Re: UBC problems
To: None <M.Drochner@fz-juelich.de>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
Date: 01/14/2005 22:59:59
This is a multipart MIME message.
Content-Type: text/plain; charset=us-ascii
just two comments:
-I can easily reproduce the problem with a simple patch to
copyin() on i386, a patch which models the prefetch needed
by architectures which don't like unaligned memory accesses.
I'll append it. WARNING: it might cause data corruption.
So I'd say this is not alpha specific; it is just a question
of copyout() implementation. (btw, i386 might benefit from
using an optimized memcpy() within copyin()/copyout())
-I now believe that the best way to deal with this would be to
have UBC reads just return zero filled pages if the file is
not backed with real data, and let upper layers (above the
trap handler) check whether the read is legal. Just commenting
out the range check in genfs_getpages() isn't enough,
unfortunately. That's a pretty complex matter...
Content-Type: text/plain ; name="dummyread.txt"; charset=us-ascii
Content-Disposition: attachment; filename="dummyread.txt"
--- locore.S.~1.31.~ Mon Aug 30 11:10:42 2004
+++ locore.S Fri Jan 14 21:49:00 2005
@@ -1025,6 +1025,9 @@ ENTRY(i386_copyin)
+ /* XXX noop, trigger ubc problem */
+ movb (%edi),%cl
/* bcopy(%esi, %edi, %eax); */