Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Dec 2000 20:39:54 +0200
From:      Peter Pentchev <roam@orbitel.bg>
To:        current@FreeBSD.org
Subject:   logo_saver in VESA 800x600 mode - syscons kbd freeze
Message-ID:  <20001210203954.C1015@ringworld.oblivion.bg>

next in thread | raw e-mail | index | archive | help
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=20
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 ;)

--=20
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=3D-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=3D15000	#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 li=
nes
#options 	PCVT_SCANSET=3D2		# 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.=20
#device		awi		# BayStack 660 and others
#device		wi		# WaveLAN/IEEE 802.11 wireless NICs.=20
#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=3D0x3
#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 condition=
s.
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=08 =08=08 =08=08 =08=08 =08=08 =08=08 =08b=08 =08=08 =08b=
ol-file kernel.debug
Reading symbols from kernel.debug...done.
(kgdb) exec-file /tmp/k=08 =08crash/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=20
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=20
---
#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=3D256)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:320
#2  0xc015c3ed in panic (fmt=3D0xc0266954 "from debugger")
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:570
#3  0xc011d4e5 in db_panic (addr=3D-1071359356, have_addr=3D0, count=3D-1,=
=20
    modif=3D0xc7c0ad7c "") at /usr/src-bsd/HEAD/src/sys/ddb/db_command.c:433
#4  0xc011d485 in db_command (last_cmdp=3D0xc02930e0, cmd_table=3D0xc0292f4=
0,=20
    aux_cmd_tablep=3D0xc02b046c)
    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=3D3, code=3D0)
    at /usr/src-bsd/HEAD/src/sys/ddb/db_trap.c:71
#7  0xc0245816 in kdb_trap (type=3D3, code=3D0, regs=3D0xc7c0ae7c)
    at /usr/src-bsd/HEAD/src/sys/i386/i386/db_interface.c:163
#8  0xc0252430 in trap (frame=3D{tf_fs =3D -1070923760, tf_es =3D -94371838=
4,=20
      tf_ds =3D 16, tf_edi =3D -1070772896, tf_esi =3D -1070794976,=20
      tf_ebp =3D -943673656, tf_isp =3D -943673688, tf_ebx =3D 524802,=20
      tf_edx =3D -1072983520, tf_ecx =3D 32, tf_eax =3D 38, tf_trapno =3D 3=
,=20
      tf_err =3D 0, tf_eip =3D -1071359356, tf_cs =3D 8, tf_eflags =3D 5243=
58,=20
      tf_esp =3D -1071090145, tf_ss =3D -1071105687})
    at /usr/src-bsd/HEAD/src/sys/i386/i386/trap.c:589
#9  0xc0245a84 in Debugger (msg=3D0xc0283969 "manual escape to debugger")
    at machine/cpufunc.h:60
#10 0xc0240f5e in scgetc (sc=3D0xc02d4d60, flags=3D2)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:3134
#11 0xc023d999 in sckbdevent (thiskbd=3D0xc02cdee0, event=3D0, arg=3D0xc02d=
4d60)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:636
#12 0xc023534a in atkbd_intr (kbd=3D0xc02cdee0, arg=3D0x0)
    at /usr/src-bsd/HEAD/src/sys/dev/kbd/atkbd.c:458
#13 0xc0234ec7 in atkbd_timeout (arg=3D0xc02cdee0)
    at /usr/src-bsd/HEAD/src/sys/dev/kbd/atkbd.c:161
#14 0xc0163888 in softclock (dummy=3D0x0)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_timeout.c:141
#15 0xc01523a7 in sithd_loop (dummy=3D0x0)
    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=20
error =3D 0
(kgdb) up
#1  0xc015bf94 in boot (howto=3D256)
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:320
320			dumpsys();
(kgdb) info =08 =08=08 =08=08 =08=08 =08=08 =08=07=07=07l
315		 * been completed.
316		 */
317		EVENTHANDLER_INVOKE(shutdown_post_sync, howto);
318		splhigh();
319		if ((howto & (RB_HALT|RB_DUMP)) =3D=3D RB_DUMP && !cold)
320			dumpsys();
321=09
322		/* Now that we're going to really halt the system... */
323		EVENTHANDLER_INVOKE(shutdown_final, howto);
324=09
(kgdb) info loc
howto =3D 256
(kgdb) up
#2  0xc015c3ed in panic (fmt=3D0xc0266954 "from debugger")
    at /usr/src-bsd/HEAD/src/sys/kern/kern_shutdown.c:570
