Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Aug 2010 19:55:15 +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:  <AANLkTi=vkG-cntJYYEdhO4AzOO91LB6n%2B45dUSxCMTp3@mail.gmail.com>
In-Reply-To: <AANLkTinP7eMNm4yp6T2TTteSvthdgLJOj-ihHrQJ4T49@mail.gmail.com>
References:  <201008041412.o74ECAix092415@svn.freebsd.org> <4C5A569B.9090401@cs.rice.edu> <AANLkTinP7eMNm4yp6T2TTteSvthdgLJOj-ihHrQJ4T49@mail.gmail.com>

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

On Thu, Aug 5, 2010 at 4:26 PM, Jayachandran C.
<c.jayachandran@gmail.com> wrote:
> On Thu, Aug 5, 2010 at 11:43 AM, Alan Cox <alc@cs.rice.edu> wrote:
>> 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 t=
his
>> because the software dirty bit emulation in trap.c acquires the pmap loc=
k.
>> =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?  This
has the above changes, and I have attempted to fix the other issue you
had reported on wired mapping count too.

There are a few calls for loadandclear() on pte too, with pmap lock
held, can this be avoided too?

Thanks,
JC.

--000e0ce004aaa1eb91048d145184
Content-Type: text/x-patch; charset=US-ASCII; name="pmap.diff"
Content-Disposition: attachment; filename="pmap.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gchp6r170

SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvcG1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL2lu
Y2x1ZGUvcG1hcC5oCShyZXZpc2lvbiAyMTA3OTYpCisrKyBzeXMvbWlwcy9pbmNsdWRlL3BtYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCw2IEBACiAJVEFJTFFfRU5UUlkocHZfZW50
cnkpIHB2X2xpc3Q7CiAJVEFJTFFfRU5UUlkocHZfZW50cnkpIHB2X3BsaXN0OwogCXZtX3BhZ2Vf
dCBwdl9wdGVtOwkvKiBWTSBwYWdlIGZvciBwdGUgKi8KLQlib29sZWFuX3QgcHZfd2lyZWQ7CS8q
IHdoZXRoZXIgdGhpcyBlbnRyeSBpcyB3aXJlZCAqLwogfSAgICAgICAqcHZfZW50cnlfdDsKIAog
CkluZGV4OiBzeXMvbWlwcy9taXBzL3BtYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9taXBz
L3BtYXAuYwkocmV2aXNpb24gMjEwODQ2KQorKysgc3lzL21pcHMvbWlwcy9wbWFwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTE0NzMsNyArMTQ3Myw2IEBACiAJCXB2LT5wdl92YSA9IHZhOwogCQlwdi0+
cHZfcG1hcCA9IHBtYXA7CiAJCXB2LT5wdl9wdGVtID0gbXB0ZTsKLQkJcHYtPnB2X3dpcmVkID0g
RkFMU0U7CiAJCVRBSUxRX0lOU0VSVF9UQUlMKCZwbWFwLT5wbV9wdmxpc3QsIHB2LCBwdl9wbGlz
dCk7CiAJCVRBSUxRX0lOU0VSVF9UQUlMKCZtLT5tZC5wdl9saXN0LCBwdiwgcHZfbGlzdCk7CiAJ
CW0tPm1kLnB2X2xpc3RfY291bnQrKzsKQEAgLTE3MTcsNyArMTcxNiw3IEBACiAJdm1fcGFnZV9s
b2NrX3F1ZXVlcygpOwogCVBNQVBfTE9DSyhwbWFwKTsKIAlmb3IgKDsgc3ZhIDwgZXZhOyBzdmEg
PSB2YV9uZXh0KSB7Ci0JCXB0X2VudHJ5X3QgcGJpdHMsIG9iaXRzOworCQlwdF9lbnRyeV90IHBi
aXRzOwogCQl2bV9wYWdlX3QgbTsKIAkJdm1fcGFkZHJfdCBwYTsKIApAQCAtMTc0Niw4ICsxNzQ1
LDcgQEAKIAkJCS8qIFNraXAgaW52YWxpZCBQVEVzICovCiAJCQlpZiAoIXB0ZV90ZXN0KHB0ZSwg
UFRFX1YpKQogCQkJCWNvbnRpbnVlOwotcmV0cnk6Ci0JCQlvYml0cyA9IHBiaXRzID0gKnB0ZTsK
KwkJCXBiaXRzID0gKnB0ZTsKIAkJCXBhID0gVExCTE9fUFRFX1RPX1BBKHBiaXRzKTsKIAkJCWlm
IChwYWdlX2lzX21hbmFnZWQocGEpICYmIHB0ZV90ZXN0KCZwYml0cywgUFRFX0QpKSB7CiAJCQkJ
bSA9IFBIWVNfVE9fVk1fUEFHRShwYSk7CkBAIC0xNzU4LDggKzE3NTYsNyBAQAogCQkJcHRlX3Nl
dCgmcGJpdHMsIFBURV9STyk7CiAJCQkKIAkJCWlmIChwYml0cyAhPSAqcHRlKSB7Ci0JCQkJaWYg
KCFhdG9taWNfY21wc2V0X2ludCgodV9pbnQgKilwdGUsIG9iaXRzLCBwYml0cykpCi0JCQkJCWdv
dG8gcmV0cnk7CisJCQkJKnB0ZSA9IHBiaXRzOwogCQkJCXBtYXBfdXBkYXRlX3BhZ2UocG1hcCwg
c3ZhLCBwYml0cyk7CiAJCQl9CiAJCX0KQEAgLTE4OTcsNyArMTg5NCw2IEBACiAJCXB2LT5wdl92
YSA9IHZhOwogCQlwdi0+cHZfcG1hcCA9IHBtYXA7CiAJCXB2LT5wdl9wdGVtID0gbXB0ZTsKLQkJ
cHYtPnB2X3dpcmVkID0gd2lyZWQ7CiAJCVRBSUxRX0lOU0VSVF9UQUlMKCZwbWFwLT5wbV9wdmxp
c3QsIHB2LCBwdl9wbGlzdCk7CiAJCVRBSUxRX0lOU0VSVF9UQUlMKCZtLT5tZC5wdl9saXN0LCBw
diwgcHZfbGlzdCk7CiAJCW0tPm1kLnB2X2xpc3RfY291bnQrKzsKQEAgLTI2NTUsMTUgKzI2NTEs
MjIgQEAKIHBtYXBfcGFnZV93aXJlZF9tYXBwaW5ncyh2bV9wYWdlX3QgbSkKIHsKIAlwdl9lbnRy
eV90IHB2OworCXBtYXBfdCBwbWFwOworCXB0X2VudHJ5X3QgKnB0ZTsKIAlpbnQgY291bnQ7CiAK
IAljb3VudCA9IDA7CiAJaWYgKChtLT5mbGFncyAmIFBHX0ZJQ1RJVElPVVMpICE9IDApCiAJCXJl
dHVybiAoY291bnQpOwogCXZtX3BhZ2VfbG9ja19xdWV1ZXMoKTsKLQlUQUlMUV9GT1JFQUNIKHB2
LCAmbS0+bWQucHZfbGlzdCwgcHZfbGlzdCkKLQkgICAgaWYgKHB2LT5wdl93aXJlZCkKLQkJY291
bnQrKzsKKwlUQUlMUV9GT1JFQUNIKHB2LCAmbS0+bWQucHZfbGlzdCwgcHZfbGlzdCkgeworCQlw
bWFwID0gcHYtPnB2X3BtYXA7CisJCVBNQVBfTE9DSyhwbWFwKTsKKwkJcHRlID0gcG1hcF9wdGUo
cG1hcCwgcHYtPnB2X3ZhKTsKKwkJaWYgKHB0ZV90ZXN0KHB0ZSwgUFRFX1cpKQorCQkJY291bnQr
KzsKKwkJUE1BUF9VTkxPQ0socG1hcCk7CisJfQogCXZtX3BhZ2VfdW5sb2NrX3F1ZXVlcygpOwog
CXJldHVybiAoY291bnQpOwogfQo=
--000e0ce004aaa1eb91048d145184--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=vkG-cntJYYEdhO4AzOO91LB6n%2B45dUSxCMTp3>