On Tue, Jun 17, 2014 at 09:03:00PM +0300, ville.syrjala@xxxxxxxxxxxxxxx wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Take the minimum of the object size and the vma size and prefault > only that much. Avoids a SIGBUS when mmapping only a portion of the > object. > > Prefaulting was introduced here: > commit b90b91d87038f6b257b40a02b42ed4f9705e06f0 > Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Date: Tue Jun 10 12:14:40 2014 +0100 > > drm/i915: Prefault the entire object on first page fault > > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 6f8c206..4ef80d1 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -1578,9 +1578,12 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) > pfn >>= PAGE_SHIFT; > > if (!obj->fault_mappable) { > + unsigned long size = min_t(unsigned long, > + vma->vm_end - vma->vm_start, > + obj->base.size); The vma should be the same size as the obj... Unless it gets coalesced... I wonder if that is even legal for our objects because I was under the impression that we depended upon it in other places. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx