Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Aug 2010 15:59:09 +0530
From:      "Jayachandran C." <c.jayachandran@gmail.com>
To:        Alan Cox <alc@cs.rice.edu>
Cc:        "Jayachandran C." <jchandra@freebsd.org>, mips@freebsd.org
Subject:   Re: svn commit: r210846 - in head/sys/mips: include mips
Message-ID:  <AANLkTinxAkRTK8pLRkQ7JwesNkuwmuiRevOZMDpj_aj7@mail.gmail.com>
In-Reply-To: <4C5BA088.7060105@cs.rice.edu>
References:  <201008041412.o74ECAix092415@svn.freebsd.org> <4C5A569B.9090401@cs.rice.edu> <AANLkTinP7eMNm4yp6T2TTteSvthdgLJOj-ihHrQJ4T49@mail.gmail.com> <AANLkTi=vkG-cntJYYEdhO4AzOO91LB6n%2B45dUSxCMTp3@mail.gmail.com> <4C5BA088.7060105@cs.rice.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
--0016363ba3e225e292048d2523fa
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 6, 2010 at 11:11 AM, Alan Cox <alc@cs.rice.edu> wrote:
> On 08/05/2010 09:25, Jayachandran C. wrote:
>>
>> On Thu, Aug 5, 2010 at 4:26 PM, Jayachandran C.
>> <c.jayachandran@gmail.com> =A0wrote:
>>
>>>
>>> On Thu, Aug 5, 2010 at 11:43 AM, Alan Cox<alc@cs.rice.edu> =A0wrote:
>>>
>>>>
>>>> Just an observation ...
>>>>
>>>> Jayachandran C. wrote:
>>>>
>>>>>
>>>>> Author: jchandra
>>>>> Date: Wed Aug =A04 14:12:09 2010
>>>>> New Revision: 210846
>>>>> URL: http://svn.freebsd.org/changeset/base/210846
>>>>>
>>>>> Log:
>>>>> =A0Add 3 level page tables for MIPS in n64.
>>>>> =A0 =A0- 32 bit compilation will still use old 2 level page tables
>>>>> =A0- re-arrange pmap code so that adding another level is easier
>>>>> =A0- pmap code for 3 level page tables for n64
>>>>> =A0- update TLB handler to traverse 3 levels in n64
>>>>> =A0 =A0Reviewed by: =A0 =A0 =A0 =A0jmallett
>>>>>
>>>>
>>>> MIPS doesn't really need to use atomic_cmpset_int() in situations like
>>>> this
>>>> because the software dirty bit emulation in trap.c acquires the pmap
>>>> lock.
>>>> =A0Atomics like this appear to be a carryover from i386 where the
>>>> hardware-managed TLB might concurrently set the modified bit.
>>>>
>>>
>>> Then I guess we should be able to use *pte directly, without pbits,
>>> obits and the retry loop.
>>> Will try this change...
>>>
>>
>> Can you have a look at the attached patch and see if it is okay? =A0This
>> has the above changes, and I have attempted to fix the other issue you
>> had reported on wired mapping count too.
>>
>
> The patch looks good.
>
>> There are a few calls for loadandclear() on pte too, with pmap lock
>> held, can this be avoided too?
>>
>
> I haven't looked at them, but almost certainly yes.

The calls are in pmap_remove_pte(), pmap_remove_all() and
get_pv_entry(). the attached patch changes it normal pointer
operations. Thought I would post it for review before checking in...

Thanks,
JC.

--0016363ba3e225e292048d2523fa
Content-Type: text/x-patch; charset=US-ASCII; name="loadandclear.patch"
Content-Disposition: attachment; filename="loadandclear.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gcivyj9w0

SW5kZXg6IHN5cy9taXBzL21pcHMvcG1hcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL21pcHMv
cG1hcC5jCShyZXZpc2lvbiAyMTA5MjIpCisrKyBzeXMvbWlwcy9taXBzL3BtYXAuYwkod29ya2lu
ZyBjb3B5KQpAQCAtMTM1Miw5ICsxMzUyLDExIEBACiAJCQlwbWFwLT5wbV9zdGF0cy5yZXNpZGVu
dF9jb3VudC0tOwogCQkJcHRlID0gcG1hcF9wdGUocG1hcCwgdmEpOwogCQkJS0FTU0VSVChwdGUg
IT0gTlVMTCwgKCJwdGUiKSk7Ci0JCQlvbGRwdGUgPSBsb2FkYW5kY2xlYXIoKHVfaW50ICopcHRl
KTsKKwkJCW9sZHB0ZSA9ICpwdGU7CiAJCQlpZiAoaXNfa2VybmVsX3BtYXAocG1hcCkpCiAJCQkJ
KnB0ZSA9IFBURV9HOworCQkJZWxzZQorCQkJCSpwdGUgPSAwOwogCQkJS0FTU0VSVCghcHRlX3Rl
c3QoJm9sZHB0ZSwgUFRFX1cpLAogCQkJICAgICgid2lyZWQgcHRlIGZvciB1bndpcmVkIHBhZ2Ui
KSk7CiAJCQlpZiAobS0+bWQucHZfZmxhZ3MgJiBQVl9UQUJMRV9SRUYpCkBAIC0xNDk0LDkgKzE0
OTYsMTEgQEAKIAltdHhfYXNzZXJ0KCZ2bV9wYWdlX3F1ZXVlX210eCwgTUFfT1dORUQpOwogCVBN
QVBfTE9DS19BU1NFUlQocG1hcCwgTUFfT1dORUQpOwogCi0Jb2xkcHRlID0gbG9hZGFuZGNsZWFy
KCh1X2ludCAqKXB0cSk7CisJb2xkcHRlID0gKnB0cTsKIAlpZiAoaXNfa2VybmVsX3BtYXAocG1h
cCkpCiAJCSpwdHEgPSBQVEVfRzsKKwllbHNlCisJCSpwdHEgPSAwOwogCiAJaWYgKHB0ZV90ZXN0
KCZvbGRwdGUsIFBURV9XKSkKIAkJcG1hcC0+cG1fc3RhdHMud2lyZWRfY291bnQgLT0gMTsKQEAg
LTE2NTcsOSArMTY2MSwxMSBAQAogCiAJCXB0ZSA9IHBtYXBfcHRlKHB2LT5wdl9wbWFwLCBwdi0+
cHZfdmEpOwogCi0JCXRwdGUgPSBsb2FkYW5kY2xlYXIoKHVfaW50ICopcHRlKTsKKwkJdHB0ZSA9
ICpwdGU7CiAJCWlmIChpc19rZXJuZWxfcG1hcChwdi0+cHZfcG1hcCkpCiAJCQkqcHRlID0gUFRF
X0c7CisJCWVsc2UKKwkJCSpwdGUgPSAwOwogCiAJCWlmIChwdGVfdGVzdCgmdHB0ZSwgUFRFX1cp
KQogCQkJcHYtPnB2X3BtYXAtPnBtX3N0YXRzLndpcmVkX2NvdW50LS07Cg==
--0016363ba3e225e292048d2523fa--



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