ATI + NVIDIA

家人がATI RS480チップセットのPCを使っていて、NVIDIAの7900GSベースのビデオカードに交換したら3時間ほどでXPがBoDで死ぬというので見てみたら、0x000000EA(THREAD_STUCK_IN_DEVICE_DRIVER)が発生していた。ドライバのバージョンとか変えてみたけど改善しなかった。

原因を想像してみたのだが、ドライバの一部がスワップアウトする→ドライバのスレッドが走れなくなって待ちキューに入る→何らかの不具合で実行されなくなる→死ぬ、ってパターンなのかなと想像して、窓の手で「カーネルを常に物理メモリに配置」(HKLM...Memory ManagementのDisablePagingExecutive)に変更して様子を見てもらったら、とりあえず死ななくなったらしい。

さらにググったら
http://www.nvnews.net/vbulletin/showthread.php?t=64682
http://www.nvnews.net/vbulletin/showthread.php?t=64682&page=5
どうもTurboCacheを搭載してると死ぬ模様。Windows XPだとOKでLinuxだとだめとか書いてある。

ビデオメモリが足りなくなったらメインメモリから割り当てるというのは、ソフトウェア的にもハードウェア的にもシビアな操作が必要で、いかにもバグを誘発しそうな感じの機能だ。ATIチップセットにも似たような機能が入ってるようなのでその辺が影響してるのかも。