Date: Tue, 30 May 2006 19:26:46 GMT From: Kip Macy <kmacy@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 98153 for review Message-ID: <200605301926.k4UJQkgt055284@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605301926.k4UJQkgt055284>