crash while switching vts between x and console

rob rob at dragonflybsd.org
Mon Nov 1 04:50:30 PDT 2010


rob wrote:

> Matthew Dillon wrote:
> 
>> 
>> : dumped core - see /var/crash/vmcore.0
>> :
>> :Sun Oct 31 00:39:05 PDT 2010
>> :
>> :Version String: DragonFly v2.9.0.89.gcd3c6-DEVELOPMENT #2: Sat Oct 30
>> :14:14:38 PDT 2010 root@:/usr/obj/usr/src/sys/EAGLE
>> :
>> :panic: assertion: gd->gd_spinlocks_wr == 0 in bsd4_schedulerclock
>> :...
>> :exchange_scr(c05674a0,fffffffd,20007604,cec3f880,d22b8b80) at
>> :exchange_scr+0x138
>> :finish_vt_rel(d22b8c18,7,c064a7a0,c286ca98,c02bc049) at
>> :finish_vt_rel+0x55 scioctl(d22b8b8c,c05619a8,cecf3110,20007604,d22b8c18)
>> :at scioctl+0xae5 dev_dioctl(cecf3110,20007604,d22b8c18,7,cc850620) at
>> :dev_dioctl+0xb0
>> :devfs_fo_ioctl(cc8737f0,20007604,d22b8c18,cc850620,d22b8cf0) at
>> 
>>     Try removing the crit_exit/crit_enter in do_switch_scr().
>> 
>>     /usr/src/sys/dev/misc/syscons/syscons.c line ~2540
>> 
>> static void
>> do_switch_scr(sc_softc_t *sc)
>> {
>>     lwkt_gettoken(&tty_token);
>>     vt_proc_alive(sc->new_scp);
>> 
>>     crit_exit();              <--- remove
>>     exchange_scr(sc);         (keep)
>>     crit_enter();             <--- remove
>>     /* sc->cur_scp == sc->new_scp
>> 
>>     -Matt
> this appears to help in 32bit mode.. I will try it in 64 bit mode which
> currently crashes everytime I change from X to a vty
> 
> RG
I can confirm that this fixes the issue as well as apperantly a spurious
issue that I was having with pressing the scoll lock key during dmesg
causing a panic that did not result in dropping core or going to the
debugger. 

In short:
 386 up works  now
 386 SMP works now
X86_64 up works now
X86_64 SMP works now

before when switching back and forth between vts and X you would get a panic
frequently but not always under 386 up/ and smp
with X86_64 up and xmp it was always.. i.e. every time you tried it would
panic. 

It does this no longer . 

RG





More information about the Bugs mailing list