kernel compilation

Richard Kojedzinszky krichy at tvnetwork.hu
Wed Oct 12 15:46:06 UTC 2011


Dear users,

I've set up a freebsd 8.2 xen domU under debian squeeze, and have compiled 
a kernel with the attached config.

The first compilation error is here, due to -Werror:
# cc -c -O2 -pipe -fno-strict-aliasing -march=prescott -std=c99  -Wall 
-Wredundant-decls -Wnested-externs -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef 
-Wno-pointer-sign -fformat-extensions -nostdinc  -I. -I/usr/src/sys 
-I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS 
-include opt_global.h -fno-common -finline-limit=8000 --param 
inline-unit-growth=100 --param large-function-growth=1000 
-mno-align-long-strings -mpreferred-stack-boundary=2  -mno-mmx -mno-3dnow 
-mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector -Werror 
/usr/src/sys/i386/xen/xen_machdep.c
cc1: warnings being treated as errors
/usr/src/sys/i386/xen/xen_machdep.c:217: warning: 'xpq_queue_log' defined 
but not used

Then for some reason I've chosen to add an #ifdef around the mentioned 
variable, and then the kernel compiled well, and worked well.

Then I decided to strip more options from the kernel I dont use, so I 
removed SCTP from the config. Recompiled the kernel, and with that kernel, 
the domU crashes upon creation, nothing gets logged on the console.

I would like to investigate this problem, why does removing an 
unreferenced variable make the kernel crash upon creation?

But, unfortunately I cannot make my xen dom0 to make coredumps of the 
domains, for some reason only empty files get created under 
/var/xen/dump/. Do someone have experience with this?

Anyway, I am trying to use freebsd as a xen PV domU, as in my experience a 
PV domU can be much faster than a HVM domU. Is it true?

Regards,

Kojedzinszky Richard
TvNetWork Nyrt.
E-mail: krichy (at) tvnetwork [dot] hu
PGP: 0x54B2BF0C8F59B1B7
   Fingerprint = F6D4 3FFE AF03 CACF 0DCB  46A1 54B2 BF0C 8F59 B1B7
-------------- next part --------------
#
# XEN -- Kernel configuration for i386 XEN DomU
#
# $FreeBSD: src/sys/i386/conf/XEN,v 1.9.2.2.2.1 2010/12/21 17:09:25 kensmith Exp $

cpu		I686_CPU
ident		XI

#makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
makeoptions	MODULES_OVERRIDE=""

#options 	SCHED_4BSD		 
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		NULLFS
#options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
#options 	NFSCLIENT		# Network Filesystem Client
#options 	NFSSERVER		# Network Filesystem Server
#options 	NFSLOCKD		# Network Lock Manager
#options 	NFS_ROOT		# NFS usable as /, requires NFSCLIENT
#options 	MSDOSFS			# MSDOS Filesystem
#options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	GEOM_PART_GPT		# GUID Partition Tables.
options 	GEOM_LABEL		# Provides labelization
#options 	COMPAT_43TTY		# BSD 4.3 TTY compat (sgtty)
#options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
#options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
#options 	COMPAT_FREEBSD6		# Compatible with FreeBSD6
#options 	COMPAT_FREEBSD7		# Compatible with FreeBSD7
#options 	KTRACE			# ktrace(1) support
#options 	STACK			# stack(9) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	AUDIT			# Security event auditing

# Debugging for use in -current
#options 	KDB			# Enable kernel debugger support.
#options 	DDB			# Support DDB.
#options 	GDB			# Support remote GDB.
#options 	INVARIANTS		# Enable calls of extra sanity checking
#options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
#options 	WITNESS			# Enable checks to detect deadlocks and cycles
#options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed

options 	PAE
nooption	NATIVE
option		XEN
nodevice	atpic
nodevice	isa
options 	MCLSHIFT=12

# To make an SMP kernel, the next two lines are needed
#options 	SMP			# Symmetric MultiProcessor Kernel
#device		apic			# I/O APIC

device		pci

# Pseudo devices.
device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
#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

device		pf
device		pflog

options		MAC
options		MAC_BIBA


More information about the freebsd-xen mailing list