Hi,

I've decided to finally start playing with -current a day or five ago.
One of the first experiences was a funny syscons keyboard freeze when
using a custom kernel with 'options VESA' and the logo_saver kernel module.

The symptoms: after the saver relinquishes control, the keyboard is kind of
frozen; 'kind of', because the controlling keys still work - Alt+Fx switches
consoles, Ctrl-PrtScr escapes to DDB, Alt-arrows also switch consoles.
However, any 'real' key typed has no effect - nothing appears on the screen
and no action is taken - not on the login prompt, not on the shell cmdline,
not within an editor.  Even Ctrl-Alt-Del is ignored :(  The only way to
restart the system is by calling restart or panic inside DDB.

Attached is my kernel config (derived from GENERIC), and a backtrace of
the panic crashdump.  More details, including the crashdump and the kernels
(booted and debugging) shall be posted shortly on a website - they are 
currently being uploaded via a slow modem link, and the vmcore is *huge*,
even when bzipped :)  The webpage index is already there, so are the debug
logs and the kernel images, the vmcore shall take a bit longer to arrive.

Details at http://mail.orbitel.bg/~roam/crash/logo_vesa.html
The *.2.* files are from a -current source tree as of Dec 10, 16:58 EEST.
The *.1.* files are from a source tree as of.. mm.. yesterday, I think;
however, I do not think many relevant changes have been made to either
syscons or the logo_saver source in the meantime.

If I'm doing something much wrongly, feel free to beat me up with the
heaviest cluestick around :)

G'luck,
Peter

PS. I do not know anything about the syscons/saver interaction; as a matter
of fact, i know next to nothing about syscons itself.  So things might take
a bit of handholding here :)

PPS. Please CC: me, as I'm not on -current (or just honor the Mail-Followup-To
header ;)

-- 
This sentence contradicts itself - or rather - well, no, actually it doesn't!

#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the NOTES configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in NOTES.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.292 2000/12/08 20:08:18 phk Exp $

machine         i386
#cpu            I386_CPU
#cpu            I486_CPU
#cpu            I586_CPU
cpu             I686_CPU
ident           RING-5
maxusers        32

#To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         #Default places to look for devices.

makeoptions     DEBUG=-g3               #Build kernel with gdb(1) debug symbols

options         MATH_EMULATE            #Support for x87 emulation
options         INET                    #InterNETworking
#options        INET6                   #IPv6 communications protocols
options         FFS                     #Berkeley Fast Filesystem
options         FFS_ROOT                #FFS usable as root device [keep this!]
options         SOFTUPDATES             #Enable FFS soft updates support
#options        MFS                     #Memory Filesystem
#options        MD_ROOT                 #MD is a potential root device
options         NFS                     #Network Filesystem
#options        NFS_ROOT                #NFS usable as root device, NFS required
options         MSDOSFS                 #MSDOS Filesystem
options         CD9660                  #ISO 9660 Filesystem
#options        CD9660_ROOT             #CD-ROM usable as root, CD9660 required
#options        DEVFS                   #Device Filesystem
options         PROCFS                  #Process filesystem
options         COMPAT_43               #Compatible with BSD 4.3 [KEEP THIS!]
options         SCSI_DELAY=15000        #Delay (in ms) before probing SCSI
options         UCONSOLE                #Allow users to grab the console
options         USERCONFIG              #boot -c editor
options         VISUAL_USERCONFIG       #visual boot -c editor
options         KTRACE                  #ktrace(1) support
options         SYSVSHM                 #SYSV-style shared memory
options         SYSVMSG                 #SYSV-style message queues
options         SYSVSEM                 #SYSV-style semaphores
options         P1003_1B                #Posix P1003_1B real-time extensions
options         _KPOSIX_PRIORITY_SCHEDULING
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev

# To make an SMP kernel, the next two are needed
#options        SMP                     # Symmetric MultiProcessor Kernel
#options        APIC_IO                 # Symmetric (APIC) I/O

device          isa
#device         eisa
device          pci
#options        COMPAT_OLDISA           # compatability shims for lnc, le
#options        COMPAT_OLDPCI           # compatability shims for lnc

# Floppy drives
device          fdc

# ATA and ATAPI devices
device          ata
device          atadisk                 # ATA disk drives
device          atapicd                 # ATAPI CDROM drives
#device         atapifd                 # ATAPI floppy drives
#device         atapist                 # ATAPI tape drives
options         ATA_STATIC_ID           #Static device numbering
options         ATA_ENABLE_TAGS
#options        ATA_ENABLE_ATAPI_DMA    #Enable DMA on ATAPI devices

# SCSI Controllers
#device         ahb             # EISA AHA1742 family
#device         ahc             # AHA2940 and onboard AIC7xxx devices
#device         amd             # AMD 53C974 (Teckram DC-390(T))
#device         isp             # Qlogic family
#device         ncr             # NCR/Symbios Logic
#device         sym             # NCR/Symbios Logic (newer chipsets + those of `ncr')

#device         adv             # Advansys scsi adapters
#device         adw             # Advansys wide scsi adapters
#device         aha     1       # Adaptec 154x scsi adapters
#device         aic             # Adaptec 15[012]x scsi adapters, AIC-6[23]60.
#device         bt              # Buslogic/Mylex MultiMaster scsi adapters

#device         ncv             # NCR 53C500
#device         nsp             # Workbit Ninja SCSI-3
#device         stg             # TMC 18C30/18C50

# RAID controllers interfaced to the SCSI subsystem
#device         asr             # DPT SmartRAID V, VI and Adaptec SCSI RAID
#device         dpt             # DPT Smartcache III, IV - See NOTES for options!
#device         mly             # Mylex AcceleRAID/eXtremeRAID

# SCSI peripherals
#device         scbus           # SCSI bus (required)
#device         da              # Direct Access (disks)
#device         sa              # Sequential Access (tape etc)
#device         cd              # CD
#device         pass            # Passthrough device (direct SCSI access)

# RAID controllers
#device         aac             # Adaptec FSA RAID
#device         amr             # AMI MegaRAID
#device         ida             # Compaq Smart RAID
#device         mlx             # Mylex DAC960 family
#device         twe             # 3ware ATA RAID

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc  1       # At keyboard controller
device          atkbd           # at keyboard
device          psm             # psm mouse

device          vga             # VGA screen

# splash screen/screen saver
device          splash

# syscons is the default console driver, resembling an SCO console
device          sc      1

# Enable this for the pcvt (VT220 compatible) console driver
#device         vt
#options        XSERVER                 # support for X server on a vt console
#options        FAT_CURSOR              # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options        PCVT_SCANSET=2          # IBM keyboards are non-std

# Floating point support - do not disable.
device          npx

# Power management support (see NOTES for more options)
device          apm
# Add suspend/resume support for the i8254.
device          pmtimer

# Audio support
#device         pcm

# PCCARD (PCMCIA) support
#device         card            # pccard bus
#device         pcic            # PCMCIA bridge

# Serial (COM) ports
#device         sio             # 8250, 16[45]50 based serial ports

# Parallel port
#device         ppc
#device         ppbus           # Parallel port bus (required)
#device         lpt             # Printer
#device         plip            # TCP/IP over parallel
#device         ppi             # Parallel port interface device
#device         vpo             # Requires scbus and da


