From owner-freebsd-ppc@FreeBSD.ORG Sun Nov 26 10:18:58 2006 Return-Path: X-Original-To: freebsd-ppc@freebsd.org Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B95F516A412 for ; Sun, 26 Nov 2006 10:18:58 +0000 (UTC) (envelope-from ice04-bounces@gir.seattlewireless.net) Received: from gir.seattlewireless.net (gir.seattlewireless.net [72.1.140.203]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2B73B43D66 for ; Sun, 26 Nov 2006 10:18:04 +0000 (GMT) (envelope-from ice04-bounces@gir.seattlewireless.net) Received: by gir.seattlewireless.net (Postfix, from userid 1018) id 2C4627103B; Sun, 26 Nov 2006 02:18:57 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on gir.seattlewireless.net X-Spam-Level: X-Spam-Status: No, score=-3.4 required=7.5 tests=ALL_TRUSTED,BAYES_00, NO_REAL_NAME,SPF_HELO_PASS autolearn=ham version=3.1.3 Received: from gir.seattlewireless.net (localhost [127.0.0.1]) by gir.seattlewireless.net (Postfix) with ESMTP id A63B571017 for ; Sun, 26 Nov 2006 02:18:52 -0800 (PST) MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit From: ice04-bounces@gir.seattlewireless.net To: freebsd-ppc@freebsd.org Message-ID: Date: Sun, 26 Nov 2006 02:18:51 -0800 Precedence: bulk X-BeenThere: ice04@gir.seattlewireless.net X-Mailman-Version: 2.1.8 X-List-Administrivia: yes Sender: ice04-bounces@gir.seattlewireless.net Errors-To: ice04-bounces@gir.seattlewireless.net Subject: Your message to Ice04 awaits moderator approval X-BeenThere: freebsd-ppc@freebsd.org List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Nov 2006 10:18:58 -0000 Your mail to 'Ice04' with the subject *****LIKELYSPAM***** Returned mail: see transcript for details Is being held until the list moderator can review it for approval. The reason it is being held: Post by non-member to a members-only list Either the message will get posted to the list, or you will receive notification of the moderator's decision. If you would like to cancel this posting, please visit the following URL: http://gir.seattlewireless.net/mailman/confirm/ice04/7009f33c63b7671f8133638995460a28b08ac853 From owner-freebsd-ppc@FreeBSD.ORG Mon Nov 27 11:09:26 2006 Return-Path: X-Original-To: freebsd-ppc@FreeBSD.org Delivered-To: freebsd-ppc@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 224C816A527 for ; Mon, 27 Nov 2006 11:09:26 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9577A43DC6 for ; Mon, 27 Nov 2006 11:07:38 +0000 (GMT) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (linimon@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id kARB8bNR092057 for ; Mon, 27 Nov 2006 11:08:37 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id kARB8aus092053 for freebsd-ppc@FreeBSD.org; Mon, 27 Nov 2006 11:08:36 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 27 Nov 2006 11:08:36 GMT Message-Id: <200611271108.kARB8aus092053@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: linimon set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-ppc@FreeBSD.org Cc: Subject: Current problem reports assigned to you X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Nov 2006 11:09:26 -0000 Current FreeBSD problem reports Critical problems Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- o power/93203 ppc FreeBSD PPC Can't Write to Partitions. 1 problem total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o power/95367 ppc docs for ppc release. 1 problem total. From owner-freebsd-ppc@FreeBSD.ORG Mon Nov 27 16:54:09 2006 Return-Path: X-Original-To: freebsd-ppc@freebsd.org Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4CA7F16AB3B for ; Mon, 27 Nov 2006 16:54:09 +0000 (UTC) (envelope-from cuthberthenrietta@karen.zzn.com) Received: from karen.zzn.com (d01m-213-44-214-53.d4.club-internet.fr [213.44.214.53]) by mx1.FreeBSD.org (Postfix) with SMTP id F22AE43D4C for ; Mon, 27 Nov 2006 16:53:06 +0000 (GMT) (envelope-from cuthberthenrietta@karen.zzn.com) Message-ID: <000001c71243$bfa4dcf0$c951a8c0@qbkhct> From: "Mark Portwood" To: freebsd-ppc@freebsd.org Date: Mon, 27 Nov 2006 08:47:39 -0800 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Re: nystagmu X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Mark Portwood List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Nov 2006 16:54:09 -0000 Hi, =20 VjAGRA_yl_$1,78 CjALiS_qt_$3,00 LEVjTRA_sp_$3,33 =20 www [dot] rx44 [dot] info _____ =20 now. From owner-freebsd-ppc@FreeBSD.ORG Tue Nov 28 11:15:12 2006 Return-Path: X-Original-To: freebsd-ppc@freebsd.org Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A32D916A47B for ; Tue, 28 Nov 2006 11:15:12 +0000 (UTC) (envelope-from bittle@ramsaybooks.com) Received: from marketpower.com (ALyon-254-1-81-153.w86-202.abo.wanadoo.fr [86.202.192.153]) by mx1.FreeBSD.org (Postfix) with SMTP id A2DF343DE5 for ; Tue, 28 Nov 2006 11:09:57 +0000 (GMT) (envelope-from bittle@ramsaybooks.com) Message-ID: <000001c712dd$39752780$1f7fa8c0@geybd> From: "Edison Cudjoe" To: freebsd-ppc@freebsd.org Date: Tue, 28 Nov 2006 03:06:16 -0800 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Re: absolutis X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Edison Cudjoe List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Nov 2006 11:15:12 -0000 Hi, =20 VjAGRA_ud_$1,78 CjALiS_ih_$3,00 LEVjTRA_gf_$3,33 =20 www [dot] rx44 [dot] info _____ =20 And thinking about dangerous, there was the other dangerous always From owner-freebsd-ppc@FreeBSD.ORG Wed Nov 29 20:47:24 2006 Return-Path: X-Original-To: ppc@freebsd.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6970216A415 for ; Wed, 29 Nov 2006 20:47:24 +0000 (UTC) (envelope-from grehan@freebsd.org) Received: from dommail.onthenet.com.au (dommail.OntheNet.com.au [203.13.70.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4A5EC43CA6 for ; Wed, 29 Nov 2006 20:47:20 +0000 (GMT) (envelope-from grehan@freebsd.org) Received: from [10.33.24.110] (nat-198-95-226-228.netapp.com [198.95.226.228]) by dommail.onthenet.com.au (MOS 3.5.7-GR) with ESMTP id CJH12972 (AUTH peterg@ptree32.com.au); Thu, 30 Nov 2006 06:47:10 +1000 (EST) Message-ID: <456DF1F4.6060404@freebsd.org> Date: Wed, 29 Nov 2006 12:47:48 -0800 From: Peter Grehan User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.8b) Gecko/20051014 MIME-Version: 1.0 To: Dario Freni References: <20061122095458.GA86970@builder.freesbie.org> In-Reply-To: <20061122095458.GA86970@builder.freesbie.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: ppc@freebsd.org Subject: Re: Instant panic on a recent current X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Nov 2006 20:47:24 -0000 Hi Dario, > I just upgraded to a -CURRENT from yesterday (previously it was the > 200608 snapshot) and I've got a panic right after the kernel is > booted: > > panic: mutex (null) not owned at /usr/src/sys/vm/vm_page.c:368 > [thread pid 0 tid 0 ] > Stopped at 0x29fb0c: lwz r11, r1, 0x0 Back from holidays and yes, instant panic :( I have a few hacks to try, though maybe it's time for a pmap rewrite :( > Then the ddb prompt, which is unusable with the usb keyboard. And that brings up an interesting point. Console input for devices that have large s/w stacks such as USB is difficult this early in the boot sequence. However, accessing the keyboard through openfirmware (or a PROM i/f such as EFI on other systems) is possible. An experiment I might try is to have an optional 'fallback' for syscons's cngetc, where a PROM call could be done until keyboard devices are probed. This would allow entry to the debugger at boot, which is a worthwhile feature. later, Peter. From owner-freebsd-ppc@FreeBSD.ORG Thu Nov 30 17:17:30 2006 Return-Path: X-Original-To: ppc@FreeBSD.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C96FB16A47C for ; Thu, 30 Nov 2006 17:17:30 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.183]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3768243D94 for ; Thu, 30 Nov 2006 17:11:10 +0000 (GMT) (envelope-from xcllnt@mac.com) Received: from mac.com (smtpin07-en2 [10.13.10.152]) by smtpout.mac.com (Xserve/8.12.11/smtpout13/MantshX 4.0) with ESMTP id kAUH8A6a029853 for ; Thu, 30 Nov 2006 09:08:10 -0800 (PST) Received: from [192.168.1.2] (c-67-164-11-148.hsd1.ca.comcast.net [67.164.11.148]) (authenticated bits=0) by mac.com (Xserve/smtpin07/MantshX 4.0) with ESMTP id kAUH81FP012818 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for ; Thu, 30 Nov 2006 09:08:09 -0800 (PST) Mime-Version: 1.0 (Apple Message framework v752.3) To: ppc@FreeBSD.org Message-Id: Content-Type: multipart/mixed; boundary=Apple-Mail-7--231809268 From: Marcel Moolenaar Date: Thu, 30 Nov 2006 09:07:48 -0800 X-Mailer: Apple Mail (2.752.3) X-Brightmail-Tracker: AAAAAA== X-Brightmail-scanned: yes Cc: Subject: Please review: shared interrupts with fast handlers X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Nov 2006 17:17:31 -0000 --Apple-Mail-7--231809268 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed All, Attached a patch to support interrupt sharing with fast handlers. It's pretty much copied from ia64. Please review. With these changes, vmstat -i shows: imac% vmstat -i interrupt total rate irq19: 102984 2 irq27: 3 0 irq28: 1 0 irq40: 1 0 irq41: 25400 0 Total 128389 2 I think this is the same as before, but can't really test right now. It's not that informative though. It's probably nicer to see the actual device name, as in: imac% vmstat -i interrupt total rate irq19: 102984 2 ohci0: 3 0 ohci1: 1 0 fwohci0: 1 0 gem0: 25400 0 Total 128389 2 Did I changethe output of vmstat -i? If not, should I do that? Thanks, --Apple-Mail-7--231809268 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name=intr_machdep.diff Content-Disposition: attachment; filename=intr_machdep.diff Index: intr_machdep.c =================================================================== RCS file: /home/ncvs/src/sys/powerpc/powerpc/intr_machdep.c,v retrieving revision 1.8 diff -u -r1.8 intr_machdep.c --- intr_machdep.c 2 Aug 2006 17:50:31 -0000 1.8 +++ intr_machdep.c 30 Nov 2006 04:48:40 -0000 @@ -66,6 +66,7 @@ #include #include #include +#include #include #include #include @@ -82,25 +83,18 @@ MALLOC_DEFINE(M_INTR, "intr", "interrupt handler data"); -static int intr_initialized = 0; +struct ppc_intr { + struct intr_event *event; + long *cntp; +}; + +static struct mtx ppc_intrs_lock; +static struct ppc_intr **ppc_intrs; +static u_int ppc_nintrs; -static u_int intr_nirq; -static struct ppc_intr_handler *intr_handlers; +static int intrcnt_index; -static struct mtx intr_table_lock; - -extern int extint, extsize; -extern u_long extint_call; - -static int intrcnt_index; -static ih_func_t intr_stray_handler; -static ih_func_t sched_ithd; - -static void (*irq_enable)(uintptr_t); -static void (*irq_disable)(uintptr_t); - -static void intrcnt_setname(const char *name, int index); -static void intrcnt_updatename(struct ppc_intr_handler *ih); +static void (*irq_enable)(uintptr_t); static void intrcnt_setname(const char *name, int index) @@ -109,85 +103,33 @@ MAXCOMLEN, name); } -static void -intrcnt_updatename(struct ppc_intr_handler *ih) -{ - intrcnt_setname(ih->ih_event->ie_fullname, ih->ih_index); -} - -static void -intrcnt_register(struct ppc_intr_handler *ih) -{ - char straystr[MAXCOMLEN + 1]; - - KASSERT(ih->ih_event != NULL, - ("%s: ppc_intr_handler with no event", __func__)); - - ih->ih_index = intrcnt_index; - intrcnt_index += 2; - snprintf(straystr, MAXCOMLEN + 1, "stray irq%d", ih->ih_irq); - intrcnt_updatename(ih); - ih->ih_count = &intrcnt[ih->ih_index]; - intrcnt_setname(straystr, ih->ih_index + 1); - ih->ih_straycount = &intrcnt[ih->ih_index + 1]; -} - void intr_init(void (*handler)(void), int nirq, void (*irq_e)(uintptr_t), void (*irq_d)(uintptr_t)) { - int i; - u_int32_t msr; - - if (intr_initialized != 0) - panic("intr_init: interrupts intialized twice\n"); + static int initialized = 0; + uint32_t msr; - intr_initialized++; + if (initialized) + panic("intr_init: interrupts initialized twice\n"); + initialized++; - intr_nirq = nirq; - intr_handlers = malloc(nirq * sizeof(struct ppc_intr_handler), M_INTR, + ppc_nintrs = nirq; + ppc_intrs = malloc(nirq * sizeof(struct ppc_intr *), M_INTR, M_NOWAIT|M_ZERO); - if (intr_handlers == NULL) + if (ppc_intrs == NULL) panic("intr_init: unable to allocate interrupt handler array"); - for (i = 0; i < nirq; i++) { - intr_handlers[i].ih_func = intr_stray_handler; - intr_handlers[i].ih_arg = &intr_handlers[i]; - intr_handlers[i].ih_irq = i; - intr_handlers[i].ih_flags = 0; - /* mux all initial stray irqs onto same count... */ - intr_handlers[i].ih_straycount = &intrcnt[0]; - } + mtx_init(&ppc_intrs_lock, "intr table", NULL, MTX_SPIN); + + irq_enable = irq_e; intrcnt_setname("???", 0); intrcnt_index = 1; msr = mfmsr(); mtmsr(msr & ~PSL_EE); - ext_intr_install(handler); - - mtmsr(msr); - - irq_enable = irq_e; - irq_disable = irq_d; - - mtx_init(&intr_table_lock, "intr table", NULL, MTX_SPIN); -} - -void -intr_setup(u_int irq, ih_func_t *ihf, void *iha, u_int flags) -{ - u_int32_t msr; - - msr = mfmsr(); - mtmsr(msr & ~PSL_EE); - - intr_handlers[irq].ih_func = ihf; - intr_handlers[irq].ih_arg = iha; - intr_handlers[irq].ih_irq = irq; - intr_handlers[irq].ih_flags = flags; - mtmsr(msr); } @@ -195,122 +137,111 @@ inthand_add(const char *name, u_int irq, void (*handler)(void *), void *arg, int flags, void **cookiep) { - struct ppc_intr_handler *ih; - struct intr_event *event, *orphan; - int error = 0; - int created_event = 0; + struct ppc_intr *i, *orphan; + u_int idx; + int error; /* * Work around a race where more than one CPU may be registering * handlers on the same IRQ at the same time. */ - ih = &intr_handlers[irq]; - mtx_lock_spin(&intr_table_lock); - event = ih->ih_event; - mtx_unlock_spin(&intr_table_lock); - if (event == NULL) { - error = intr_event_create(&event, (void *)irq, 0, + mtx_lock_spin(&ppc_intrs_lock); + i = ppc_intrs[irq]; + mtx_unlock_spin(&ppc_intrs_lock); + + if (i == NULL) { + i = malloc(sizeof(*i), M_INTR, M_NOWAIT); + if (i == NULL) + return (ENOMEM); + error = intr_event_create(&i->event, (void *)irq, 0, (void (*)(void *))irq_enable, "irq%d:", irq); - if (error) + if (error) { + free(i, M_INTR); return (error); + } - mtx_lock_spin(&intr_table_lock); + mtx_lock_spin(&ppc_intrs_lock); + if (ppc_intrs[irq] != NULL) { + orphan = i; + i = ppc_intrs[irq]; + mtx_unlock_spin(&ppc_intrs_lock); - if (ih->ih_event == NULL) { - ih->ih_event = event; - created_event++; - mtx_unlock_spin(&intr_table_lock); + intr_event_destroy(orphan->event); + free(orphan, M_INTR); } else { - orphan = event; - event = ih->ih_event; - mtx_unlock_spin(&intr_table_lock); - intr_event_destroy(orphan); + ppc_intrs[irq] = i; + idx = intrcnt_index++; + mtx_unlock_spin(&ppc_intrs_lock); + + i->cntp = &intrcnt[idx]; + intrcnt_setname(i->event->ie_fullname, idx); } } - /* XXX: Should probably fix support for multiple FAST. */ - if (flags & INTR_FAST) - flags |= INTR_EXCL; - error = intr_event_add_handler(event, name, handler, arg, + error = intr_event_add_handler(i->event, name, handler, arg, intr_priority(flags), flags, cookiep); - - if ((flags & INTR_FAST) == 0 || error) - intr_setup(irq, sched_ithd, ih, flags); - - if (error) - return (error); - - if (flags & INTR_FAST) - intr_setup(irq, handler, arg, flags); - - intrcnt_register(ih); - - return (0); + return (error); } int inthand_remove(u_int irq, void *cookie) { - struct ppc_intr_handler *ih; - int error; - - error = intr_event_remove_handler(cookie); - if (error == 0) { - ih = &intr_handlers[irq]; - - mtx_lock_spin(&intr_table_lock); - - if (ih->ih_event == NULL) { - intr_setup(irq, intr_stray_handler, ih, 0); - } else { - intr_setup(irq, sched_ithd, ih, 0); - } - - mtx_unlock_spin(&intr_table_lock); - } - - return (error); + return (intr_event_remove_handler(cookie)); } void intr_handle(u_int irq) { - atomic_add_long(intr_handlers[irq].ih_count, 1); - intr_handlers[irq].ih_func(intr_handlers[irq].ih_arg); + struct ppc_intr *i; + struct intr_event *ie; + struct intr_handler *ih; + int error, sched; + + i = ppc_intrs[irq]; + if (i == NULL) + goto stray; - /* XXX wrong thing when using pre-emption ? */ - if ((intr_handlers[irq].ih_flags & INTR_FAST) != 0) - irq_enable(irq); -} - -static void -intr_stray_handler(void *cookie) -{ - struct ppc_intr_handler *ih; + atomic_add_long(i->cntp, 1); - ih = (struct ppc_intr_handler *)cookie; + ie = i->event; + KASSERT(ie != NULL, ("%s: interrupt without an event", __func__)); - if (*intr_handlers[ih->ih_irq].ih_straycount < MAX_STRAY_LOG) { - printf("stray irq %d\n", ih->ih_irq); + if (TAILQ_EMPTY(&ie->ie_handlers)) + goto stray; - atomic_add_long(intr_handlers[ih->ih_irq].ih_straycount, 1); - if (*intr_handlers[ih->ih_irq].ih_straycount >= MAX_STRAY_LOG) - printf("got %d stray irq %d's: not logging anymore\n", - MAX_STRAY_LOG, ih->ih_irq); + /* + * Execute all fast interrupt handlers directly without Giant. Note + * that this means that any fast interrupt handler must be MP safe. + */ + sched = 0; + critical_enter(); + TAILQ_FOREACH(ih, &ie->ie_handlers, ih_next) { + if (!(ih->ih_flags & IH_FAST)) { + sched = 1; + continue; + } + CTR4(KTR_INTR, "%s: exec %p(%p) for %s", __func__, + ih->ih_handler, ih->ih_argument, ih->ih_name); + ih->ih_handler(ih->ih_argument); } -} - -static void -sched_ithd(void *cookie) -{ - struct ppc_intr_handler *ih; - int error; + critical_exit(); - ih = (struct ppc_intr_handler *)cookie; - - error = intr_event_schedule_thread(ih->ih_event); + if (sched) { + error = intr_event_schedule_thread(ie); + KASSERT(error == 0, ("%s: impossible stray interrupt", + __func__)); + } else + irq_enable(irq); + return; - if (error == EINVAL) - intr_stray_handler(ih); +stray: + atomic_add_long(&intrcnt[0], 1); + if (intrcnt[0] <= MAX_STRAY_LOG) { + printf("stray irq %d\n", irq); + if (intrcnt[0] >= MAX_STRAY_LOG) { + printf("got %d stray interrupts, not logging anymore\n", + MAX_STRAY_LOG); + } + } } --Apple-Mail-7--231809268 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed -- Marcel Moolenaar xcllnt@mac.com --Apple-Mail-7--231809268-- From owner-freebsd-ppc@FreeBSD.ORG Thu Nov 30 17:31:06 2006 Return-Path: X-Original-To: ppc@FreeBSD.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9A71216A403 for ; Thu, 30 Nov 2006 17:31:06 +0000 (UTC) (envelope-from grehan@freebsd.org) Received: from dommail.onthenet.com.au (dommail.OntheNet.com.au [203.13.70.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1BF0F43CAA for ; Thu, 30 Nov 2006 17:30:56 +0000 (GMT) (envelope-from grehan@freebsd.org) Received: from [192.168.0.13] (dsl-63-249-90-35.cruzio.com [63.249.90.35]) by dommail.onthenet.com.au (MOS 3.5.7-GR) with ESMTP id CJI47489 (AUTH peterg@ptree32.com.au); Fri, 1 Dec 2006 03:30:57 +1000 (EST) Message-ID: <456F14D7.60604@freebsd.org> Date: Thu, 30 Nov 2006 09:28:55 -0800 From: Peter Grehan User-Agent: Thunderbird 1.5.0.8 (Macintosh/20061025) MIME-Version: 1.0 To: Marcel Moolenaar References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: ppc@FreeBSD.org Subject: Re: Please review: shared interrupts with fast handlers X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: grehan@freebsd.org List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Nov 2006 17:31:06 -0000 Hi Marcel, > Attached a patch to support interrupt sharing with fast handlers. It's > pretty much copied from ia64. Please review. Looks fine. I reviewed (and tested) a patch that did much the same as part of the SoC interrupt project. I guess it's buried in p4 somewhere. I'll give your patch a run tonight. > With these changes, vmstat -i shows: > > imac% vmstat -i > interrupt total rate > irq19: 102984 2 > irq27: 3 0 > irq28: 1 0 > irq40: 1 0 > irq41: 25400 0 > Total 128389 2 > > I think this is the same as before, but can't really test right now. Here's the output on ppc/CURRENT: > vmstat -i interrupt total rate irq29: ohci2 1 0 irq63: ohci3 ohci+ 4 0 irq39: ata1 74 2 irq40: fwohci0 1806 56 irq41: gem0 127 3 Total 2012 62 later, Peter. From owner-freebsd-ppc@FreeBSD.ORG Thu Nov 30 18:03:16 2006 Return-Path: X-Original-To: ppc@freebsd.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E2E7016A403; Thu, 30 Nov 2006 18:03:16 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.175]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B05943CA2; Thu, 30 Nov 2006 18:03:07 +0000 (GMT) (envelope-from xcllnt@mac.com) Received: from mac.com (smtpin08-en2 [10.13.10.153]) by smtpout.mac.com (Xserve/8.12.11/smtpout05/MantshX 4.0) with ESMTP id kAUI3GXe002448; Thu, 30 Nov 2006 10:03:16 -0800 (PST) Received: from [172.24.92.147] (natint3.juniper.net [66.129.224.36]) (authenticated bits=0) by mac.com (Xserve/smtpin08/MantshX 4.0) with ESMTP id kAUI3EhI014793 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 30 Nov 2006 10:03:15 -0800 (PST) In-Reply-To: <456F14D7.60604@freebsd.org> References: <456F14D7.60604@freebsd.org> Mime-Version: 1.0 (Apple Message framework v752.3) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <1EB6DDF5-ABB0-4146-9E75-88B870863988@mac.com> Content-Transfer-Encoding: 7bit From: Marcel Moolenaar Date: Thu, 30 Nov 2006 10:02:58 -0800 To: grehan@freebsd.org X-Mailer: Apple Mail (2.752.3) X-Brightmail-Tracker: AAAAAA== X-Brightmail-scanned: yes Cc: ppc@freebsd.org Subject: Re: Please review: shared interrupts with fast handlers X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Nov 2006 18:03:17 -0000 On Nov 30, 2006, at 9:28 AM, Peter Grehan wrote: > Hi Marcel, > >> Attached a patch to support interrupt sharing with fast handlers. >> It's >> pretty much copied from ia64. Please review. > > Looks fine. I reviewed (and tested) a patch that did much the same > as part of the SoC interrupt project. I guess it's buried in p4 > somewhere. I'll give your patch a run tonight. If you know where in P4, I'll take a look at it. I think it would be nice if we could use the SoC code (modulo fixes and/or improvements). > > vmstat -i > interrupt total rate > irq29: ohci2 1 0 > irq63: ohci3 ohci+ 4 0 > irq39: ata1 74 2 > irq40: fwohci0 1806 56 > irq41: gem0 127 3 > Total 2012 62 Gotcha. I'll make sure to fix my patch to keep the previous behaviour... -- Marcel Moolenaar xcllnt@mac.com From owner-freebsd-ppc@FreeBSD.ORG Thu Nov 30 19:23:11 2006 Return-Path: X-Original-To: ppc@freebsd.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4F44A16A415 for ; Thu, 30 Nov 2006 19:23:11 +0000 (UTC) (envelope-from grehan@freebsd.org) Received: from dommail.onthenet.com.au (dommail.OntheNet.com.au [203.13.70.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id E2C8843CBB for ; Thu, 30 Nov 2006 19:22:57 +0000 (GMT) (envelope-from grehan@freebsd.org) Received: from [10.33.24.110] (nat-198-95-226-228.netapp.com [198.95.226.228]) by dommail.onthenet.com.au (MOS 3.5.7-GR) with ESMTP id CJI64320 (AUTH peterg@ptree32.com.au); Fri, 1 Dec 2006 05:22:56 +1000 (EST) Message-ID: <456F2FBE.6000007@freebsd.org> Date: Thu, 30 Nov 2006 11:23:42 -0800 From: Peter Grehan User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.8b) Gecko/20051014 MIME-Version: 1.0 To: Marcel Moolenaar References: <456F14D7.60604@freebsd.org> <1EB6DDF5-ABB0-4146-9E75-88B870863988@mac.com> In-Reply-To: <1EB6DDF5-ABB0-4146-9E75-88B870863988@mac.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: ppc@freebsd.org Subject: Re: Please review: shared interrupts with fast handlers X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Nov 2006 19:23:11 -0000 Hi Marcel, > If you know where in P4, I'll take a look at it. I think it would be > nice if we could use the SoC code (modulo fixes and/or improvements). It's in Paolo Pasato's tree, //depot/projects/soc2006/intr_filter later, Peter. From owner-freebsd-ppc@FreeBSD.ORG Sat Dec 2 19:23:44 2006 Return-Path: X-Original-To: ppc@freebsd.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B767A16A407; Sat, 2 Dec 2006 19:23:44 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.178]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7506143CA2; Sat, 2 Dec 2006 19:23:22 +0000 (GMT) (envelope-from xcllnt@mac.com) Received: from mac.com (smtpin07-en2 [10.13.10.152]) by smtpout.mac.com (Xserve/8.12.11/smtpout08/MantshX 4.0) with ESMTP id kB2JNiTM016132; Sat, 2 Dec 2006 11:23:44 -0800 (PST) Received: from [192.168.1.2] (c-67-164-11-148.hsd1.ca.comcast.net [67.164.11.148]) (authenticated bits=0) by mac.com (Xserve/smtpin07/MantshX 4.0) with ESMTP id kB2JNfdn024594 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sat, 2 Dec 2006 11:23:42 -0800 (PST) In-Reply-To: <456F2FBE.6000007@freebsd.org> References: <456F14D7.60604@freebsd.org> <1EB6DDF5-ABB0-4146-9E75-88B870863988@mac.com> <456F2FBE.6000007@freebsd.org> Mime-Version: 1.0 (Apple Message framework v752.3) Content-Type: multipart/mixed; boundary=Apple-Mail-1--50872773 Message-Id: <137AEBF1-AB26-4806-AE29-7D05F7BF0CAF@mac.com> From: Marcel Moolenaar Date: Sat, 2 Dec 2006 11:23:24 -0800 To: Peter Grehan X-Mailer: Apple Mail (2.752.3) X-Brightmail-Tracker: AAAAAA== X-Brightmail-scanned: yes Cc: ppc@freebsd.org Subject: Re: Please review: shared interrupts with fast handlers X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Dec 2006 19:23:44 -0000 --Apple-Mail-1--50872773 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On Nov 30, 2006, at 11:23 AM, Peter Grehan wrote: > Hi Marcel, > >> If you know where in P4, I'll take a look at it. I think it would be >> nice if we could use the SoC code (modulo fixes and/or improvements). > > It's in Paolo Pasato's tree, //depot/projects/soc2006/intr_filter I looked at it. It's obviously part of a bigger set of changes, so I can't take take it as is. I used what I could and fixed the vmstat output. The final patch is attached. --Apple-Mail-1--50872773 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name=intr_machdep.diff Content-Disposition: attachment; filename=intr_machdep.diff Index: intr_machdep.c =================================================================== RCS file: /home/ncvs/src/sys/powerpc/powerpc/intr_machdep.c,v retrieving revision 1.8 diff -u -r1.8 intr_machdep.c --- intr_machdep.c 2 Aug 2006 17:50:31 -0000 1.8 +++ intr_machdep.c 2 Dec 2006 18:27:17 -0000 @@ -66,6 +66,7 @@ #include #include #include +#include #include #include #include @@ -82,25 +83,19 @@ MALLOC_DEFINE(M_INTR, "intr", "interrupt handler data"); -static int intr_initialized = 0; +struct ppc_intr { + struct intr_event *event; + long *cntp; + int cntidx; +}; + +static struct mtx ppc_intrs_lock; +static struct ppc_intr **ppc_intrs; +static u_int ppc_nintrs; -static u_int intr_nirq; -static struct ppc_intr_handler *intr_handlers; +static int intrcnt_index; -static struct mtx intr_table_lock; - -extern int extint, extsize; -extern u_long extint_call; - -static int intrcnt_index; -static ih_func_t intr_stray_handler; -static ih_func_t sched_ithd; - -static void (*irq_enable)(uintptr_t); -static void (*irq_disable)(uintptr_t); - -static void intrcnt_setname(const char *name, int index); -static void intrcnt_updatename(struct ppc_intr_handler *ih); +static void (*irq_enable)(uintptr_t); static void intrcnt_setname(const char *name, int index) @@ -109,85 +104,31 @@ MAXCOMLEN, name); } -static void -intrcnt_updatename(struct ppc_intr_handler *ih) -{ - intrcnt_setname(ih->ih_event->ie_fullname, ih->ih_index); -} - -static void -intrcnt_register(struct ppc_intr_handler *ih) -{ - char straystr[MAXCOMLEN + 1]; - - KASSERT(ih->ih_event != NULL, - ("%s: ppc_intr_handler with no event", __func__)); - - ih->ih_index = intrcnt_index; - intrcnt_index += 2; - snprintf(straystr, MAXCOMLEN + 1, "stray irq%d", ih->ih_irq); - intrcnt_updatename(ih); - ih->ih_count = &intrcnt[ih->ih_index]; - intrcnt_setname(straystr, ih->ih_index + 1); - ih->ih_straycount = &intrcnt[ih->ih_index + 1]; -} - void intr_init(void (*handler)(void), int nirq, void (*irq_e)(uintptr_t), void (*irq_d)(uintptr_t)) { - int i; - u_int32_t msr; - - if (intr_initialized != 0) - panic("intr_init: interrupts intialized twice\n"); + uint32_t msr; - intr_initialized++; + if (ppc_intrs != NULL) + panic("intr_init: interrupts initialized twice\n"); - intr_nirq = nirq; - intr_handlers = malloc(nirq * sizeof(struct ppc_intr_handler), M_INTR, + ppc_nintrs = nirq; + ppc_intrs = malloc(nirq * sizeof(struct ppc_intr *), M_INTR, M_NOWAIT|M_ZERO); - if (intr_handlers == NULL) + if (ppc_intrs == NULL) panic("intr_init: unable to allocate interrupt handler array"); - for (i = 0; i < nirq; i++) { - intr_handlers[i].ih_func = intr_stray_handler; - intr_handlers[i].ih_arg = &intr_handlers[i]; - intr_handlers[i].ih_irq = i; - intr_handlers[i].ih_flags = 0; - /* mux all initial stray irqs onto same count... */ - intr_handlers[i].ih_straycount = &intrcnt[0]; - } + mtx_init(&ppc_intrs_lock, "intr table", NULL, MTX_SPIN); + + irq_enable = irq_e; intrcnt_setname("???", 0); intrcnt_index = 1; msr = mfmsr(); mtmsr(msr & ~PSL_EE); - ext_intr_install(handler); - - mtmsr(msr); - - irq_enable = irq_e; - irq_disable = irq_d; - - mtx_init(&intr_table_lock, "intr table", NULL, MTX_SPIN); -} - -void -intr_setup(u_int irq, ih_func_t *ihf, void *iha, u_int flags) -{ - u_int32_t msr; - - msr = mfmsr(); - mtmsr(msr & ~PSL_EE); - - intr_handlers[irq].ih_func = ihf; - intr_handlers[irq].ih_arg = iha; - intr_handlers[irq].ih_irq = irq; - intr_handlers[irq].ih_flags = flags; - mtmsr(msr); } @@ -195,122 +136,114 @@ inthand_add(const char *name, u_int irq, void (*handler)(void *), void *arg, int flags, void **cookiep) { - struct ppc_intr_handler *ih; - struct intr_event *event, *orphan; - int error = 0; - int created_event = 0; + struct ppc_intr *i, *orphan; + u_int idx; + int error; /* * Work around a race where more than one CPU may be registering * handlers on the same IRQ at the same time. */ - ih = &intr_handlers[irq]; - mtx_lock_spin(&intr_table_lock); - event = ih->ih_event; - mtx_unlock_spin(&intr_table_lock); - if (event == NULL) { - error = intr_event_create(&event, (void *)irq, 0, + mtx_lock_spin(&ppc_intrs_lock); + i = ppc_intrs[irq]; + mtx_unlock_spin(&ppc_intrs_lock); + + if (i == NULL) { + i = malloc(sizeof(*i), M_INTR, M_NOWAIT); + if (i == NULL) + return (ENOMEM); + error = intr_event_create(&i->event, (void *)irq, 0, (void (*)(void *))irq_enable, "irq%d:", irq); - if (error) + if (error) { + free(i, M_INTR); return (error); + } - mtx_lock_spin(&intr_table_lock); + mtx_lock_spin(&ppc_intrs_lock); + if (ppc_intrs[irq] != NULL) { + orphan = i; + i = ppc_intrs[irq]; + mtx_unlock_spin(&ppc_intrs_lock); - if (ih->ih_event == NULL) { - ih->ih_event = event; - created_event++; - mtx_unlock_spin(&intr_table_lock); + intr_event_destroy(orphan->event); + free(orphan, M_INTR); } else { - orphan = event; - event = ih->ih_event; - mtx_unlock_spin(&intr_table_lock); - intr_event_destroy(orphan); + ppc_intrs[irq] = i; + idx = intrcnt_index++; + mtx_unlock_spin(&ppc_intrs_lock); + + i->cntidx = idx; + i->cntp = &intrcnt[idx]; + intrcnt_setname(i->event->ie_fullname, idx); } } - /* XXX: Should probably fix support for multiple FAST. */ - if (flags & INTR_FAST) - flags |= INTR_EXCL; - error = intr_event_add_handler(event, name, handler, arg, + error = intr_event_add_handler(i->event, name, handler, arg, intr_priority(flags), flags, cookiep); - - if ((flags & INTR_FAST) == 0 || error) - intr_setup(irq, sched_ithd, ih, flags); - - if (error) - return (error); - - if (flags & INTR_FAST) - intr_setup(irq, handler, arg, flags); - - intrcnt_register(ih); - - return (0); + if (!error) + intrcnt_setname(i->event->ie_fullname, i->cntidx); + return (error); } int inthand_remove(u_int irq, void *cookie) { - struct ppc_intr_handler *ih; - int error; - - error = intr_event_remove_handler(cookie); - if (error == 0) { - ih = &intr_handlers[irq]; - - mtx_lock_spin(&intr_table_lock); - - if (ih->ih_event == NULL) { - intr_setup(irq, intr_stray_handler, ih, 0); - } else { - intr_setup(irq, sched_ithd, ih, 0); - } - - mtx_unlock_spin(&intr_table_lock); - } - - return (error); + return (intr_event_remove_handler(cookie)); } void intr_handle(u_int irq) { - atomic_add_long(intr_handlers[irq].ih_count, 1); - intr_handlers[irq].ih_func(intr_handlers[irq].ih_arg); + struct ppc_intr *i; + struct intr_event *ie; + struct intr_handler *ih; + int error, sched; + + i = ppc_intrs[irq]; + if (i == NULL) + goto stray; - /* XXX wrong thing when using pre-emption ? */ - if ((intr_handlers[irq].ih_flags & INTR_FAST) != 0) - irq_enable(irq); -} - -static void -intr_stray_handler(void *cookie) -{ - struct ppc_intr_handler *ih; + atomic_add_long(i->cntp, 1); - ih = (struct ppc_intr_handler *)cookie; + ie = i->event; + KASSERT(ie != NULL, ("%s: interrupt without an event", __func__)); - if (*intr_handlers[ih->ih_irq].ih_straycount < MAX_STRAY_LOG) { - printf("stray irq %d\n", ih->ih_irq); + if (TAILQ_EMPTY(&ie->ie_handlers)) + goto stray; - atomic_add_long(intr_handlers[ih->ih_irq].ih_straycount, 1); - if (*intr_handlers[ih->ih_irq].ih_straycount >= MAX_STRAY_LOG) - printf("got %d stray irq %d's: not logging anymore\n", - MAX_STRAY_LOG, ih->ih_irq); + /* + * Execute all fast interrupt handlers directly without Giant. Note + * that this means that any fast interrupt handler must be MP safe. + */ + sched = 0; + critical_enter(); + TAILQ_FOREACH(ih, &ie->ie_handlers, ih_next) { + if (!(ih->ih_flags & IH_FAST)) { + sched = 1; + continue; + } + CTR4(KTR_INTR, "%s: exec %p(%p) for %s", __func__, + ih->ih_handler, ih->ih_argument, ih->ih_name); + ih->ih_handler(ih->ih_argument); } -} - -static void -sched_ithd(void *cookie) -{ - struct ppc_intr_handler *ih; - int error; + critical_exit(); - ih = (struct ppc_intr_handler *)cookie; - - error = intr_event_schedule_thread(ih->ih_event); + if (sched) { + error = intr_event_schedule_thread(ie); + KASSERT(error == 0, ("%s: impossible stray interrupt", + __func__)); + } else + irq_enable(irq); + return; - if (error == EINVAL) - intr_stray_handler(ih); +stray: + atomic_add_long(&intrcnt[0], 1); + if (intrcnt[0] <= MAX_STRAY_LOG) { + printf("stray irq %d\n", irq); + if (intrcnt[0] >= MAX_STRAY_LOG) { + printf("got %d stray interrupts, not logging anymore\n", + MAX_STRAY_LOG); + } + } } --Apple-Mail-1--50872773 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed -- Marcel Moolenaar xcllnt@mac.com --Apple-Mail-1--50872773-- From owner-freebsd-ppc@FreeBSD.ORG Sat Dec 2 21:06:28 2006 Return-Path: X-Original-To: powerpc@freebsd.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0D7C216A403; Sat, 2 Dec 2006 21:06:28 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smarthost2.sentex.ca (smarthost2.sentex.ca [205.211.164.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id EE9C343CA6; Sat, 2 Dec 2006 21:06:04 +0000 (GMT) (envelope-from tinderbox@freebsd.org) Received: from smtp1.sentex.ca (smtp1.sentex.ca [199.212.134.4]) by smarthost2.sentex.ca (8.13.8/8.13.8) with ESMTP id kB2L6Qnh034695; Sat, 2 Dec 2006 16:06:26 -0500 (EST) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by smtp1.sentex.ca (8.13.8/8.13.8) with ESMTP id kB2L6QfY099748; Sat, 2 Dec 2006 16:06:26 -0500 (EST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id 2745E73068; Sat, 2 Dec 2006 16:06:26 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20061202210626.2745E73068@freebsd-current.sentex.ca> Date: Sat, 2 Dec 2006 16:06:26 -0500 (EST) X-Virus-Scanned: ClamAV version 0.88.1, clamav-milter version 0.88.1 on clamscanner1 X-Virus-Status: Clean Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Dec 2006 21:06:28 -0000 TB --- 2006-12-02 19:51:28 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2006-12-02 19:51:28 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2006-12-02 19:51:28 - cleaning the object tree TB --- 2006-12-02 19:52:19 - checking out the source tree TB --- 2006-12-02 19:52:19 - cd /tinderbox/HEAD/powerpc/powerpc TB --- 2006-12-02 19:52:19 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2006-12-02 20:05:28 - building world (CFLAGS=-O2 -pipe) TB --- 2006-12-02 20:05:28 - cd /src TB --- 2006-12-02 20:05:28 - /usr/bin/make -B buildworld >>> World build started on Sat Dec 2 20:05:30 UTC 2006 >>> 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 >>> World build completed on Sat Dec 2 21:00:40 UTC 2006 TB --- 2006-12-02 21:00:40 - generating LINT kernel config TB --- 2006-12-02 21:00:40 - cd /src/sys/powerpc/conf TB --- 2006-12-02 21:00:40 - /usr/bin/make -B LINT TB --- 2006-12-02 21:00:41 - building LINT kernel (COPTFLAGS=-O2 -pipe) TB --- 2006-12-02 21:00:41 - cd /src TB --- 2006-12-02 21:00:41 - /usr/bin/make buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Dec 2 21:00:41 UTC 2006 >>> 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 [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -fformat-extensions -nostdinc -I- -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -fno-omit-frame-pointer -msoft-float -ffreestanding -Werror /src/sys/fs/unionfs/union_subr.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -fformat-extensions -nostdinc -I- -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -fno-omit-frame-pointer -msoft-float -ffreestanding -Werror /src/sys/fs/unionfs/union_vfsops.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -fformat-extensions -nostdinc -I- -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -fno-omit-frame-pointer -msoft-float -ffreestanding -Werror /src/sys/fs/unionfs/union_vnops.c /src/sys/fs/unionfs/union_vnops.c: In function `unionfs_strategy': /src/sys/fs/unionfs/union_vnops.c:1871: error: dereferencing pointer to incomplete type /src/sys/fs/unionfs/union_vnops.c:1871: error: `BIO_WRITE' undeclared (first use in this function) /src/sys/fs/unionfs/union_vnops.c:1871: error: (Each undeclared identifier is reported only once /src/sys/fs/unionfs/union_vnops.c:1871: error: for each function it appears in.) *** Error code 1 Stop in /obj/powerpc/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2006-12-02 21:06:25 - WARNING: /usr/bin/make returned exit code 1 TB --- 2006-12-02 21:06:25 - ERROR: failed to build lint kernel TB --- 2006-12-02 21:06:25 - tinderbox aborted TB --- 0.72 user 2.38 system 4497.29 real http://tinderbox.des.no/tinderbox-head-HEAD-powerpc-powerpc.full