On Fri, Sep 13, 2013 at 7:33 AM, Thomas Hellstrom <thellstrom@xxxxxxxxxx> wrote: > Given that all copy_to_user / copy_from_user paths are actually hit during > testing, right? Ime it requires a bit of ingenuity to properly test this from userspace. We're using a few tricks in drm/i915 kernel testing: - When we hand a gtt mmap pointer to execbuf or other ioctls we upload the data in there through pwrite (or if you don't have that use the gpu to blt it there). This way you can careful control when the pagefault will happen. Also since we supply correct data we can make sure that the kernel actually does the right thing and not just whether it'll blow up. - We have a module parameter which can be changed at runtime to disable all the prefaulting we're doing. - We have a debugfs interface to drop caches/evict lrus. If you have a parallel thread that regularly forces the inactive list to be evicted we can force a refault even after the first fault already happend. That's useful to test the slowpath after a slowpath already happened, e.g. when trying to copy reloc offset out to userspace after execbuf completed. With these tricks we have imo great test coverage for i915.ko and more important good assurance that any regressions in this tricky code will get caught. Cheers, Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx