Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Performance problems.
On May 5, 2010, at 9:09 AM, Johnny Billquist wrote:
> Tobias Nygren wrote:
>> On Wed, 05 May 2010 12:11:59 +0200
>> Johnny Billquist <bqt%softjar.se@localhost> wrote:
>>> Anyone else seen this, knows what could be affecting it, or care?
>>> Or are all others just using modern fast machines, where all this don't
>>> really make a blip on the radar anyway, or else is not using their machines
>>> enough to make this visible?
>> My gut feeling is that even on comparatively fast sparc64 hardware more
>> cycles are spent these days doing kernel work. But it may simply be
>> that the accounting in top(1) is broken / calculated differently from
>> how it used to be done. Benchmark results of current vs. 2.0 on low
>> powered uniprocessor systems would be very interesting to see.
>
> I'm trying to look at this now, but what I'm looking at right now don't seem
> to have any bearing on sparcs, sorry.
>
> That said, maybe someone can help me with a few details here. I'm looking at
> the softint code. Currently, there exists a __HAVE_FAST_SOFTINT option for
> the kernel. The only two architectures that seem to have defined this is x86
> and VAX.
> So far, so good.
>
> But looking further into kern/kern_softint.c, I see a number of calls to
> softint_init_isr, where the second parameter is said to be the interrupt
> priority. The comments and descriptions about soft interrupt priorities say:
>
> * The four priority levels map directly to scheduler priority
> * levels, and where the architecture implements 'fast' software
> * interrupts, they also map onto interrupt priorities. The
> * interrupt priorities are intended to be hidden from machine
> * independent code, which should use thread-safe mechanisms to
> * synchronize with software interrupts (for example: mutexes).
IPL_SOFTCLOCK is what that is referring to and those are defined correctly.
> If I understand all of this right, the priorities should then match the
> actual interrupt priorities if you have fast software interrupts.
> And for the softclock, this is PRI_SOFTCLOCK. But looking at the definition
> of PRI_SOFTCLOCK, it is defined as
>
> sys/sys/param.h:#define PRI_SOFTCLOCK (MAXPRI_KERNEL_RT - schedppq * 3)
>
> which I *very much* doubt becomes a suitable interrupt priority on a VAX.
PRI_xxx is not an interrupt priority, but a scheduling priority.
> Am I reading and understanding things wrong here, or is this fundamentally
> wrong in design? If the priority levels should match the interrupt levels in
> the case of fast soft interrupts, I can't understand why the definitions are
> in the MI files. It should be pretty machine dependent...
The former.
> Since only the VAX and x86 are using fast soft interrupts, I can see that the
> code might have been written so that it works on the x86. Since noone else
> uses it, noone else gets hit by this but the VAX.
Actually, MIPS is using them now too.
> If anyone can shed some more light on this, please do. In the meanwhile, I'll
> just do some blind testing and see if changing this will help...
Home |
Main Index |
Thread Index |
Old Index