570		boot(bootopt);
(kgdb) l
565=09
566	#if defined(DDB)
567		if (debugger_on_panic)
568			Debugger ("panic");
569	#endif
570		boot(bootopt);
571	}
572=09
573	/*
574	 * Support for poweroff delay.
(kgdb) info loc
fmt =3D 0xc0266954 "from debugger"
bootopt =3D 256
buf =3D "from debugger", '\000' <repeats 242 times>
(kgdb) up
#3  0xc011d4e5 in db_panic (addr=3D-1071359356, have_addr=3D0, count=3D-1,=
=20
    modif=3D0xc7c0ad7c "") 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=09
436	void
437	db_command_loop()
(kgdb) info loc
No locals.
(kgdb) up
#4  0xc011d485 in db_command (last_cmdp=3D0xc02930e0, cmd_table=3D0xc0292f4=
0,=20
    aux_cmd_tablep=3D0xc02b046c)
    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 =3D cmd;
329		if (cmd !=3D 0) {
330		    /*
331		     * Execute the command.
332		     */
333		    (*cmd->fcn)(addr, have_addr, count, modif);
334=09
335		    if (cmd->flag & CS_SET_DOT) {
336			/*
337			 * If command changes dot, set dot to
(kgdb) info loc
cmd_table =3D (struct command *) 0x0
aux_cmd_tablep =3D (struct command **) 0xc02b046c
cmd =3D (struct command *) 0xc0266938
t =3D 0
modif =3D "\000*+=C0\000\000\000\000\230=AD=C0=C7=A4=AD=C0=C7m[#=C0\000\000=
\000\000 =F7,=C0\r\000\000\000=AC=AD=C0=C7=3DT#=C0\000\000\000\000=C8=AD=C0=
=C7:=EE#=C0\000\000\000\000=E0=DE,=C0=D8*+=C0`*+=C0=DC=AD=C0=C7$=EB\021=C0=
=BEn&=C0P=EA\021=C0(=C5-=C0`*+=C0=BB=E4\021=C0`*+=C0@\"+=C0x\000\000\000\00=
0\000\000\000=C4=AE=C0=C7\000=AE=C0=C7"
addr =3D -1071359356
count =3D -1
have_addr =3D 0
result =3D 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=09
452		    db_printf("db> ");
453		    (void) db_read_line();
454=09
455		    db_command(&db_last_command, db_command_table,
456			       (struct command **)&db_cmd_set.ls_items[0]);
457		}
458	}
459=09
(kgdb) info loc
No locals.
(kgdb) up
#6  0xc011f70f in db_trap (type=3D3, code=3D0)
    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 =3D PC_REGS(DDB_REGS);
68		    if (setjmp(db_jmpbuf) =3D=3D 0)
69			db_print_loc_and_inst(db_dot);
70=09
71		    db_command_loop();
72		}
73=09
74		db_restart_at_pc(watchpt);
75	}
(kgdb) info loc
bkpt =3D 0
(kgdb) up
#7  0xc0245816 in kdb_trap (type=3D3, code=3D0, regs=3D0xc7c0ae7c)
    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 =3D 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 =3D 1
(kgdb) up
#8  0xc0252430 in trap (frame=3D{tf_fs =3D -1070923760, tf_es =3D -94371838=
4,=20
      tf_ds =3D 16, tf_edi =3D -1070772896, tf_esi =3D -1070794976,=20
      tf_ebp =3D -943673656, tf_isp =3D -943673688, tf_ebx =3D 524802,=20
      tf_edx =3D -1072983520, tf_ecx =3D 32, tf_eax =3D 38, tf_trapno =3D 3=
,=20
      tf_err =3D 0, tf_eip =3D -1071359356, tf_cs =3D 8, tf_eflags =3D 5243=
58,=20
      tf_esp =3D -1071090145, tf_ss =3D -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=09
(kgdb) info loc
p =3D (struct proc *) 0xc77fd620
sticks =3D 4
i =3D 0
ucode =3D 0
type =3D 3
code =3D 0
eva =3D 0
(kgdb) up
#9  0xc0245a84 in Debugger (msg=3D0xc0283969 "manual escape to debugger")
    at machine/cpufunc.h:60
60		__asm __volatile("int $3");
(kgdb) l
55	#endif
56=09
57	static __inline void
58	breakpoint(void)
59	{
60		__asm __volatile("int $3");
61	}
62=09
63	static __inline u_int
64	bsfl(u_int mask)
(kgdb) info loc
in_Debugger =3D 1
flags =3D 524802
(kgdb) up
#10 0xc0240f5e in scgetc (sc=3D0xc02d4d60, flags=3D2)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:3134
3134			Debugger("manual escape to debugger");
(kgdb) l
3129	#endif
3130=09
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 =3D (sc_softc_t *) 0xc02d4d60
scp =3D (scr_stat *) 0xc02cf720
tp =3D (struct tty *) 0x0
c =3D 134
this_scr =3D 0
f =3D -1072284763
i =3D 0
(kgdb) up
#11 0xc023d999 in sckbdevent (thiskbd=3D0xc02cdee0, event=3D0, arg=3D0xc02d=
4d60)
    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=09
638	    sc->cur_scp->status |=3D MOUSE_HIDDEN;
639=09
640	    return 0;
(kgdb) info loc
event =3D 0
sc =3D (sc_softc_t *) 0xc02d4d60
cur_tty =3D (struct tty *) 0xc02cdee0
c =3D -1070801184
len =3D 3351293744
cp =3D (u_char *) 0xc02cdee0 ""
(kgdb) up
#12 0xc023534a in atkbd_intr (kbd=3D0xc02cdee0, arg=3D0x0)
    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=09
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 =3D (keyboard_t *) 0xc02cdee0
state =3D (atkbd_state_t *) 0xc02cdee0
delay =3D {-1070795232, -943673512}
c =3D 0
(kgdb) up
#13 0xc0234ec7 in atkbd_timeout (arg=3D0xc02cdee0)
    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 =3D (void *) 0xc02cdee0
s =3D 0
(kgdb) up
#14 0xc0163888 in softclock (dummy=3D0x0)
    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 =3D 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 =3D (void (*)()) 0xc0234e64 <atkbd_timeout>
c_arg =3D (void *) 0xc02cdee0
c_flags =3D 7
c =3D (struct callout *) 0x0
bucket =3D (struct callout_tailq *) 0xc3337ce0
s =3D 0
curticks =3D 7352
steps =3D 7
(kgdb) up
#15 0xc01523a7 in sithd_loop (dummy=3D0x0)
    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=09
225					if ((ih->ih_flags & INTR_MPSAFE) =3D=3D 0)
226						mtx_enter(&Giant, MTX_DEF);
227					ih->ih_handler(ih->ih_argument);
228					if ((ih->ih_flags & INTR_MPSAFE) =3D=3D 0)
229						mtx_exit(&Giant, MTX_DEF);
230				}
231			}
(kgdb) info loc
it =3D (struct ithd *) 0xc072adc0
ih =3D (struct intrhand *) 0xc072ad80
p =3D (struct proc *) 0xc77fd620
(kgdb) up
Initial frame selected; you cannot go up.
(kgdb) l
232=09
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 =3D SWAIT; /* we're idle */
(kgdb) info loc=08 =08=08 =08=08 =08=08 =08=08 =08=08 =08=08 =08=08 =08=07=
=07=07=07=07=07=07fr 11
#11 0xc023d999 in sckbdevent (thiskbd=3D0xc02cdee0, event=3D0, arg=3D0xc02d=
4d60)
    at /usr/src-bsd/HEAD/src/sys/dev/syscons/syscons.c:636
