From owner-svn-src-all@FreeBSD.ORG Thu Jun 3 04:50:44 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0941106566B; Thu, 3 Jun 2010 04:50:44 +0000 (UTC) (envelope-from c.jayachandran@gmail.com) Received: from mail-pv0-f182.google.com (mail-pv0-f182.google.com [74.125.83.182]) by mx1.freebsd.org (Postfix) with ESMTP id 94A7B8FC1F; Thu, 3 Jun 2010 04:50:44 +0000 (UTC) Received: by pvh11 with SMTP id 11so412094pvh.13 for ; Wed, 02 Jun 2010 21:50:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=JPw3JxMrCpgllN0QR1JBvmYYIDjJlMl2FPi487fnGpI=; b=iJLc2VO/qjJXciYDpZRLO9c0LCHWiQgx7IeG2Z7OJAZyL6XPSdykOlbsqASw9jEr5w I7oCj1/T679Ve/hWwzXwonuNA99wDh1+nZzJ6uDj+xZv2BsrjkPbZDPG3WF1WareHRYN u5URxWQ7qnlNWA1DljrYvLCoi+yVVPpIjoaV4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=SZKRJ23r94duu+b3QvgXF6NjA6Znl0rWUV53EBvcSqVlCVNA2P25dbrLQUlaUDfXuH IAB/tbWNva8xQ0hZ1wVsuB5+31/ClK8wLfkQmJ7Yg1439KmXG7Neu4qtI1/fsWOKe8ND YHwz8ZnggddjrX2qLMjIzWPDMiQ7p7wgJ/i2I= MIME-Version: 1.0 Received: by 10.141.188.4 with SMTP id q4mr7635207rvp.147.1275540643905; Wed, 02 Jun 2010 21:50:43 -0700 (PDT) Received: by 10.141.4.3 with HTTP; Wed, 2 Jun 2010 21:50:43 -0700 (PDT) In-Reply-To: <4C0731A5.7090301@cs.rice.edu> References: <201005271005.o4RA5eVu032269@svn.freebsd.org> <4C058145.3000707@cs.rice.edu> <4C05F9BC.40409@cs.rice.edu> <4C0731A5.7090301@cs.rice.edu> Date: Thu, 3 Jun 2010 10:20:43 +0530 Message-ID: From: "C. Jayachandran" To: Alan Cox Content-Type: multipart/mixed; boundary=000e0cd1aa3efa00ac048818f237 Cc: "Jayachandran C." , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Randall Stewart Subject: Re: svn commit: r208589 - head/sys/mips/mips X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2010 04:50:45 -0000 --000e0cd1aa3efa00ac048818f237 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Thu, Jun 3, 2010 at 10:07 AM, Alan Cox wrote: > C. Jayachandran wrote: >> >> On Wed, Jun 2, 2010 at 11:57 AM, Alan Cox wrote: >> >>> >>> C. Jayachandran wrote: >>> >>>> >>>> On Wed, Jun 2, 2010 at 3:23 AM, Alan Cox wrote: >>>> >>>> >>>>> >>>>> On 5/27/2010 5:05 AM, Jayachandran C. wrote: >>>>> >>>>> >>>>>> >>>>>> Author: jchandra >>>>>> Date: Thu May 27 10:05:40 2010 >>>>>> New Revision: 208589 >>>>>> URL: http://svn.freebsd.org/changeset/base/208589 >>>>>> >>>>>> Log: >>>>>> =A0Call VM_WAIT in pmap_ptpgzone_allocf() if =A0M_WAITOK is set. >>>>>> =A0Removed unused variable. >>>>>> >>>>>> =A0Approved by: rrs (mentor) >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> I'm afraid that this will work some of the time, but not all of the >>>>> time. >>>>> =A0Specifically, there is no guarantee that any of the available free= (or >>>>> cached) pages after the VM_WAIT will fall within the range of suitabl= e >>>>> physical addresses. =A0Moreover, and perhaps most worrisome, is that = this >>>>> function could do a lot of spinning. =A0Every time this function slee= ps >>>>> and >>>>> a >>>>> single page is freed (or cached) by someone else, this function will = be >>>>> reawakened. =A0With a little bad luck, you could spin indefinitely. >>>>> >>>>> For essentially this reason, contigmalloc(), kmem_alloc_contig(), and >>>>> kmem_alloc_attr() don't use VM_WAIT, but instead a function called >>>>> vm_contig_grow_cache(). >>>>> >>>>> >>>> >>>> I had seen the vm_contig_grow_cache() usage, but could not use it as >>>> it was defined as a static function. >>>> >>>> I did not want to use contigmalloc()/kmem_alloc_contig() either, >>>> because the pages in that memory region are already direct mapped and >>>> setting up another mapping is not necessary. The overall idea is to >>>> allocate pages in the direct mapped region for the page table entries >>>> so that we don't take a TLB exception while accessing page tables >>>> (which is costly as MIPS has a software TLB exception handler). >>>> >>>> Can you suggest the right way to do this? I will make the changes and >>>> send a patch for approval. >>>> >>>> >>> >>> I would encourage you to make vm_contig_grow_cache() an extern function >>> and >>> use it. =A0(vm/vm_pageout.h is probably the best place for the function >>> prototype.) >>> >> >> I'll create a patch for this and related changes in mips/mips/pmap.c >> >> > > Great. =A0Thanks! > >>> If you're interested in taking this a small step further, it would make >>> sense to add two parameters to vm_contig_grow_cache() and >>> vm_contig_launder(): a "low" and a "high" physical address. >>> =A0vm_contig_launder() could then skip pages that are outside the desir= ed >>> range. >>> >> >> I am looking at this now, =A0part of the logic which >> vm_phys_alloc_contig() uses to check pages address should work here. >> Will send out changes for this, if it works out. >> >> > > I suspect that you'll just need to add two or three lines to > vm_contig_launder(). =A0If something doesn't make sense, just e-mail me. The current changes I have is attached - still testing it. JC. --000e0cd1aa3efa00ac048818f237 Content-Type: text/x-diff; charset=US-ASCII; name="vm_contig_grow_cache.patch" Content-Disposition: attachment; filename="vm_contig_grow_cache.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9z3vczo0 SW5kZXg6IHN5cy9taXBzL21pcHMvcG1hcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL21pcHMv cG1hcC5jCShyZXZpc2lvbiAyMDg3NTMpCisrKyBzeXMvbWlwcy9taXBzL3BtYXAuYwkod29ya2lu ZyBjb3B5KQpAQCAtOTY3LDE5ICs5NjcsMjMgQEAKIHsKIAl2bV9wYWdlX3QgbTsKIAl2bV9wYWRk cl90IHBhZGRyOworCWludCB0cmllczsKIAkKIAlLQVNTRVJUKGJ5dGVzID09IFBBR0VfU0laRSwK IAkJKCJwbWFwX3B0cGd6b25lX2FsbG9jZjogaW52YWxpZCBhbGxvY2F0aW9uIHNpemUgJWQiLCBi eXRlcykpOwogCiAJKmZsYWdzID0gVU1BX1NMQUJfUFJJVjsKLQlmb3IgKDs7KSB7Ci0JCW0gPSB2 bV9waHlzX2FsbG9jX2NvbnRpZygxLCAwLCBNSVBTX0tTRUcwX0xBUkdFU1RfUEhZUywKLQkJICAg IFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKLQkJaWYgKG0gIT0gTlVMTCkKLQkJCWJyZWFrOwotCQlp ZiAoKHdhaXQgJiBNX1dBSVRPSykgPT0gMCkKKwl0cmllcyA9IDA7CityZXRyeToKKwltID0gdm1f cGh5c19hbGxvY19jb250aWcoMSwgMCwgTUlQU19LU0VHMF9MQVJHRVNUX1BIWVMsCisJICAgIFBB R0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAobSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAg aWYgKHRyaWVzIDwgKCh3YWl0ICYgTV9OT1dBSVQpICE9IDAgPyAxIDogMykpIHsKKwkJCXZtX2Nv bnRpZ19ncm93X2NhY2hlKHRyaWVzLCAwLCBNSVBTX0tTRUcwX0xBUkdFU1RfUEhZUyk7CisJCQl0 cmllcysrOworCQkJZ290byByZXRyeTsKKwkJfSBlbHNlCiAJCQlyZXR1cm4gKE5VTEwpOwotCQlW TV9XQUlUOwogCX0KIAogCXBhZGRyID0gVk1fUEFHRV9UT19QSFlTKG0pOwpJbmRleDogc3lzL3Zt L3ZtX3BhZ2VvdXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvdm0vdm1fcGFnZW91dC5oCShyZXZpc2lv biAyMDg3NTMpCisrKyBzeXMvdm0vdm1fcGFnZW91dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUs NSArMTA1LDYgQEAKIGludCB2bV9wYWdlb3V0X2ZsdXNoKHZtX3BhZ2VfdCAqLCBpbnQsIGludCk7 CiB2b2lkIHZtX3BhZ2VvdXRfb29tKGludCBzaG9ydGFnZSk7CiBib29sZWFuX3Qgdm1fcGFnZW91 dF9wYWdlX2xvY2sodm1fcGFnZV90LCB2bV9wYWdlX3QgKik7Cit2b2lkIHZtX2NvbnRpZ19ncm93 X2NhY2hlKGludCwgdm1fcGFkZHJfdCwgdm1fcGFkZHJfdCk7CiAjZW5kaWYKICNlbmRpZgkvKiBf Vk1fVk1fUEFHRU9VVF9IXyAqLwpJbmRleDogc3lzL3ZtL3ZtX2NvbnRpZy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHN5cy92bS92bV9jb250aWcuYwkocmV2aXNpb24gMjA4NzUzKQorKysgc3lzL3ZtL3ZtX2Nv bnRpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw4ICs4Nyw2IEBACiAjaW5jbHVkZSA8dm0vdm1f cGh5cy5oPgogI2luY2x1ZGUgPHZtL3ZtX2V4dGVybi5oPgogCi1zdGF0aWMgdm9pZCB2bV9jb250 aWdfZ3Jvd19jYWNoZShpbnQgdHJpZXMpOwotCiBzdGF0aWMgaW50CiB2bV9jb250aWdfbGF1bmRl cl9wYWdlKHZtX3BhZ2VfdCBtLCB2bV9wYWdlX3QgKm5leHQpCiB7CkBAIC0xNTcsOSArMTU1LDEw IEBACiB9CiAKIHN0YXRpYyBpbnQKLXZtX2NvbnRpZ19sYXVuZGVyKGludCBxdWV1ZSkKK3ZtX2Nv bnRpZ19sYXVuZGVyKGludCBxdWV1ZSwgdm1fcGFkZHJfdCBsb3csIHZtX3BhZGRyX3QgaGlnaCkK IHsKIAl2bV9wYWdlX3QgbSwgbmV4dDsKKwl2bV9wYWRkcl90IHBhOwogCWludCBlcnJvcjsKIAog CVRBSUxRX0ZPUkVBQ0hfU0FGRShtLCAmdm1fcGFnZV9xdWV1ZXNbcXVldWVdLnBsLCBwYWdlcSwg bmV4dCkgewpAQCAtMTY4LDggKzE2NywxMyBAQAogCQlpZiAoKG0tPmZsYWdzICYgUEdfTUFSS0VS KSAhPSAwKQogCQkJY29udGludWU7CiAKKwkJcGEgPSBWTV9QQUdFX1RPX1BIWVMobSk7CisJCWlm IChwYSA8IGxvdyAmJiBwYSArIFBBR0VfU0laRSA+IGhpZ2gpCisJCQljb250aW51ZTsKKwogCQlp ZiAoIXZtX3BhZ2VvdXRfcGFnZV9sb2NrKG0sICZuZXh0KSkKIAkJCWNvbnRpbnVlOworCiAJCUtB U1NFUlQoVk1fUEFHRV9JTlFVRVVFMihtLCBxdWV1ZSksCiAJCSAgICAoInZtX2NvbnRpZ19sYXVu ZGVyOiBwYWdlICVwJ3MgcXVldWUgaXMgbm90ICVkIiwgbSwgcXVldWUpKTsKIAkJZXJyb3IgPSB2 bV9jb250aWdfbGF1bmRlcl9wYWdlKG0sICZuZXh0KTsKQEAgLTIwMSw4ICsyMDUsOCBAQAogLyoK ICAqIEluY3JlYXNlIHRoZSBudW1iZXIgb2YgY2FjaGVkIHBhZ2VzLgogICovCi1zdGF0aWMgdm9p ZAotdm1fY29udGlnX2dyb3dfY2FjaGUoaW50IHRyaWVzKQordm9pZAordm1fY29udGlnX2dyb3df Y2FjaGUoaW50IHRyaWVzLCB2bV9wYWRkcl90IGxvdywgdm1fcGFkZHJfdCBoaWdoKQogewogCWlu dCBhY3RsLCBhY3RtYXgsIGluYWN0bCwgaW5hY3RtYXg7CiAKQEAgLTIxMiwxMSArMjE2LDExIEBA CiAJYWN0bCA9IDA7CiAJYWN0bWF4ID0gdHJpZXMgPCAyID8gMCA6IGNudC52X2FjdGl2ZV9jb3Vu dDsKIGFnYWluOgotCWlmIChpbmFjdGwgPCBpbmFjdG1heCAmJiB2bV9jb250aWdfbGF1bmRlcihQ UV9JTkFDVElWRSkpIHsKKwlpZiAoaW5hY3RsIDwgaW5hY3RtYXggJiYgdm1fY29udGlnX2xhdW5k ZXIoUFFfSU5BQ1RJVkUsIGxvdywgaGlnaCkpIHsKIAkJaW5hY3RsKys7CiAJCWdvdG8gYWdhaW47 CiAJfQotCWlmIChhY3RsIDwgYWN0bWF4ICYmIHZtX2NvbnRpZ19sYXVuZGVyKFBRX0FDVElWRSkp IHsKKwlpZiAoYWN0bCA8IGFjdG1heCAmJiB2bV9jb250aWdfbGF1bmRlcihQUV9BQ1RJVkUsIGxv dywgaGlnaCkpIHsKIAkJYWN0bCsrOwogCQlnb3RvIGFnYWluOwogCX0KQEAgLTI1OSw3ICsyNjMs NyBAQAogCQkJaWYgKHRyaWVzIDwgKChmbGFncyAmIE1fTk9XQUlUKSAhPSAwID8gMSA6IDMpKSB7 CiAJCQkJVk1fT0JKRUNUX1VOTE9DSyhvYmplY3QpOwogCQkJCXZtX21hcF91bmxvY2sobWFwKTsK LQkJCQl2bV9jb250aWdfZ3Jvd19jYWNoZSh0cmllcyk7CisJCQkJdm1fY29udGlnX2dyb3dfY2Fj aGUodHJpZXMsIGxvdywgaGlnaCk7CiAJCQkJdm1fbWFwX2xvY2sobWFwKTsKIAkJCQlWTV9PQkpF Q1RfTE9DSyhvYmplY3QpOwogCQkJCWdvdG8gcmV0cnk7CkBAIC0zNjYsNyArMzcwLDcgQEAKIAlw YWdlcyA9IHZtX3BoeXNfYWxsb2NfY29udGlnKG5wZ3MsIGxvdywgaGlnaCwgYWxpZ25tZW50LCBi b3VuZGFyeSk7CiAJaWYgKHBhZ2VzID09IE5VTEwpIHsKIAkJaWYgKHRyaWVzIDwgKChmbGFncyAm IE1fTk9XQUlUKSAhPSAwID8gMSA6IDMpKSB7Ci0JCQl2bV9jb250aWdfZ3Jvd19jYWNoZSh0cmll cyk7CisJCQl2bV9jb250aWdfZ3Jvd19jYWNoZSh0cmllcywgbG93LCBoaWdoKTsKIAkJCXRyaWVz Kys7CiAJCQlnb3RvIHJldHJ5OwogCQl9Cg== --000e0cd1aa3efa00ac048818f237--