From: James B. <James.Bottomley@SteelEye.com> - 2006-04-06 02:39:18
|
On Tue, 2006-04-04 at 18:07 +0200, Miklos Szeredi wrote: > > No, because if you look at the implementation, you'll see that > > copy_to/from_user() copy straight into the user view (i.e. via the user > > cache lines). > > Yes. But how will this ensure that the above problems (dirty/clean > cache lines in aliases) won't cause any problems? It doesn't. The object is to write into the user cache as though the actual user process had done it (i.e. disregarding all aliasing). > What is the difference between > > - updating cached data through the user view > > - flushing the cache lines for the user view, then updating data > through the kernel view and finally flushing the cache lines for > the kernel view In the former, the data usually ends up in dirty user cache lines. In the latter the cache lines are entirely clean after the procedure. > I don't see in either case that the cache lines for any other aliases > are touched. Is there still some difference in behavior? Yes, in the former, only a single alias (the user view) is affected. In the latter, all views are accounted for. James |