# PCI Ethernet NICs.
#device         de              # DEC/Intel DC21x4x (``Tulip'')
#device         fxp             # Intel EtherExpress PRO/100B (82557, 82558)
#device         vx              # 3Com 3c590, 3c595 (``Vortex'')
#device         wx              # Intel Gigabit Ethernet Card (``Wiseman'')

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device          miibus          # MII bus support
#device         dc              # DEC/Intel 21143 and various workalikes
#device         pcn             # AMD Am79C79x PCI 10/100 NICs
#device         rl              # RealTek 8129/8139
#device         sf              # Adaptec AIC-6915 (``Starfire'')
#device         sis             # Silicon Integrated Systems SiS 900/SiS 7016
#device         ste             # Sundance ST201 (D-Link DFE-550TX)
#device         tl              # Texas Instruments ThunderLAN
#device         tx              # SMC EtherPower II (83c170 ``EPIC'')
#device         vr              # VIA Rhine, Rhine II
#device         wb              # Winbond W89C840F
device          xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# ISA Ethernet NICs.  pccard nics included.
#device         cs              # Crystal Semiconductor CS89x0 NIC
#device         ed              # NE[12]000, SMC Ultra, 3c503, DS8390 cards
#device         ex              # Intel EtherExpress Pro/10 and Pro/10+
#device         ep              # Etherlink III based cards
#device         fe              # Fujitsu MB8696x based cards
#device         sn              # SMC's 9000 series of ethernet chips
#device         xe              # Xircom pccard ethernet

# The probe order of these is presently determined by i386/isa/isa_compat.c.
#device         ie
#device         le
#device         lnc

# Wireless NIC cards
#device         an              # Aironet 4500/4800 802.11 wireless NICs. 
#device         awi             # BayStack 660 and others
#device         wi              # WaveLAN/IEEE 802.11 wireless NICs. 
#device         wl              # Older non 802.11 Wavelan wireless NIC.

# Pseudo devices - the number indicates how many units to allocated.
device          random          # Entropy device
options         NOBLOCKRANDOM   # avoid any blocking on device random
device          loop            # Network loopback
device          ether           # Ethernet support
#device         sl              # Kernel SLIP
#device         ppp     1       # Kernel PPP
device          tun             # Packet tunnel.
device          pty             # Pseudo-ttys (telnet etc)
#device         md              # Memory "disks"
#device         gif     4       # IPv6 and IPv4 tunneling
#device         faith   1       # IPv6-to-IPv4 relaying (translation)

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
device          bpf             # Berkeley packet filter

# USB support
#device         uhci            # UHCI PCI->USB interface
#device         ohci            # OHCI PCI->USB interface
#device         usb             # USB Bus (required)
#device         udbp            # USB Double Bulk Pipe devices
#device         ugen            # Generic
#device         uhid            # "Human Interface Devices"
#device         ukbd            # Keyboard
#device         ulpt            # Printer
#device         umass           # Disks/Mass storage - Requires scbus and da
#device         ums             # Mouse
#device         urio            # Diamond Rio 500 MP3 player
#device         uscanner        # Scanners
# USB Ethernet, requires mii
#device         aue             # ADMtek USB ethernet
#device         cue             # CATC USB ethernet
#device         kue             # Kawasaki LSI USB ethernet

options         DDB
options         KTRACE

options         IPFIREWALL
options         DUMMYNET

options         FDESC
options         NULLFS
options         PORTAL
options         PROCFS
options         UNION
options         EXT2FS

options         SUIDDIR

device          speaker
device          vn
device          snp

options         VESA
options         SC_MOUSE_CHAR=0x3
#options                SC_PIXEL_MODE
options         SC_TWOBUTTON_MOUSE


-----------------------------------

and here is the gdb -k output (OK, so I made a few typing mistakes :)


GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd".
(kgdb) symvol-fil      b  bol-file kernel.debug
Reading symbols from kernel.debug...done.
(kgdb) exec-file /tmp/k crash/kernel.2
(kgdb) core-file /tmp/crash/vmcore.2
IdlePTD 3477504
initial pcb at 2c1780
panicstr: from debugger
panic messages:
---
panic: from debugger

syncing disks... 6 6 
done
Uptime: 1m16s

