Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-11-18 Thread Daniel Vetter
On Thu, Nov 17, 2011 at 21:52, Keith Packard kei...@keithp.com wrote: On Wed, 28 Sep 2011 11:57:24 +0200, Daniel Vetter daniel.vet...@ffwll.ch wrote: +     char __user *end = uaddr + size - 1; ... +     if (ret == 0) { +             if (((unsigned long)uaddr PAGE_MASK) != +            

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-11-18 Thread Keith Packard
On Fri, 18 Nov 2011 10:12:38 +0100, Daniel Vetter daniel.vet...@ffwll.ch wrote: We want to prefault the last byte if the pfn of the last prefault address doesn't match the pfn of the last byte of the userspace address range. Only happens when userspace hands in badly aligned address, not

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-11-17 Thread Keith Packard
On Wed, 28 Sep 2011 11:57:24 +0200, Daniel Vetter daniel.vet...@ffwll.ch wrote: + char __user *end = uaddr + size - 1; ... + if (ret == 0) { + if (((unsigned long)uaddr PAGE_MASK) != + ((unsigned long)end PAGE_MASK)) +

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-11-03 Thread Keith Packard
On Mon, 24 Oct 2011 00:11:57 +0200, Daniel Vetter dan...@ffwll.ch wrote: This patch only fixes things up so that we prefault the entire page range and not just the first PAGE_SIZE bytes (i.e. at most 2 pages). So I don't see the risk of extending the current behaviour to all pages. Userspace

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-11-03 Thread Daniel Vetter
On Thu, Nov 03, 2011 at 02:06:55PM -0700, Keith Packard wrote: On Mon, 24 Oct 2011 00:11:57 +0200, Daniel Vetter dan...@ffwll.ch wrote: This patch only fixes things up so that we prefault the entire page range and not just the first PAGE_SIZE bytes (i.e. at most 2 pages). So I don't see

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-10-23 Thread Daniel Vetter
Hi Keith, This patch isn't in your -next pull. This papers over a spurious -EFAULT in the pwrite/pread paths that actually gets hit in the wild. The real fix in the form of a almost complete rewrite of the pwrite/pread paths won't be ready for 3.2. Do you want me to implement Chris'

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-10-23 Thread Daniel Vetter
Oosp, forgotten to actually put Keith on the To: ... not enough coffee, yet. -Daniel On Sun, Oct 23, 2011 at 12:18:30PM +0200, Daniel Vetter wrote: Hi Keith, This patch isn't in your -next pull. This papers over a spurious -EFAULT in the pwrite/pread paths that actually gets hit in the wild.

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-10-23 Thread Keith Packard
On Sun, 23 Oct 2011 12:18:30 +0200, Daniel Vetter dan...@ffwll.ch wrote: Hi Keith, This patch isn't in your -next pull. This papers over a spurious -EFAULT in the pwrite/pread paths that actually gets hit in the wild. The real fix in the form of a almost complete rewrite of the pwrite/pread

Re: [Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-10-23 Thread Daniel Vetter
On Sun, Oct 23, 2011 at 12:23:47PM -0700, Keith Packard wrote: On Sun, 23 Oct 2011 12:18:30 +0200, Daniel Vetter dan...@ffwll.ch wrote: Hi Keith, This patch isn't in your -next pull. This papers over a spurious -EFAULT in the pwrite/pread paths that actually gets hit in the wild. The

[Intel-gfx] [PATCH 2/2] drm/i915: properly prefault for pread/pwrite

2011-09-28 Thread Daniel Vetter
The helper functions used are designed for pagecache io and splice, i.e. they prefault at most PAGE_SIZE bytes spanning at most 2 pages. pread/pwrite want to write/read much more to avoid dropping the struct_mutex lock in between. So write our helper function to prefault. We're the only user of