Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jul 2010 13:55:05 -0300
From:      Luiz Otavio O Souza <lists.br@gmail.com>
To:        Jayachandran C. <c.jayachandran@gmail.com>
Cc:        freebsd-mips@freebsd.org
Subject:   Re: Merging 64 bit changes to -HEAD
Message-ID:  <7886D15B-79BF-4BC6-8467-26A8D0FE3D00@gmail.com>
In-Reply-To: <AANLkTimgyYggdDYchEfb3yskmA0PsttjVzkOSMaWFsjH@mail.gmail.com>
References:  <AANLkTik8jFkB7FTIIhyjalkfv1c0yXqse57Jzz527uf_@mail.gmail.com> <897604F6-95C4-49A8-B11F-277A74C8DBAE@gmail.com> <AANLkTilfW_zOFKuIa0gJ3ahTo-vGC1VNk99a1H24uFRq@mail.gmail.com> <AANLkTil78NFxH016C7MntD8L3d4rFlCudJ0Lv22L0KCb@mail.gmail.com> <3C0AEF9B-AE0C-4459-A4E1-2C8C30C10FD6@gmail.com> <AANLkTint7Hyf79EH29OLsIfreQRd7dQMdvX9wRq4v_yG@mail.gmail.com> <C6D73C96-3640-4502-A9D7-B3597E37E80A@gmail.com> <AANLkTilQIqF4FCfgLdVcKdcsAUVjCmr89Lu0TEXUFdYN@mail.gmail.com> <25B9A19D-0A6B-4731-8FB1-A2C6722F0E9C@gmail.com> <AANLkTim_9-G6ZuA0vkpLeG4n4GVBpBlxhGBy_7eQoIM4@mail.gmail.com> <C1BD2512-8A48-4AB2-B9CA-C46DDCBE5256@gmail.com> <AANLkTimgyYggdDYchEfb3yskmA0PsttjVzkOSMaWFsjH@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 30, 2010, at 7:40 PM, Jayachandran C. wrote:
> On Wed, Jun 30, 2010 at 10:38 PM, Luiz Otavio O Souza
> <lists.br@gmail.com> wrote:
>> On Jun 30, 2010, at 9:57 AM, Jayachandran C. wrote:
>>=20
>>> On Tue, Jun 29, 2010 at 10:32 PM, Luiz Otavio O Souza
>>> <lists.br@gmail.com> wrote:
>>>>=20
>>>> On Jun 29, 2010, at 8:02 AM, Jayachandran C. wrote:
>>>>=20
>>>>> On Tue, Jun 29, 2010 at 2:28 AM, Luiz Otavio O Souza =
<lists.br@gmail.com> wrote:
>>>>>>> Thanks for the the update. Looks like pmap_map for kernel is =
failing,
>>>>>>> may be the new tlb_update code causes this.  Can you apply the
>>>>>>> attached patch and see if the problem still persists, it =
replaces the
>>>>>>> new tlb_update code with the older version.
>>>>>>>=20
>>>>>>> Obviously not a fix, but if we can narrow it down to this =
function,
>>>>>>> fixing will be easier.
>>>>>>>=20
>>>>>>> JC.
>>>>>>> <try.diff>
>>>>>>=20
>>>>>> JC,
>>>>>>=20
>>>>>> This fix the problem ! Thanks ! Now, at least, you know where to =
look :)
>>>>>=20
>>>>> The new tlb_update does not seem to update the tlb entry if the =
tlbp
>>>>> fails.  Here's a patch that should make the new function behave =
like
>>>>> the older one.  The patch is in attached file 'tlb-update.diff'.
>>>>>=20
>>>>> If that does not work, I'm not sure what the issue is.  You could =
also
>>>>> try try the nop-change.diff attached. It tries to switch the ssnop
>>>>> used for delay in the new code with 'nop' which was used by the =
old
>>>>> code.
>>>>>=20
>>>>> Thanks,
>>>>> JC.
>>>>> <tlb-update.diff><nop-change.diff>
>>>>=20
>>>> JC,
>>>>=20
>>>> The nop-change seems to have no effect at all and with the =
tlb-update patch the kernel apparently crash at bzero(), here is the =
dmesg with TRAP_DEBUG enabled:
>>>>=20
>>>> http://mips.pastebin.com/jydPvJ20
>>>>=20
>>>> So hopefully you are on the right track and this may be something =
obvious to you.
>>>=20
>>> Not yet :) I really hoped the earlier change would fix it.  The =
number
>>> of nop does not seem to be the issue as it is higher in the C code
>>> than the assembly.
>>>=20
>>> Can you try the attached patch (try.diff) - this re-implements the
>>> assembly code functionality almost in the same way in C.  This =
really
>>> should work, given that the patch which made it assembly worked...
>>>=20
>>> If that works can you see if the second attached patch works, this
>>> fixes a potential problem (ie, we should be masking 13bits for =
TLBHI).
>>>=20
>>> Both patches should apply directly to SVN (not dependent on each
>>> other, or on previous patches)
>>>=20
>>> Thanks again,
>>> JC.
>>> <try.diff><pte.h-fix.diff>
>>=20
>>=20
>> JC,
>>=20
>> The try.diff works with or without the pte.h change (at least for a =
simple boot) and the pte.h change does nothing without the try.diff.
>=20
> I've attached the final(final.diff) version I want to check-in, can
> you please quickly test it?
>=20
> If that does not work, can you tell me if the attached alt1.diff or
> alt2.diff works? The try.diff had three changes: handle case of
> index>0, remove pagemask operation, restore full entryhi instead of
> asid. So if the first does not work, this will help narrow down the
> rest of the cases.
>=20
> Hopefully this is the last iteration :)
>=20
> JC.
> <final.diff><alt1.diff><alt2.diff>


JC,

The final.diff and alt1.diff crash (into debugger) like the first =
try.diff (here is the dmesg: http://pastebin.com/r2uunZPZ).

The alt2.diff works, i'll try it a little more (buildworld).

Feel free to send more tests if needed.

Thanks,
Luiz=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7886D15B-79BF-4BC6-8467-26A8D0FE3D00>