<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - i915.ko corrupt text lines at top, [drm] GPU HANG: ecode 2:0:0x037fffc1, reason: Ring hung"
href="https://bugs.freedesktop.org/show_bug.cgi?id=96473#c14">Comment # 14</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - i915.ko corrupt text lines at top, [drm] GPU HANG: ecode 2:0:0x037fffc1, reason: Ring hung"
href="https://bugs.freedesktop.org/show_bug.cgi?id=96473">bug 96473</a>
from <span class="vcard"><a class="email" href="mailto:fdporg@vega.pgw.jp" title="Taketo Kabe <fdporg@vega.pgw.jp>"> <span class="fn">Taketo Kabe</span></a>
</span></b>
<pre>Created <span class=""><a href="attachment.cgi?id=124540" name="attach_124540" title="dmesg, drm.debug=6">attachment 124540</a> <a href="attachment.cgi?id=124540&action=edit" title="dmesg, drm.debug=6">[details]</a></span>
dmesg, drm.debug=6
Better (or worse) solution:
Hardcode that first 1MB of stolen memory is really reserved in 865G.
diff -p -U6 ./drivers/gpu/drm/i915/i915_gem_stolen.c.ville
./drivers/gpu/drm/i915/i915_gem_stolen.c
--- ./drivers/gpu/drm/i915/i915_gem_stolen.c.ville 2016-06-08
10:23:53.000000000 +0900
+++ ./drivers/gpu/drm/i915/i915_gem_stolen.c 2016-06-15 14:59:55.000000000
+0900
@@ -116,12 +116,13 @@ static unsigned long i915_stolen_to_phys
* one to be allocated by the BIOS?
*/
pci_bus_read_config_word(dev->pdev->bus, PCI_DEVFN(0, 0),
I865_TOUD, &toud);
base = toud << 16;
+ base += 1024 * 1024; /* FIXME assume first 1MB is really
reserved */
} else if (IS_I85X(dev)) {
u32 tseg_size = 0;
u32 tom;
u8 tmp;
pci_bus_read_config_byte(dev->pdev->bus, PCI_DEVFN(0, 0),
This also works on real machine. No text corruption, no GPU HANG.
After these,
I'm beginning to think that <a href="show_bug.cgi?id=96473#c13">Comment 13</a> fix is nontheless right, because
- I865_TOUD is in "Reserved" region of 865G's PCI config registers.
Depending on it is wrong, even if it holds sane value in practice.
- It looks like reserved memory is really reserved and not reusable for
/dev/fb0 .
VGA BIOS et al is sitting there.
Ville Syrjala in <a href="https://patchwork.kernel.org/patch/3448921/">https://patchwork.kernel.org/patch/3448921/</a>
claimed that 865G is bit different and needs verify on a real system.
Maybe noone had tested on real system since.
865G is a decade-old chipset; for enterprise level, so maybe not worth effort
to claim panic-proof /dev/fb0 region.
For others, "it works" is important and <a href="show_bug.cgi?id=96473#c13">Comment 13</a> fix is enough.
Any thoughts?
The reason I'm sticking to this problem is that I use CentOS 6
on 865G machine, and upstream RHEL6.8 started retrofitting
kernel 4.4 drivers/gpu/drm/ code onto kernel 2.6.32 (amazing!).</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
<li>You are the QA Contact for the bug.</li>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>