636	    }
(kgdb) info loc
event =3D 0
sc =3D (sc_softc_t *) 0xc02d4d60
cur_tty =3D (struct tty *) 0xc02cdee0
c =3D -1070801184
len =3D 3351293744
cp =3D (u_char *) 0xc02cdee0 ""
(kgdb) pruint=08 =08=08 =08=08 =08=08 =08int *sc
$1 =3D {unit =3D 0, config =3D 768, flags =3D 196624, keyboard =3D 0, kbd =
=3D 0xc02cdee0,=20
  adapter =3D 0, adp =3D 0xc02cdba0, initial_mode =3D 24, first_vty =3D 0, =
vtys =3D 16,=20
  dev =3D 0xc02cf820, cur_scp =3D 0xc02cf720, new_scp =3D 0xc02cf720,=20
  old_scp =3D 0xc02cf720, delayed_next_scr =3D 0,=20
  font_loading_in_progress =3D 0 '\000', switch_in_progress =3D 0 '\000',=
=20
  videoio_in_progress =3D 0 '\000', write_in_progress =3D 0 '\000',=20
  blink_in_progress =3D 0 '\000', scrn_time_stamp =3D 74, cursor_base =3D 1=
 '\001',=20
  cursor_height =3D 2 '\002',=20
  scr_map =3D "\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 !\"#$%&'()*+,-./0123=
456789:;<=3D>?@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=A0=A1=A2=A3=A4=
=A5=A6=A7=A8=A9=AA=AB=AC=AD=AE=AF=B0=B1=B2=B3=B4=B5=B6=B7=B8=B9=BA=BB=BC=BD=
=BE=BF=C0=C1=C2=C3=C4=C5=C6=C7"...,=20
  scr_rmap =3D "\000\001\002\003\004\005\006\a\b\t\n\013\f\r\016\017\020\02=
1\022\023\024\025\026\027\030\031\032\e\034\035\036\037 !\"#$%&'()*+,-./012=
3456789:;<=3D>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz=
{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\22=
0\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237=A0=A1=A2=A3=
=A4=A5=A6=A7=A8=A9=AA=AB=AC=AD=AE=AF=B0=B1=B2=B3=B4=B5=B6=B7=B8=B9=BA=BB=BC=
=BD=BE=BF=C0=C1=C2=C3=C4=C5=C6=C7"...,=20
  palette =3D "\000\000\000\000\000=A8\000=A8\000\000=A8=A8=A8\000\000=A8\0=
00=A8=A8=A8\000=A8=A8=A8\000\000T\000\000=FC\000=A8T\000=A8=FC=A8\000T=A8\0=
00=FC=A8=A8T=A8=A8=FC\000T\000\000T=A8\000=FC\000\000=FC=A8=A8T\000=A8T=A8=
=A8=FC\000=A8=FC=A8\000TT\000T=FC\000=FCT\000=FC=FC=A8TT=A8T=FC=A8=FCT=A8=
=FC=FCT\000\000T\000=A8T=A8\000T=A8=A8=FC\000\000=FC\000=A8=FC=A8\000=FC=A8=
=A8T\000TT\000=FCT=A8TT=A8=FC=FC\000T=FC\000=FC=FC=A8T=FC=A8=FCTT\000TT=A8T=
=FC\000T=FC=A8=FCT\000=FCT=A8=FC=FC\000=FC=FC=A8TTTTT=FCT=FCTT=FC=FC=FCTT=
=FCT=FC=FC=FCT=FC=FC=FC=FC||=FC\234|=FC=BC"..., fonts_loaded =3D 8,=20
  font_8 =3D 0xc02d0900 "", font_14 =3D 0xc02d1100 "", font_16 =3D 0xc02d1f=
00 "",=20
  cursor_char =3D 7 '\a', mouse_char =3D 3 '\003'}
(kgdb) print *cur_tty
$2 =3D {t_rawq =3D {c_cc =3D 0, c_cbcount =3D 0, c_cbmax =3D 3997696, c_cbr=
eserved =3D 1,=20
    c_cf =3D 0xc02d4d6c "",=20
    c_cl =3D 0xc023d7e0 "U\211=E5\203=EC\004WVS\213E\f\213}\020\205=C0\017\=
204\232\001"}, t_rawcc =3D -1070772896, t_canq =3D {c_cc =3D 1, c_cbcount =
=3D -1071110848,=20
    c_cbmax =3D 0, c_cbreserved =3D 2, c_cf =3D 0x0, c_cl =3D 0x0}, t_cancc=
 =3D 0,=20
  t_outq =3D {c_cc =3D -1070801056, c_cbcount =3D -1070798464,=20
    c_cbmax =3D -1070796864, c_cbreserved =3D 96, c_cf =3D 0xc02cdf40 " =F6=
,=C0\001",=20
    c_cl =3D 0xfa <Address 0xfa out of bounds>}, t_outcc =3D 34, t_line =3D=
 284,=20
  t_dev =3D 0x0, t_state =3D 0, t_flags =3D -1070795232, t_timeout =3D 1,=
=20
  t_pgrp =3D 0x0, t_session =3D 0x0, t_sigio =3D 0x0, t_rsel =3D {si_pid =
=3D 0,=20
    si_note =3D {slh_first =3D 0x0}, si_flags =3D 0}, t_wsel =3D {si_pid =
=3D 256,=20
    si_note =3D {slh_first =3D 0x0}, si_flags =3D 0}, t_termios =3D {
    c_iflag =3D 454761243, c_oflag =3D 461773595, c_cflag =3D 556859394,=20
    c_lflag =3D 556859392,=20
    c_cc =3D "\000\0003\0002@\000\0002@\000\000\000\0003#\000\0003#",=20
    c_ispeed =3D 3342336, c_ospeed =3D 9268}, t_winsize =3D {ws_row =3D 926=
8,=20
    ws_col =3D 0, ws_xpixel =3D 51, ws_ypixel =3D 9525}, t_oproc =3D 0x2535=
0000,=20
  t_stop =3D 0x330000, t_param =3D 0x1e1e5e36, t_sc =3D 0x1e1e5e36,=20
  t_column =3D 641138688, t_rocount =3D 641138688, t_rocol =3D 3342336,=20
  t_ififosize =3D 10808, t_ihiwat =3D 10808, t_ilowat =3D 674824243,=20
  t_ispeedwat =3D 674824192, t_ohiwat =3D 3342336, t_olowat =3D 10544,=20
  t_ospeedwat =3D 10544, t_gen =3D 1596784691, t_list =3D {sle_next =3D 0x5=
f2d1f1f}}
(kgdb) print *cp
$3 =3D 0 '\000'
(kgdb) quit


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001210203954.C1015>