Possible UDP related deadlock in 7.1-PRERELEASE
Norbert Papke
fbsd-ml at scrapper.ca
Sun Sep 14 19:47:35 UTC 2008
Environment:
* i386, 7.1 Prerelease (updated today) with a custom UP kernel, ULE scheduler
* KDE 3.5.10
* NIC does not share interrupts with another device
* See below for configuration files
Symptoms:
* I can trigger this lockup reliably by starting ktorrent. After a short
while (one to two minutes), it locks up. Other commands, e.g., netstat, also
lock up.
* The console generates "nfe0: watchdog timeout" error messages.
* The system becomes unusable and must be rebooted.
Attempted Work-arounds:
* I have replaced the NIC. No change except now the console now
generates "dc0: watchdog timeout".
* I have tried an SMP kernel. No change.
Attempted Diagnosis:
If I break into DDB, the 'ps' output shows a number of processes that seem to
be locked related to udp.
[irq18:dc0] L *udp
ktorrent L *udpinp
hald L *udp
ntpd L *udp
Unfortunately, I am rapidly getting out of my depth here. I have no idea how
to go about further analyzing this problem and would appreciate help.
Cheers,
-- Norbert.
/boot/loader.conf:
loader_logo=beastie
verbose_loading="YES"
cpufreq_load="YES"
geom_gpt_load="YES"
hwpmc_load="YES"
# File systems
cd9660_load="YES"
msdosfs_load="YES"
# NIC supprt (MII provides common controller code)
miibus_load="YES"
if_dc_load=YES
pflog_load="YES"
procfs_load="YES"
# USB
ugen_load="YES"
uhid_load="YES"
ukbd_load="YES"
umass_load="YES"
ums_load="YES"
# Linux
linprocfs_load="YES"
linux_load="YES"
nvidia_load="YES"
pseudo_load="YES"
random_load="YES"
snd_hda_load="YES"
# SYSV support
sysvmsg_load="YES"
sysvsem_load="YES"
sysvshm_load="YES"
# For gamin
kern.maxfiles="25000"
# For ZFS
vm.kmem_size="512M"
vm.kmem_size_max="512M"
vfs.zfs.arc_max="160M"
vfs.zfs.arc_min="100M"
vfs.zfs.vdev.cache.size="5M"
vfs.zfs.debug=1
vfs.zfs.prefetch_disable="1"
Kernel Config:
machine i386
cpu I686_CPU
ident NGP
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options KDB # kernel debugger (just in case)
options KDB_TRACE
options DDB # kernel debugger (just in case)
options SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
options STOP_NMI # Stop CPUS using NMI instead of IPI
options HWPMC_HOOKS # hwpmc(4) performance measurements support. also needs
device or kernel module
#option KVA_PAGES=512 # bigger kernel address space (2GB) for ZFS
(conflicts with nvidia-driver)
# Alternate Queuing of network packets
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
#options ALTQ_NOPCC # Required for SMP build
device apic # I/O APIC
# Bus support.
device eisa
device pci
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
options ATA_STATIC_ID # Static device numbering
device atapicam # SCSI emulation for ATA
device scbus
device cd # SCSI CD (for atapicam)
device da # SCSI disk (for umass)
device pass
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
option SC_HISTORY_SIZE=1000
# normal output
options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
options SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN)
# kernel messages
options SC_KERNEL_CONS_ATTR=(FG_LIGHTRED|BG_BLACK)
options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)
# Add suspend/resume support for the i8254.
device pmtimer
# 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 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
# Pseudo devices.
device loop # Network loopback
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
# USB support (specific devices loaded as modules)
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # cannot be module -- otherwise compile errors
More information about the freebsd-stable
mailing list