Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Mar 2008 07:52:27 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org
Cc:        Andriy Gapon <avg@icyb.net.ua>
Subject:   Re: cpu stats and another interrupt question
Message-ID:  <200803060752.27235.jhb@freebsd.org>
In-Reply-To: <47B8055C.4060305@icyb.net.ua>
References:  <47B4A514.1020103@icyb.net.ua> <47B8055C.4060305@icyb.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 17 February 2008 04:58:52 am Andriy Gapon wrote:
> Come on, guys, simple yes or no would be enough for me :-)
>
> on 14/02/2008 22:31 Andriy Gapon said the following:
> > Dear hackers,
> > I'd like to check with you if my understanding of some code is correct.
> >
> > If we speak about a typical older i386 system, with UP and "AT" PIC, I
> > think this is how the CPU utilization stats are collected.
> > RTC is configured to generate interrupts (IRQ8) 128 times per second.
> > Each time interrupt is generated RTC interrupt handler (I will use
> > simple non technical terms) takes a peek at what was interrupted and
> > depending on the properties of that thing (kernel thread) bills a tick
> > to particular category. E.g. if it sees that the "idle" thread is
> > interrupted then a tick is billed to "idle", if an interrupt thread is
> > interrupted (software or hardware) then a tick is billed to interrupt,
> > if a thread is running user-mode code then a tick is billed to "user" or
> > "nice", otherwise it's "system".
> > I understand that I oversimplify, but is the above correct in general ?
> >
> > Another, unrelated, question.
> > Considering this snippet from sys/i386/isa/atpic.c, i8259_init():
> > #ifndef PC98
> >         /* OCW2_L1 sets priority order to 3-7, 0-2 (com2 first). */
> >         if (!slave)
> >                 outb(pic->at_ioaddr, OCW2_R | OCW2_SL | OCW2_L1);
> > #endif
> >
> > Do I understand correctly the code and the comment that here we use a
> > feature of 8259 PIC that can be called "cyclic shift of interrupt
> > priorities" ?
> > So, we really have the following order of interrupts, from higher
> > priority to lower: 3-7,0,1,8-15? Considering two chained 8259s, of
> > course.

Yes and yes.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803060752.27235.jhb>