Subject: Re: i386 interrupt counters
To: Chris G Demetriou <Chris_G_Demetriou@ux2.sp.cs.cmu.edu>
From: Noriyuki Soda <soda@sra.co.jp>
List: tech-kern
Date: 08/14/1996 05:00:58
>>>>> On Mon, 12 Aug 1996 16:12:13 -0400,
	Chris G Demetriou <Chris_G_Demetriou@ux2.sp.cs.cmu.edu> said:

>> > (1) the first argument is a struct device *, which would mandate
>> > changing the calling interfaces for all (except possibly tc; i forget
>> > what that looks like) xxx_intr_establish() functions.

>> How do you think about changing last argument of
>> xxx_intr_establish() and argument of interrupt handler from
>> (void *) to (struct device *) ?
	:
> This is a bad idea; there's no reason to believe that that is at all
	:

>> Or, how about adding another argument (struct device *) to
>> xxx_intr_establish() ?

> This seems unnecessary, since the device could, and i would say
> _should_ do the evcnt handling itself.

Hmm...

If so, why do "struct intrhand" (on both i386 and alpha/pci/sio) and
"struct kn20aa_intrhand" have a member variable "ih_count" ?

It seems current handling of ih_count is somewhat vague.
If ih_count is bus level interrupt counter, why is it not
per-interrupt-line variable, but per-intrhand variable ?

Whether
	a) replace "u_long ih_count" with "struct evcnt ih_count".
	   increment ih_count, only if return value of interrupt handler != 0.
or
	b) remove "u_long ih_count" from "struct intrhand"
seems to be adequate.
--
soda@sra.co.jp		Software Research Associates, Inc., Japan
(Noriyuki Soda)		   software tools and technology group