dumping to dev #ad/0x20021, offset 262272
dump ata2: resetting devices .. done
127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 
106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 
80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 
51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
---
#0  dumpsys () at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:477
477             if (dumping++) {
(kgdb) bt
#0  dumpsys () at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:477
#1  0xc015bf94 in boot (howto=256)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:320
#2  0xc015c3ed in panic (fmt=0xc0266954 "from debugger")
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:570
#3  0xc011d4e5 in db_panic (addr=-1071359356, have_addr=0, count=-1, 
    modif=0xc7c0ad7c "") at /usr/src-bsd/HEAD/src/sys/ddb/db_command.c:433
#4  0xc011d485 in db_command (last_cmdp=0xc02930e0, cmd_table=0xc0292f40, 
    aux_cmd_tablep=0xc02b046c)
    at /usr/src-bsd/HEAD/src/sys/ddb/db_command.c:333
#5  0xc011d54a in db_command_loop ()
    at /usr/src-bsd/HEAD/src/sys/ddb/db_command.c:455
#6  0xc011f70f in db_trap (type=3, code=0)
    at /usr/src-bsd/HEAD/src/sys/ddb/db_trap.c:71
#7  0xc0245816 in kdb_trap (type=3, code=0, regs=0xc7c0ae7c)
    at /usr/src-bsd/HEAD/src/sys/i386/i386/db_interface.c:163
#8  0xc0252430 in trap (frame={tf_fs = -1070923760, tf_es = -943718384, 
      tf_ds = 16, tf_edi = -1070772896, tf_esi = -1070794976, 
      tf_ebp = -943673656, tf_isp = -943673688, tf_ebx = 524802, 
      tf_edx = -1072983520, tf_ecx = 32, tf_eax = 38, tf_trapno = 3, 
      tf_err = 0, tf_eip = -1071359356, tf_cs = 8, tf_eflags = 524358, 
      tf_esp = -1071090145, tf_ss = -1071105687})
    at /usr/src-bsd/HEAD/src/sys/i386/i386/trap.c:589
#9  0xc0245a84 in Debugger (msg=0xc0283969 "manual escape to debugger")
    at machine/cpufunc.h:60
#10 0xc0240f5e in scgetc (sc=0xc02d4d60, flags=2)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:3134
#11 0xc023d999 in sckbdevent (thiskbd=0xc02cdee0, event=0, arg=0xc02d4d60)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:636
#12 0xc023534a in atkbd_intr (kbd=0xc02cdee0, arg=0x0)
    at /usr/src-bsd/HEAD/src/sys/dev/kbd/atkbd.c:458
#13 0xc0234ec7 in atkbd_timeout (arg=0xc02cdee0)
    at /usr/src-bsd/HEAD/src/sys/dev/kbd/atkbd.c:161
#14 0xc0163888 in softclock (dummy=0x0)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_timeout.c:141
#15 0xc01523a7 in sithd_loop (dummy=0x0)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_intr.c:227
(kgdb) fr 0
#0  dumpsys () at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:477
477             if (dumping++) {
(kgdb) info locals 
error = 0
(kgdb) up
#1  0xc015bf94 in boot (howto=256)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:320
320                     dumpsys();
(kgdb) info      l
315              * been completed.
316              */
317             EVENTHANDLER_INVOKE(shutdown_post_sync, howto);
318             splhigh();
319             if ((howto & (RB_HALT|RB_DUMP)) == RB_DUMP && !cold)
320                     dumpsys();
321     
322             /* Now that we're going to really halt the system... */
323             EVENTHANDLER_INVOKE(shutdown_final, howto);
324     
(kgdb) info loc
howto = 256
(kgdb) up
#2  0xc015c3ed in panic (fmt=0xc0266954 "from debugger")
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:570
570             boot(bootopt);
(kgdb) l
565     
566     #if defined(DDB)
567             if (debugger_on_panic)
568                     Debugger ("panic");
569     #endif
570             boot(bootopt);
571     }
572     
573     /*
574      * Support for poweroff delay.
(kgdb) info loc
fmt = 0xc0266954 "from debugger"
bootopt = 256
buf = "from debugger", '\000' <repeats 242 times>
(kgdb) up
#3  0xc011d4e5 in db_panic (addr=-1071359356, have_addr=0, count=-1, 
    modif=0xc7c0ad7c "") at /usr/src-bsd/HEAD/src/sys/ddb/db_command.c:433
433             panic("from debugger");
(kgdb) l
428      * At least one non-optional command must be implemented using
429      * DB_COMMAND() so that db_cmd_set gets created.  Here is one.
430      */
431     DB_COMMAND(panic, db_panic)
432     {
433             panic("from debugger");
434     }
435     
436     void
437     db_command_loop()
(kgdb) info loc
No locals.
(kgdb) up
#4  0xc011d485 in db_command (last_cmdp=0xc02930e0, cmd_table=0xc0292f40, 
    aux_cmd_tablep=0xc02b046c)
    at /usr/src-bsd/HEAD/src/sys/ddb/db_command.c:333
