PERFORCE change 98153 for review
John Baldwin
jhb at freebsd.org
Wed May 31 15:01:27 PDT 2006
On Tuesday 30 May 2006 15:26, Kip Macy wrote:
> http://perforce.freebsd.org/chv.cgi?CH=98153
>
> Change 98153 by kmacy at 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
More information about the p4-projects
mailing list