Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Aug 2008 16:25:54 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        jb@freebsd.org
Cc:        stable@freebsd.org
Subject:   Re: [releng_7 tinderbox] failure on amd64/amd64
Message-ID:  <20080828132554.GP2038@deviant.kiev.zoral.com.ua>
In-Reply-To: <20080828113315.0B8A31B5078@freebsd-stable.sentex.ca>
References:  <20080828113315.0B8A31B5078@freebsd-stable.sentex.ca>

next in thread | previous in thread | raw e-mail | index | archive | help

--3bc47Eih9dS+biPM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 28, 2008 at 07:33:14AM -0400, FreeBSD Tinderbox wrote:
> TB --- 2008-08-28 09:46:09 - tinderbox 2.3 running on freebsd-stable.sent=
ex.ca
> TB --- 2008-08-28 09:46:09 - starting RELENG_7 tinderbox run for amd64/am=
d64
> TB --- 2008-08-28 09:46:09 - cleaning the object tree
> TB --- 2008-08-28 09:46:30 - cvsupping the source tree
> TB --- 2008-08-28 09:46:30 - /usr/bin/csup -r 3 -g -L 1 -h localhost -s /=
tinderbox/RELENG_7/amd64/amd64/supfile
> TB --- 2008-08-28 09:46:37 - building world (CFLAGS=3D-O2 -pipe)
> TB --- 2008-08-28 09:46:37 - cd /src
> TB --- 2008-08-28 09:46:37 - /usr/bin/make -B buildworld
> >>> World build started on Thu Aug 28 09:46:38 UTC 2008
> >>> Rebuilding the temporary build tree
> >>> stage 1.1: legacy release compatibility shims
> >>> stage 1.2: bootstrap tools
> >>> stage 2.1: cleaning up the object tree
> >>> stage 2.2: rebuilding the object tree
> >>> stage 2.3: build tools
> >>> stage 3: cross tools
> >>> stage 4.1: building includes
> >>> stage 4.2: building libraries
> >>> stage 4.3: make dependencies
> >>> stage 4.4: building everything
> >>> stage 5.1: building 32 bit shim libraries
> >>> World build completed on Thu Aug 28 11:17:55 UTC 2008
> TB --- 2008-08-28 11:17:55 - generating LINT kernel config
> TB --- 2008-08-28 11:17:55 - cd /src/sys/amd64/conf
> TB --- 2008-08-28 11:17:55 - /usr/bin/make -B LINT
> TB --- 2008-08-28 11:17:55 - building LINT kernel (COPTFLAGS=3D-O2 -pipe)
> TB --- 2008-08-28 11:17:55 - cd /src
> TB --- 2008-08-28 11:17:55 - /usr/bin/make -B buildkernel KERNCONF=3DLINT
> >>> Kernel build for LINT started on Thu Aug 28 11:17:55 UTC 2008
> >>> stage 1: configuring the kernel
> >>> stage 2.1: cleaning up the object tree
> >>> stage 2.2: rebuilding the object tree
> >>> stage 2.3: build tools
> >>> stage 3.1: making dependencies
> >>> stage 3.2: building everything
> [...]
> awk -f /src/sys/modules/cxgb/cxgb_t3fw/../../../conf/kmod_syms.awk cxgb_t=
3fw.ko  export_syms | xargs -J% objcopy % cxgb_t3fw.ko
> objcopy --strip-debug cxgb_t3fw.ko
> =3D=3D=3D> cyclic (all)
> cc -O2 -pipe -DDEBUG=3D1 -fno-strict-aliasing  -D_KERNEL -DKLD_MODULE -st=
d=3Dc99 -nostdinc  -I/src/sys/modules/cyclic/../../cddl/compat/opensolaris =
-I/src/sys/modules/cyclic/../../cddl/contrib/opensolaris/uts/common -I/src/=
sys/modules/cyclic/../.. -I/src/sys/modules/cyclic/../../cddl/dev/cyclic/am=
d64 -DHAVE_KERNEL_OPTION_HEADERS -include /obj/amd64/src/sys/LINT/opt_globa=
l.h -I. -I@ -I@/contrib/altq -finline-limit=3D8000 --param inline-unit-grow=
th=3D100 --param large-function-growth=3D1000 -fno-common  -fno-omit-frame-=
pointer -I/obj/amd64/src/sys/LINT -mcmodel=3Dkernel -mno-red-zone  -mfpmath=
=3D387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow  -msoft-float -fno-asynchrono=
us-unwind-tables -ffreestanding -Wall -Wredundant-decls -Wnested-externs -W=
strict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qua=
l  -Wundef -Wno-pointer-sign -fformat-extensions -Wno-unknown-pragmas -c /s=
rc/sys/modules/cyclic/../../cddl/dev/cyclic/cyclic.c
> In file included from /src/sys/modules/cyclic/../../cddl/compat/opensolar=
is/sys/cyclic.h:40,
>                  from /src/sys/modules/cyclic/../../cddl/compat/opensolar=
is/sys/cyclic_impl.h:33,
>                  from /src/sys/modules/cyclic/../../cddl/dev/cyclic/cycli=
c.c:329:
> /src/sys/modules/cyclic/../../cddl/compat/opensolaris/sys/cpuvar.h:72: er=
ror: size of array 'cpuc_pad' is too large
> *** Error code 1

This one is caused by struct sx difference between stable/7 and head.
More detailed, sizeof(struct sx) in the LINT build exceeds 56 bytes,
and causes CPUC_PADSIZE to be negative.

I think that CPU_CACHE_COHERENCE_SIZE shall be defined as roundup. Unless
you have objections, I will commit this to HEAD with short MFC period:

diff --git a/sys/cddl/compat/opensolaris/sys/cpuvar.h b/sys/cddl/compat/ope=
nsolaris/sys/cpuvar.h
index df0af5c..b42fda6 100644
--- a/sys/cddl/compat/opensolaris/sys/cpuvar.h
+++ b/sys/cddl/compat/opensolaris/sys/cpuvar.h
@@ -65,7 +65,8 @@ extern solaris_cpu_t    solaris_cpu[];
  */
 #define	CPUC_SIZE		(sizeof (uint16_t) + sizeof (uintptr_t) + \
 				sizeof (kmutex_t))
-#define	CPUC_PADSIZE		CPU_CACHE_COHERENCE_SIZE - CPUC_SIZE
+#define	CPUC_SIZE1		roundup(CPUC_SIZE, CPU_CACHE_COHERENCE_SIZE)
+#define	CPUC_PADSIZE		CPUC_SIZE1 - CPUC_SIZE
=20
 typedef struct cpu_core {
 	uint16_t	cpuc_dtrace_flags;	/* DTrace flags */

--3bc47Eih9dS+biPM
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEARECAAYFAki2p2EACgkQC3+MBN1Mb4jJKwCbBWTLFtiOIzkbi8xNqG3rPeo8
HbcAn2ERj2CNd6gGaWbs/kYI+apkJkoO
=eNUc
-----END PGP SIGNATURE-----

--3bc47Eih9dS+biPM--



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