333                 (*cmd->fcn)(addr, have_addr, count, modif);
(kgdb) l
328             *last_cmdp = cmd;
329             if (cmd != 0) {
330                 /*
331                  * Execute the command.
332                  */
333                 (*cmd->fcn)(addr, have_addr, count, modif);
334     
335                 if (cmd->flag & CS_SET_DOT) {
336                     /*
337                      * If command changes dot, set dot to
(kgdb) info loc
cmd_table = (struct command *) 0x0
aux_cmd_tablep = (struct command **) 0xc02b046c
cmd = (struct command *) 0xc0266938
t = 0
modif = "\000*+\000\000\000\000\230Ǥm[#\000\000\000\000 
,\r\000\000\000=T#\000\000\000\000ȭ:#\000\000\000\000,*+`*+ܭ$\021n&P\021(-`*+\021`*+@\"+x\000\000\000\000\000\000\000Į\000"
addr = -1071359356
count = -1
have_addr = 0
result = 0
(kgdb) up
#5  0xc011d54a in db_command_loop ()
    at /usr/src-bsd/HEAD/src/sys/ddb/db_command.c:455
455                 db_command(&db_last_command, db_command_table,
(kgdb) l
450                     db_printf("\n");
451     
452                 db_printf("db> ");
453                 (void) db_read_line();
454     
455                 db_command(&db_last_command, db_command_table,
456                            (struct command **)&db_cmd_set.ls_items[0]);
457             }
458     }
459     
(kgdb) info loc
No locals.
(kgdb) up
#6  0xc011f70f in db_trap (type=3, code=0)
    at /usr/src-bsd/HEAD/src/sys/ddb/db_trap.c:71
71                  db_command_loop();
(kgdb) l
66                      db_printf("Stopped at\t");
67                  db_dot = PC_REGS(DDB_REGS);
68                  if (setjmp(db_jmpbuf) == 0)
69                      db_print_loc_and_inst(db_dot);
70      
71                  db_command_loop();
72              }
73      
74              db_restart_at_pc(watchpt);
75      }
(kgdb) info loc
bkpt = 0
(kgdb) up
#7  0xc0245816 in kdb_trap (type=3, code=0, regs=0xc7c0ae7c)
    at /usr/src-bsd/HEAD/src/sys/i386/i386/db_interface.c:163
163                 db_trap(type, code);
(kgdb) l
158             (void) setjmp(db_global_jmpbuf);
159             db_global_jmpbuf_valid = TRUE;
160             db_active++;
161             if (ddb_mode) {
162                 cndbctl(TRUE);
163                 db_trap(type, code);
164                 cndbctl(FALSE);
165             } else
166                 gdb_handle_exception(&ddb_regs, type, code);
167             db_active--;
(kgdb) info loc
ddb_mode = 1
(kgdb) up
#8  0xc0252430 in trap (frame={tf_fs = -1070923760, tf_es = -943718384, 
      tf_ds = 16, tf_edi = -1070772896, tf_esi = -1070794976, 
      tf_ebp = -943673656, tf_isp = -943673688, tf_ebx = 524802, 
      tf_edx = -1072983520, tf_ecx = 32, tf_eax = 38, tf_trapno = 3, 
      tf_err = 0, tf_eip = -1071359356, tf_cs = 8, tf_eflags = 524358, 
      tf_esp = -1071090145, tf_ss = -1071105687})
    at /usr/src-bsd/HEAD/src/sys/i386/i386/trap.c:589
589                             if (kdb_trap (type, 0, &frame))
(kgdb) l
584                             /*
585                              * If DDB is enabled, let it handle the debugger trap.
586                              * Otherwise, debugger traps "can't happen".
587                              */
588     #ifdef DDB
589                             if (kdb_trap (type, 0, &frame))
590                                     goto out;
591     #endif
592                             break;
593     
(kgdb) info loc
p = (struct proc *) 0xc77fd620
sticks = 4
i = 0
ucode = 0
type = 3
code = 0
eva = 0
(kgdb) up
#9  0xc0245a84 in Debugger (msg=0xc0283969 "manual escape to debugger")
    at machine/cpufunc.h:60
60              __asm __volatile("int $3");
(kgdb) l
55      #endif
56      
57      static __inline void
58      breakpoint(void)
59      {
60              __asm __volatile("int $3");
61      }
62      
63      static __inline u_int
64      bsfl(u_int mask)
(kgdb) info loc
in_Debugger = 1
flags = 524802
(kgdb) up
#10 0xc0240f5e in scgetc (sc=0xc02d4d60, flags=2)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:3134
3134                    Debugger("manual escape to debugger");
(kgdb) l
3129    #endif
3130    
3131                case DBG:
3132    #ifndef SC_DISABLE_DDBKEY
3133    #ifdef DDB
3134                    Debugger("manual escape to debugger");
3135    #else
3136                    printf("No debugger in kernel\n");
3137    #endif
3138    #else /* SC_DISABLE_DDBKEY */
(kgdb) info loc
sc = (sc_softc_t *) 0xc02d4d60
scp = (scr_stat *) 0xc02cf720
tp = (struct tty *) 0x0
c = 134
this_scr = 0
f = -1072284763
i = 0
(kgdb) up
#11 0xc023d999 in sckbdevent (thiskbd=0xc02cdee0, event=0, arg=0xc02d4d60)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:636
636         }
(kgdb) l
631                 (*linesw[cur_tty->t_line].l_rint)(0x1b, cur_tty);
632                 (*linesw[cur_tty->t_line].l_rint)('[', cur_tty);
633                 (*linesw[cur_tty->t_line].l_rint)('Z', cur_tty);
634                 break;
635             }
636         }
637     
638         sc->cur_scp->status |= MOUSE_HIDDEN;
639     
640         return 0;
(kgdb) info loc
event = 0
sc = (sc_softc_t *) 0xc02d4d60
cur_tty = (struct tty *) 0xc02cdee0
c = -1070801184
len = 3351293744
cp = (u_char *) 0xc02cdee0 ""
(kgdb) up
#12 0xc023534a in atkbd_intr (kbd=0xc02cdee0, arg=0x0)
    at /usr/src-bsd/HEAD/src/sys/dev/kbd/atkbd.c:458
