From owner-p4-projects@FreeBSD.ORG Wed May 31 22:01:22 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6910316B260; Wed, 31 May 2006 22:01:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B01BB16A7F1; Wed, 31 May 2006 22:01:15 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 108A943D48; Wed, 31 May 2006 22:01:14 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [131.106.61.215] (72-255-64-171.client.stsn.net [72.255.64.171]) (authenticated bits=0) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k4VM1BQH072517; Wed, 31 May 2006 18:01:14 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: Kip Macy Date: Wed, 31 May 2006 16:57:44 -0400 User-Agent: KMail/1.9.1 References: <200605301926.k4UJQkgt055284@repoman.freebsd.org> In-Reply-To: <200605301926.k4UJQkgt055284@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200605311657.44921.jhb@freebsd.org> X-Virus-Scanned: ClamAV 0.87.1/1504/Wed May 31 15:59:14 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.1 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: Perforce Change Reviews Subject: Re: PERFORCE change 98153 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 May 2006 22:01:27 -0000 On Tuesday 30 May 2006 15:26, Kip Macy wrote: > http://perforce.freebsd.org/chv.cgi?CH=98153 > > Change 98153 by kmacy@kmacy_storage:sun4v_work on 2006/05/30 19:25:49 > > for fast interrupts call fast interrupt handler directly > if there are no collisions on a vector I'd rather avoid this for now as it will have to be backed out for interrupt filters. > > Affected files ... > > .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/intr_machdep.c#8 edit > > Differences ... > > ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/intr_machdep.c#8 (text+ko) ==== > > @@ -205,9 +205,15 @@ > > ps = intr_disable(); > if (vec != -1) { > - intr_vectors[vec].iv_func = ivf; > - intr_vectors[vec].iv_arg = iva; > - intr_vectors[vec].iv_pri = pri; > + if ((char *)intr_vectors[vec].iv_func == (char *)intr_stray_level) { > + intr_vectors[vec].iv_func = ivf; > + intr_vectors[vec].iv_arg = iva; > + } else { > + intr_vectors[vec].iv_func = intr_execute_handlers; > + intr_vectors[vec].iv_arg = &intr_vectors[vec]; > + } > + if (pri > intr_vectors[vec].iv_pri) > + intr_vectors[vec].iv_pri = pri; > intr_vectors[vec].iv_vec = vec; > } > snprintf(pilname, MAXCOMLEN + 1, "pil%d: %s", pri, pil_names[pri]); > @@ -315,8 +321,9 @@ > struct intr_vector *iv; > struct intr_event *ie; /* descriptor for the IRQ */ > struct intr_event *orphan; > - int errcode; > - > + int errcode, pil; > + iv_func_t *ivf; > + void *iva; > /* > * Work around a race where more than one CPU may be registering > * handlers on the same IRQ at the same time. > @@ -347,8 +354,11 @@ > if (errcode) > return (errcode); > > - intr_setup(flags & INTR_FAST ? PIL_FAST : PIL_ITHREAD, intr_fast, vec, > - intr_execute_handlers, iv); > + pil = (flags & INTR_FAST) ? PIL_FAST : PIL_ITHREAD; > + ivf = (flags & INTR_FAST) ? handler : intr_execute_handlers; > + iva = (flags & INTR_FAST) ? arg : iv; > + > + intr_setup(pil, intr_fast, vec, ivf, iva); > > intr_stray_count[vec] = 0; > > -- John Baldwin