Messages in this thread | | | From | "Petr Vandrovec" <> | Date | Thu, 17 Feb 2000 21:46:31 MET-1 | Subject | Re: matroxfb, console switches, and BP6 SMP |
| |
Sorry for late reply, but I somewhat missed your original posting.
> Every single one of these crashes (4 so far) has happened that way - it's > waaaay too consistent to be hardware. Which applications are you running and what Matrox hardware is it? > The memory, disks, scsi cards, video card, netcards, case, power supply, and > modem (basically, everything except the BP6, chips, and fans) have been > perfectly stable (several ~100 day uptimes) even with a celeron 300 running > at 375 (4.5*83.3). Symptom you described (character painted into half - and damaged) happens only when someone else tries to write data to accelerator while ILOAD accelerated operation is processed. Are you running some tty output intensive application on one of VT in question? Is accelerated X server one of VT? Maybe there is some lock missing somewhere... If kernel is older than 2.3.46-pre2, you can try to enable MATROXFB_DEBUG_REENTER in matroxfb and look whether you'll get some error message about reentrancy in the log (is printk() on your system printing to console? Often?) There are two workarounds - either you can disable matroxfb acceleration at all, as already pointed by J. Simmons, or you can boot with video=matrox:fastfont:40960 - it will disable ILOAD operations at cost of 40KB of available video RAM. If you'll be able to trace down reason, why driver is reentered, I'm interested in your data - there should be only one reason for reentering - - printk(). If you do not run real-time tasks on your system, you can also replace CRIT_BEGIN with spin_lock_irqsave(some_global_spinlock, some_local_variable); and CRIT_END with spin_unlock_irqrestore(some_global_spinlock, some_local_variable); It is 100% safe and probably preferred solution - but it can disable interrupts for way too long. But it should not be an issue on SMP system (but I never benchmarked it). If you are using 2.3.46-pre2 or newer kernel, you'll have either restore CRIT_BEGIN/CRIT_END in driver (all these strategicaly placed macros were removed by someone when removing CONSOLE_BH... :-( ), or download G400 dualhead patch from ftp://platan.vc.cvut.cz/pub/linux/matrox-lastest/maven-000216-for-2.3.46-pre3.gz. But 2.3.46-pre2 and newers contains some changes in this area, so maybe that problem does not exist anymore. Best regards, Petr Vandrovec vandrove@vc.cvut.cz
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |