Summary: | [SNA 865g] sna/kgem.c:2192: Assertion `kgem->nbatch <= ((kgem)->batch_size-1)' failed | ||
---|---|---|---|
Product: | xorg | Reporter: | tka <tka> |
Component: | Driver/intel | Assignee: | Chris Wilson <chris> |
Status: | CLOSED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
tka
2012-10-06 19:56:01 UTC
You are hitting this because 865g has to use tiny batches due to a hardware bug... However, the error lies in the earlier operation that failed to account correctly for the space it used. Can you please reproduce with --enable=debug=full? (In reply to comment #1) > Can you please reproduce with --enable=debug=full? Interestingly, I can not. I can reproduce it with plain --enable-debug. In this case, I just have to run something that writes a lot in a terminal (rsync) and start firefox. Within a few seconds of using firefox, the assertion fails. However, that does not work with --enable-debug=full. So, I will continue using --enable-debug=full and hope to catch that thing eventually. Added a pair of assertions that I hope will fire earlier: commit d2a26adc8e7b02aea204101f207f740bbde62414 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Sun Oct 7 08:59:32 2012 +0100 sna/gen2: Add a couple of assertions to track down a batch overflow References: https://bugs.freedesktop.org/show_bug.cgi?id=55700 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Still no luck with --enable-debug=full. With plain --enable-debug, it is still the assertion in kgem.c:2192 that fails. By the way, at the time of the failure, kgem->nbatch=1024 and kgem->batch_size=1024, so it is off by one. Just to be clear: you continue to get the same assertion in _kgem_submit() after applying today's new assertions? In which case I've miscounted how many dwords are required for an op... If you can also dump the last 20 or so elements of the batch, that should help identify the who overran. (In reply to comment #5) > Just to be clear: you continue to get the same assertion in _kgem_submit() > after applying today's new assertions? Yes, with today's patches applied, I still trigger the same assertion as before. (In reply to comment #6) > If you can also dump the last 20 or so elements of the batch, that should > help identify the who overran. I will do this later today. (gdb) p kgem->batch[1000]@25 $3 = {4278255360, 4278255360, 0, 0, 1228931073, 62128128, 62193673, 1228931073, 62193664, 62980097, 1228931073, 62193672, 62980105, 1228931073, 62980096, 63045641, 1425014790, 63709184, 1265, 63112448, 16777216, 0, 64, 42991616, 0} (Everything else is as before.) Thanks for the grabbing the batch, I believe this should fix it: commit 2ac3776be85d857a57ce7b742e52cd6091d2befb Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Sun Oct 7 22:41:25 2012 +0100 sna: Check that we have sufficient space for a copy when replacing a fill Reported-by: Timo Kamph <timo@kamph.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55700 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> After a first test, it seems to be fixed. I will test it more thoroughly tomorrow. However, kgem_check_exec_and_reloc() is undeclared in sna_io.c. The calls were introduced in commit 1a5d5b9a. Looks good, no failure so far. Thanks. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.