458                     (*kbd->kb_callback.kc_func)(kbd, KBDIO_KEYINPUT,
(kgdb) l
453             int delay[2];
454             int c;
455     
456             if (KBD_IS_ACTIVE(kbd) && KBD_IS_BUSY(kbd)) {
457                     /* let the callback function to process the input */
458                     (*kbd->kb_callback.kc_func)(kbd, KBDIO_KEYINPUT,
459                                                 kbd->kb_callback.kc_arg);
460             } else {
461                     /* read and discard the input; no one is waiting for input */
462                     do {
(kgdb) info loc
kbd = (keyboard_t *) 0xc02cdee0
state = (atkbd_state_t *) 0xc02cdee0
delay = {-1070795232, -943673512}
c = 0
(kgdb) up
#13 0xc0234ec7 in atkbd_timeout (arg=0xc02cdee0)
    at /usr/src-bsd/HEAD/src/sys/dev/kbd/atkbd.c:161
161                             (*kbdsw[kbd->kb_index]->intr)(kbd, NULL);
(kgdb) l
156                      * the flag early, otherwise the LED update routine fails
157                      * which may want the lock during the interrupt routine.
158                      */
159                     (*kbdsw[kbd->kb_index]->lock)(kbd, FALSE);
160                     if ((*kbdsw[kbd->kb_index]->check_char)(kbd))
161                             (*kbdsw[kbd->kb_index]->intr)(kbd, NULL);
162             }
163             splx(s);
164             timeout(atkbd_timeout, arg, hz/10);
165     }
(kgdb) info loc
arg = (void *) 0xc02cdee0
s = 0
(kgdb) up
#14 0xc0163888 in softclock (dummy=0x0)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_timeout.c:141
141                                     c_func(c_arg);
(kgdb) l
136                                     }
137                                     mtx_exit(&callout_lock, MTX_SPIN);
138                                     if (!(c_flags & CALLOUT_MPSAFE))
139                                             mtx_enter(&Giant, MTX_DEF);
140                                     splx(s);
141                                     c_func(c_arg);
142                                     s = splhigh();
143                                     if (!(c_flags & CALLOUT_MPSAFE))
144                                             mtx_exit(&Giant, MTX_DEF);
145                                     mtx_enter(&callout_lock, MTX_SPIN);
(kgdb) info loc
c_func = (void (*)()) 0xc0234e64 <atkbd_timeout>
c_arg = (void *) 0xc02cdee0
c_flags = 7
c = (struct callout *) 0x0
bucket = (struct callout_tailq *) 0xc3337ce0
s = 0
curticks = 7352
steps = 7
(kgdb) up
#15 0xc01523a7 in sithd_loop (dummy=0x0)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_intr.c:227
227                                     ih->ih_handler(ih->ih_argument);
(kgdb) l
222                                         (void *)ih->ih_handler, ih->ih_argument,
223                                         ih->ih_flags);
224     
225                                     if ((ih->ih_flags & INTR_MPSAFE) == 0)
226                                             mtx_enter(&Giant, MTX_DEF);
227                                     ih->ih_handler(ih->ih_argument);
228                                     if ((ih->ih_flags & INTR_MPSAFE) == 0)
229                                             mtx_exit(&Giant, MTX_DEF);
230                             }
231                     }
(kgdb) info loc
it = (struct ithd *) 0xc072adc0
ih = (struct intrhand *) 0xc072ad80
p = (struct proc *) 0xc77fd620
(kgdb) up
Initial frame selected; you cannot go up.
(kgdb) l
232     
233                     /*
234                      * Processed all our interrupts.  Now get the sched
235                      * lock.  This may take a while and it_need may get
236                      * set again, so we have to check it again.
237                      */
238                     mtx_assert(&Giant, MA_NOTOWNED);
239                     mtx_enter(&sched_lock, MTX_SPIN);
240                     if (!it->it_need) {
241                             p->p_stat = SWAIT; /* we're idle */
(kgdb) info loc        fr 11
#11 0xc023d999 in sckbdevent (thiskbd=0xc02cdee0, event=0, arg=0xc02d4d60)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:636
636         }
(kgdb) info loc
event = 0
sc = (sc_softc_t *) 0xc02d4d60
cur_tty = (struct tty *) 0xc02cdee0
c = -1070801184
len = 3351293744
cp = (u_char *) 0xc02cdee0 ""
(kgdb) pruint    int *sc
$1 = {unit = 0, config = 768, flags = 196624, keyboard = 0, kbd = 0xc02cdee0, 
  adapter = 0, adp = 0xc02cdba0, initial_mode = 24, first_vty = 0, vtys = 16, 
  dev = 0xc02cf820, cur_scp = 0xc02cf720, new_scp = 0xc02cf720, 
  old_scp = 0xc02cf720, delayed_next_scr = 0, 
  font_loading_in_progress = 0 '\000', switch_in_progress = 0 '\000', 
  videoio_in_progress = 0 '\000', write_in_progress = 0 '\000', 
  blink_in_progress = 0 '\000', scrn_time_stamp = 74, cursor_base = 1 '\001', 
  cursor_height = 2 '\002', 
  scr_map = 
"\000\001\002\003\004\005\006\a\b\t\n\013\f\r\016\017\020\021\022\023\024\025\026\027\030\031\032\e\034\035\036\037
 
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237"...,
 
  scr_rmap = 
"\000\001\002\003\004\005\006\a\b\t\n\013\f\r\016\017\020\021\022\023\024\025\026\027\030\031\032\e\034\035\036\037
 
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237"...,
 
  palette = 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\000\000\000T\000\000T\000T\000T\000\000T\000\000\000T\000T\000\000TT\000T\000T\000TTTTT\000\000T\000T\000T\000\000\000\000T\000TT\000TTT\000T\000TTT\000TTT\000TT\000T\000TTTTTTTTTTTT||\234|"...,
 fonts_loaded = 8, 
  font_8 = 0xc02d0900 "", font_14 = 0xc02d1100 "", font_16 = 0xc02d1f00 "", 
  cursor_char = 7 '\a', mouse_char = 3 '\003'}
