java/62837: linux-sun-jdk14 executables hang with COMPAT_LINUX in the the kernel.

Christopher Sean Hilton chris at vindaloo.com
Sat Feb 14 06:50:19 PST 2004


>Number:         62837
>Category:       java
>Synopsis:       linux-sun-jdk14 executables hang with COMPAT_LINUX in the the kernel.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-java
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Feb 14 06:50:18 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Christopher Sean Hilton
>Release:        FreeBSD 4.9-STABLE i386
>Organization:
Vindaloo.Com
>Environment:
System: FreeBSD dagobah.pvt.vindaloo.com 4.9-STABLE FreeBSD 4.9-STABLE #1: Wed Jan 28 17:07:24 EST 2004 chris at hoth.pvt.vindaloo.com:/usr/obj/usr/src/sys/GATEWAY-M450 i386


FreeBSD 4.9 Stable, Custom kernel with COMPAT_LINUX Specified.

Kernel config:

# Kernel Configuration for GATEWAY-M450 Laptop

machine		i386
cpu		I586_CPU
cpu		I686_CPU
ident		GATEWAY-M450
maxusers	0

options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	UFS_DIRHASH
options 	NFS			#Network Filesystem
options 	MSDOSFS			#MSDOS Filesystem
options		EXT2FS
options 	CD9660			#ISO 9660 Filesystem
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=5000		#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		ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev

options		COMPAT_LINUX

options		USER_LDT

options		IPSEC
options		IPSEC_ESP

options 	DDB
options 	DDB_UNATTENDED
options 	GDB_REMOTE_CHAT

device		isa
device		eisa
device		pci

device		apm0

# ATA and ATAPI devices
device		ata0
device		ata1
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
device		atapifd			# ATAPI floppy drives
device		atapist			# ATAPI tape drives

# 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)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12 flags 0x6100

# syscons is the default console driver, resembling an SCO console
device		vga0	at isa?
device		sc0	at isa? flags 0x100
pseudo-device	splash
options		VESA
options		SC_PIXEL_MODE

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# PCCARD (PCMCIA) support
device		card
device		pcic0	at isa? irq 10 port 0x3e0 iomem 0xd0000

# Server Management Bus Supported interfaces:
device		smbus		
device		intpm		# Intel PIIX4 Power Management Unit
device		iicbus		# Bus support, required for ic/iic/iicsmb below.
device		iicbb
device		ic
device		iic
device		iicsmb		# smb over i2c bridge

# Serial ports

device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? disable port IO_COM2 irq 3

# Parallel port
device		ppc0	at isa? irq 7
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

device		miibus		# MII bus support

device		em
device		wi

device		pcm

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	ppp	2	# Kernel PPP
pseudo-device	tun		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)

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

# USB support
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		usb		# USB Bus (required)
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		uvisor		# Visor USB PDA
device		ucom		# More Visor
# USB Ethernet, requires mii
device		aue		# ADMtek USB ethernet
device		cue		# CATC USB ethernet
device		kue		# Kawasaki LSI USB ethernet




>Description:

On systems with a custom kernel with COMPAT_LINUX compiled in and
linprocfs loaded as a module the Linux Sun jdk executables hang and
need to be killed with kill -9.

>How-To-Repeat:

Compile a 4.9 Stable kernel with COMPAT_LINUX. 
Load linprocfs with with kldload.
Add linux-sun-jdk from the ports collection.
Run the Linux Java compiler.

$ kldstat              
Id Refs Address    Size     Name
 1    3 0xc0100000 3359b4   kernel
 2    1 0xc2346000 7000     linprocfs.ko
 3    1 0xc23c3000 2000     green_saver.ko
$ uname -a
FreeBSD dagobah.pvt.vindaloo.com 4.9-STABLE FreeBSD 4.9-STABLE #1: Wed Jan 28 17:07:24 EST 2004     chris at hoth.pvt.vindaloo.com:/usr/obj/usr/src/sys/GATEWAY-M450  i386
$ kldstat
Id Refs Address    Size     Name
 1    3 0xc0100000 3359b4   kernel
 2    1 0xc2346000 7000     linprocfs.ko
 3    1 0xc23c3000 2000     green_saver.ko
$ pkg_info -aI | grep linux-sun
linux-sun-jdk-1.4.2.02 Sun Java Development Kit 1.4 for Linux

>Fix:

Using the GENERIC kernel and loading both the linux compatibility and
the linprocfs works around this problem. I assume that loading linux
from the module is the fix. I will test this this afternoon and post a
follow-up.

-- Chris


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-java mailing list