Re: matroxfb, console switches, and BP6 SMP

From: Petr Vandrovec (VANDROVE@vc.cvut.cz)
Date: Thu Feb 17 2000 - 23:38:04 EST


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/



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:20 EST