linux-mips
[Top] [All Lists]

Re: [PATCH 15/15] Do not rely on the initial state of TC/VPE bindings wh

To: "Gandham, Raghu" <raghu@mips.com>
Subject: Re: [PATCH 15/15] Do not rely on the initial state of TC/VPE bindings when doing cross VPE writes
From: "Kevin D. Kissell" <kevink@paralogos.com>
Date: Thu, 02 Jul 2009 15:08:50 -0700
Cc: linux-mips@linux-mips.org, "Dearman, Chris" <chris@mips.com>
In-reply-to: <94BD67F8AF3ED34FA362C662BA1F12C503BED88E@MTVEXCHANGE.mips.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20090702023938.23268.65453.stgit@linux-raghu> <20090702024331.23268.98671.stgit@linux-raghu> <4A4C314B.2070907@paralogos.com> <94BD67F8AF3ED34FA362C662BA1F12C503BED88E@MTVEXCHANGE.mips.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.21 (X11/20090318)
Gandham, Raghu wrote:
  
-----Original Message-----
From: Kevin D. Kissell [mailto:kevink@paralogos.com]
Sent: Wednesday, July 01, 2009 9:02 PM
To: Gandham, Raghu
Cc: linux-mips@linux-mips.org; Dearman, Chris
Subject: Re: [PATCH 15/15] Do not rely on the initial state of TC/VPE
bindings when doing cross VPE writes

Note that, regardless of the reset state, smtc_configure_tlb() should
have at least temporarily bound TC 1 to VPE1, which may be why this
never seemed to be a problem on the 34K.  If one wants to support
designs with more than 2 VPEs, then this is probably one of the things
that needs to be fixed.  That having been said, rather than adding a
usually-redundant write_vpe_c0_vpeconf0() in that clause, wouldn't it
    
be
  
cleaner to just move the MVP setting from the top of the loop to the
point in the loop just after the TCs have been bound to the VPE in
question, i.e.,

 454                 if (slop) {
 455                         if (tc != 0) {
 456                                 smtc_tc_setup(vpe,tc, cpu);
 457                                 cpu++;
 458                         }
 459                         printk(" %d", tc);
 460                         tc++;
 461                         slop--;
 462                 }

                        write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() |
VPECONF0_MVP);

 463                 if (vpe != 0) {
 464                         /*
 465                          * Clear any stale software interrupts
    
from
  
VPE's Cause
 466                          */

This should definitely be OK for a 34K, because it's being executed by
TC0 in VPE0 and the reset state of VPE0 has MVP set.  If it weren't,
smtc_configure_tlb() would have failed.

          Regards,

          Kevin K.
    

I will resend this patch with your suggestion.

Thanks,
Raghu
  
Just make sure it works, first!  ;o)  I'm thousands of miles away from my build/test systems.

          Regards,

          Kevn K.
<Prev in Thread] Current Thread [Next in Thread>