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àÞ,ÀØ*+À`*+ÀÜÀÇ$ë\021À¾n&À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ü\000¨T\000¨ü¨\000T¨\000ü¨¨T¨¨ü\000T\000\000T¨\000ü\000\000ü¨¨T\000¨T¨¨ü\000¨ü¨\000TT\000Tü\000üT\000üü¨TT¨Tü¨üT¨üüT\000\000T\000¨T¨\000T¨¨ü\000\000ü\000¨ü¨\000ü¨¨T\000TT\000üT¨TT¨üü\000Tü\000üü¨Tü¨üTT\000TT¨Tü\000Tü¨üT\000üT¨üü\000üü¨TTTTTüTüTTüüüTTüTüüüTüüüü||ü\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