(kgdb) print *cur_tty
$2 = {t_rawq = {c_cc = 0, c_cbcount = 0, c_cbmax = 3997696, c_cbreserved = 1, 
    c_cf = 0xc02d4d6c "", 
    c_cl = 0xc023d7e0 "U\211\203\004WVS\213E\f\213}\020\205\017\204\232\001"}, 
t_rawcc = -1070772896, t_canq = {c_cc = 1, c_cbcount = -1071110848, 
    c_cbmax = 0, c_cbreserved = 2, c_cf = 0x0, c_cl = 0x0}, t_cancc = 0, 
  t_outq = {c_cc = -1070801056, c_cbcount = -1070798464, 
    c_cbmax = -1070796864, c_cbreserved = 96, c_cf = 0xc02cdf40 " ,\001", 
    c_cl = 0xfa <Address 0xfa out of bounds>}, t_outcc = 34, t_line = 284, 
  t_dev = 0x0, t_state = 0, t_flags = -1070795232, t_timeout = 1, 
  t_pgrp = 0x0, t_session = 0x0, t_sigio = 0x0, t_rsel = {si_pid = 0, 
    si_note = {slh_first = 0x0}, si_flags = 0}, t_wsel = {si_pid = 256, 
    si_note = {slh_first = 0x0}, si_flags = 0}, t_termios = {
    c_iflag = 454761243, c_oflag = 461773595, c_cflag = 556859394, 
    c_lflag = 556859392, 
    c_cc = "\000\0003\0002@\000\0002@\000\000\000\0003#\000\0003#", 
    c_ispeed = 3342336, c_ospeed = 9268}, t_winsize = {ws_row = 9268, 
    ws_col = 0, ws_xpixel = 51, ws_ypixel = 9525}, t_oproc = 0x25350000, 
  t_stop = 0x330000, t_param = 0x1e1e5e36, t_sc = 0x1e1e5e36, 
  t_column = 641138688, t_rocount = 641138688, t_rocol = 3342336, 
  t_ififosize = 10808, t_ihiwat = 10808, t_ilowat = 674824243, 
  t_ispeedwat = 674824192, t_ohiwat = 3342336, t_olowat = 10544, 
  t_ospeedwat = 10544, t_gen = 1596784691, t_list = {sle_next = 0x5f2d1f1f}}
(kgdb) print *cp
$3 = 0 '\000'
(kgdb) quit


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to