Opened 14 years ago

Last modified 14 years ago

#5383 closed bug

MTRR regression: AGP transfer inconsistencies — at Version 1

Reported by: rudolfc Owned by: nobody
Priority: normal Milestone: R1
Component: - General Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by rudolfc)

Since hrev34197 MTRR doesn't work OK anymore on my ASUS P4 mainboard with AGP slot.

The nvidia kerneldriver maps a 1Mb buffer using MTRR-WC in main system memory. This buffer is written to by the CPU, and it's read by the GPU using AGP transfers. It turns out that the GPU sees an inconsistently written buffer which results in old / partially degraded commands being executed by the engine, resulting in an engine hang in the end. Using PCI transfers this problem doesn't occur. If I relocate the buffer to gfx memory, this problem doesn't occur. If I disable MTRR-WC mapping in the kerneldriver the problem remains in AGP.

On PCIe systems this problem doesn't exist.

hrev34190 is OK, hrev34203 is not OK. From the changes in between I think hrev34197 must be the problem. Note: BeOS also is OK on this system! (dano/R5). I tested hrev35431: still not OK, same symptoms as hrev34203.

Please have a look at the MTRR changes in relation to the nVidia kerneldriver!

The reason the problem only now surfaces is that acceleration engines are currently not used in Haiku. In order to test you need to use acceleration commands.

Thanks in advance!

Change History (4)

by rudolfc, 14 years ago

Attachment: syslog_mtr_ok_r34190 added

syslog on OK revision hrev34190

by rudolfc, 14 years ago

Attachment: syslog_mtr_err_r34203 added

syslog on error revision hrev34203

by rudolfc, 14 years ago

Attachment: syslog_mtr_err_r35431 added

syslog on error revision hrev35431

comment:1 by rudolfc, 14 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.