linux-mips
[Top] [All Lists]

Re: [MIPS] SMTC: smtc_timer_broadcast ignores its arguments, make it voi

To: "Kevin D. Kissell" <kevink@mips.com>
Subject: Re: [MIPS] SMTC: smtc_timer_broadcast ignores its arguments, make it void.
From: Ralf Baechle <ralf@linux-mips.org>
Date: Sat, 4 Aug 2007 17:38:31 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <023a01c7d087$02943c20$10eca8c0@grendel>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <S20021645AbXG0Sih/20070727183837Z+1462@ftp.linux-mips.org> <023a01c7d087$02943c20$10eca8c0@grendel>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.14 (2007-02-12)
Kevin,

On Fri, Jul 27, 2007 at 09:47:47PM +0200, Kevin D. Kissell wrote:

> The argument to smtc_timer_broadcast() is supposed to be a VPE number.
> Somewhere between the earliest prototypes and the current linux-mips.org
> tree, it got hacked up to ignore the argument and broadcast to all TCs.
> There are still configurations out there, some of which I've worked on 
> pretty recently, where the platform code can be configured to either
> do global or VPE-local broadcasting of timer interrupts.  While we have
> determined that it's pretty important to ensure that, in an SMTC 
> configuration,
> having the Count registers of all VPEs in sync is important to avoid timing
> glitches, skewing the starting Compare values should help even out the load
> and reduce contention for the locks on the scheduler queues. Getting rid
> of the argument to smtc_timer_broadcast() makes that impossible.  I'd 
> rather see the platform timer code iterate through the configured VPEs 
> and keep the argument.
> 
> The most recent smtc_timer_broadcast() I've worked on looks like:
> 
> void smtc_timer_broadcast(int vpe)
> {
>         int cpu;
>         int myTC = cpu_data[smp_processor_id()].tc_id;
> 
>         smtc_cpu_stats[smp_processor_id()].timerints++;
> 
>         for_each_online_cpu(cpu) {
>                 if (cpu_data[cpu].vpe_id == vpe &&
>                     cpu_data[cpu].tc_id != myTC)
>                         smtc_send_ipi(cpu, SMTC_CLOCK_TICK, 0);
>         }
> }

I don't mind adding the deleted bits back.

Take the fact that this happened as a life demonstration for unused stuff
of any kind being under is under permanent threat of deletion by some
maintainer, kernel janitor or whoever else in Linux ;-)

  Ralf

<Prev in Thread] Current Thread [Next in Thread>
  • Re: [MIPS] SMTC: smtc_timer_broadcast ignores its arguments, make it void., Ralf Baechle <=