On Fri, 2015-09-04 at 09:58 -0700, Jesse Barnes wrote:
> I've been carrying something looking rougly like this patchset around
> internally for a long time now, and with SKL out there now, I figured
> it's time to get it posted and start the process of integration.
> 
> David is working on pulling over most of the "driver based PASID
> handling" and other code into the IOMMU layer, but the integration with
> the rest of the driver needs some careful thought (handling task
> referencing along with context referencing, context creation, etc.)

I've pushed an early version of that to
http://git.infradead.org/users/dwmw2/linux-svm.git/shortlog/refs/heads/i915-svm

I don't have page fault handling yet, but I've at least got it to the
point where gem_svm_sanity will succeed. I'll work on page faults next.

However, I couldn't get your current tree to work (even with driver
-mode SVM); I did this based on an older internal (svm-on-iommu-fences)
branch and have blindly ported the patch across.

I get this:

 # ./gem_svm_sanity
using GPU to write 0xdead0000 to 0xca4860
value mismatch: read 0x00000000, expected 0xdead0000

And this:

[  105.490459] ------------[ cut here ]------------
[  105.495756] WARNING: CPU: 2 PID: 1254 at 
drivers/gpu/drm/i915/intel_ringbuffer.c:2214 
intel_ring_reserved_space_reserve+0x47/0x80 [i915]()
[  105.509917] WARN_ON(ringbuf->reserved_size)
[  105.514497] Modules linked in: tun nf_conntrack_netbios_ns 
nf_conntrack_broadcast ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 
nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack 
nf_conntrack ebtable_nat ebtable_broi
[  105.614355] CPU: 2 PID: 1254 Comm: gem_svm_sanity Tainted: G        W I     
4.2.0-rc8+ #2
[  105.623680] Hardware name: Intel Corporation Skylake Client platform/Skylake 
Y LPDDR3 RVP3, BIOS SKLSE2R1.R00.X090.B01.1506290657 06/29/2015
[  105.638023]  ffffffffa026ed38 ffff880080093b98 ffffffff81703e35 
0000000000000000
[  105.646566]  ffff880080093be8 ffff880080093bd8 ffffffff810916a6 
ffff880169e40000
[  105.655100]  ffff88003f96a400 00000000000000a0 ffff880080093ce0 
ffff88003f45b200
[  105.663598] Call Trace:
[  105.666392]  [<ffffffff81703e35>] dump_stack+0x45/0x57
[  105.672252]  [<ffffffff810916a6>] warn_slowpath_common+0x86/0xc0
[  105.679119]  [<ffffffff81091726>] warn_slowpath_fmt+0x46/0x50
[  105.685705]  [<ffffffffa01e7c57>] 
intel_ring_reserved_space_reserve+0x47/0x80 [i915]
[  105.694567]  [<ffffffffa01e23bf>] intel_logical_ring_reserve_space+0x1f/0x30 
[i915]
[  105.703303]  [<ffffffffa01d0ef7>] i915_gem_request_alloc+0x107/0x1b0 [i915]
[  105.711274]  [<ffffffffa0226c8d>] i915_fence_create_ring+0x2d/0x190 [i915]
[  105.719121]  [<ffffffffa024f334>] intel_exec_mm_ioctl+0x224/0x3a0 [i915]
[  105.726806]  [<ffffffffa00d7409>] drm_ioctl+0x129/0x4d0 [drm]
[  105.733372]  [<ffffffffa024f110>] ? i915_getparam+0x260/0x260 [i915]
[  105.740601]  [<ffffffff810bef2c>] ? __enqueue_entity+0x6c/0x70
[  105.747282]  [<ffffffff810c4afe>] ? set_next_entity+0x6e/0x400
[  105.753976]  [<ffffffff81209645>] do_vfs_ioctl+0x285/0x460
[  105.760233]  [<ffffffff812f711d>] ? selinux_file_ioctl+0x4d/0xc0
[  105.767079]  [<ffffffff812eecc3>] ? security_file_ioctl+0x43/0x60
[  105.774026]  [<ffffffff81209899>] SyS_ioctl+0x79/0x90
[  105.779812]  [<ffffffff81709c2e>] entry_SYSCALL_64_fastpath+0x12/0x71
[  105.787152] ---[ end trace 633908b4ba32bd71 ]---

And as we discussed a little while ago, I always see this:
     ioctl(5, SYNC_IOC_WAIT, 0xffffffff)     = -1 EFAULT (Bad address)
... so I've just stuck a sleep(5) in there to get the test to succeed.

-- 
David Woodhouse                            Open Source Technology Centre
david.woodho...@intel.com                              Intel Corporation

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to