From owner-svn-src-head@FreeBSD.ORG Thu Jun 3 12:42:40 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 00B771065673; Thu, 3 Jun 2010 12:42:40 +0000 (UTC) (envelope-from c.jayachandran@gmail.com) Received: from mail-px0-f182.google.com (mail-px0-f182.google.com [209.85.212.182]) by mx1.freebsd.org (Postfix) with ESMTP id ABD448FC0A; Thu, 3 Jun 2010 12:42:38 +0000 (UTC) Received: by pxi7 with SMTP id 7so20909pxi.13 for ; Thu, 03 Jun 2010 05:42:38 -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=hCm8z02EbvNBK1aSCIM3n1bF6yUyfhpUCTcJS5u3IfQ=; b=Ic6Jrq3s/uozsm44ubBxfWk12AKDMbfCG7gkWJMtiwzf6mJMrp4EuWRT0Cm4GTfcbi 76d0Ne3JooDHKQTRO1UBtvqctcNRvxj/oPLA3CHmA+pb6r+bbYPBZ8JbxDehvDU+xThv aN/yttHpTI+XeawTWbUR4zixorPk/1VQRLij8= 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=aUxMBexCqTJUUKJN8Pj/GIepXJb9PjidSWwXD6Kz9GXKEf/ysfQI3jHiJR3vfxMgyt rBEg30zgz6pseVwZh9KrsBwvVADG7up/tD2M64e8RnheH3clJG3wkWXG3DiDe3AfB1pR RKKhWur95CcHokjuY0aICQDwy+6M/rwGi3Ct8= MIME-Version: 1.0 Received: by 10.141.105.21 with SMTP id h21mr8089726rvm.160.1275568958140; Thu, 03 Jun 2010 05:42:38 -0700 (PDT) Received: by 10.141.4.3 with HTTP; Thu, 3 Jun 2010 05:42:37 -0700 (PDT) In-Reply-To: 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 18:12:37 +0530 Message-ID: From: "C. Jayachandran" To: Alan Cox Content-Type: multipart/mixed; boundary=000e0cd13bbaa2f17b04881f8a67 Cc: src-committers@freebsd.org, "Jayachandran C." , svn-src-all@freebsd.org, Randall Stewart , Konstantin Belousov , svn-src-head@freebsd.org Subject: Re: svn commit: r208589 - head/sys/mips/mips X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2010 12:42:40 -0000 --000e0cd13bbaa2f17b04881f8a67 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Thu, Jun 3, 2010 at 10:20 AM, C. Jayachandran wrote: > 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 fre= e (or >>>>>> cached) pages after the VM_WAIT will fall within the range of suitab= le >>>>>> physical addresses. =A0Moreover, and perhaps most worrisome, is that= this >>>>>> function could do a lot of spinning. =A0Every time this function sle= eps >>>>>> 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(), an= d >>>>>> 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 functio= n >>>> and >>>> use it. =A0(vm/vm_pageout.h is probably the best place for the functio= n >>>> 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 mak= e >>>> 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 desi= red >>>> 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. I've attached the patch for review, but I was not able trigger the condition in which vm_contig_grow_cache() is called during testing so far. But if you are okay with the patch I can commit it. Thanks, JC. --000e0cd13bbaa2f17b04881f8a67 Content-Type: text/plain; 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_g9zkrsvk1 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 bmV4dCkgewpAQCAtMTY4LDYgKzE2NywxMCBAQAogCQlpZiAoKG0tPmZsYWdzICYgUEdfTUFSS0VS KSAhPSAwKQogCQkJY29udGludWU7CiAKKwkJcGEgPSBWTV9QQUdFX1RPX1BIWVMobSk7CisJCWlm IChwYSA8IGxvdyB8fCBwYSArIFBBR0VfU0laRSA+IGhpZ2gpCisJCQljb250aW51ZTsKKwogCQlp ZiAoIXZtX3BhZ2VvdXRfcGFnZV9sb2NrKG0sICZuZXh0KSkKIAkJCWNvbnRpbnVlOwogCQlLQVNT RVJUKFZNX1BBR0VfSU5RVUVVRTIobSwgcXVldWUpLApAQCAtMjAxLDggKzIwNCw4IEBACiAvKgog ICogSW5jcmVhc2UgdGhlIG51bWJlciBvZiBjYWNoZWQgcGFnZXMuCiAgKi8KLXN0YXRpYyB2b2lk Ci12bV9jb250aWdfZ3Jvd19jYWNoZShpbnQgdHJpZXMpCit2b2lkCit2bV9jb250aWdfZ3Jvd19j YWNoZShpbnQgdHJpZXMsIHZtX3BhZGRyX3QgbG93LCB2bV9wYWRkcl90IGhpZ2gpCiB7CiAJaW50 IGFjdGwsIGFjdG1heCwgaW5hY3RsLCBpbmFjdG1heDsKIApAQCAtMjEyLDExICsyMTUsMTEgQEAK IAlhY3RsID0gMDsKIAlhY3RtYXggPSB0cmllcyA8IDIgPyAwIDogY250LnZfYWN0aXZlX2NvdW50 OwogYWdhaW46Ci0JaWYgKGluYWN0bCA8IGluYWN0bWF4ICYmIHZtX2NvbnRpZ19sYXVuZGVyKFBR X0lOQUNUSVZFKSkgeworCWlmIChpbmFjdGwgPCBpbmFjdG1heCAmJiB2bV9jb250aWdfbGF1bmRl cihQUV9JTkFDVElWRSwgbG93LCBoaWdoKSkgewogCQlpbmFjdGwrKzsKIAkJZ290byBhZ2FpbjsK IAl9Ci0JaWYgKGFjdGwgPCBhY3RtYXggJiYgdm1fY29udGlnX2xhdW5kZXIoUFFfQUNUSVZFKSkg eworCWlmIChhY3RsIDwgYWN0bWF4ICYmIHZtX2NvbnRpZ19sYXVuZGVyKFBRX0FDVElWRSwgbG93 LCBoaWdoKSkgewogCQlhY3RsKys7CiAJCWdvdG8gYWdhaW47CiAJfQpAQCAtMjU5LDcgKzI2Miw3 IEBACiAJCQlpZiAodHJpZXMgPCAoKGZsYWdzICYgTV9OT1dBSVQpICE9IDAgPyAxIDogMykpIHsK IAkJCQlWTV9PQkpFQ1RfVU5MT0NLKG9iamVjdCk7CiAJCQkJdm1fbWFwX3VubG9jayhtYXApOwot CQkJCXZtX2NvbnRpZ19ncm93X2NhY2hlKHRyaWVzKTsKKwkJCQl2bV9jb250aWdfZ3Jvd19jYWNo ZSh0cmllcywgbG93LCBoaWdoKTsKIAkJCQl2bV9tYXBfbG9jayhtYXApOwogCQkJCVZNX09CSkVD VF9MT0NLKG9iamVjdCk7CiAJCQkJZ290byByZXRyeTsKQEAgLTM2Niw3ICszNjksNyBAQAogCXBh Z2VzID0gdm1fcGh5c19hbGxvY19jb250aWcobnBncywgbG93LCBoaWdoLCBhbGlnbm1lbnQsIGJv dW5kYXJ5KTsKIAlpZiAocGFnZXMgPT0gTlVMTCkgewogCQlpZiAodHJpZXMgPCAoKGZsYWdzICYg TV9OT1dBSVQpICE9IDAgPyAxIDogMykpIHsKLQkJCXZtX2NvbnRpZ19ncm93X2NhY2hlKHRyaWVz KTsKKwkJCXZtX2NvbnRpZ19ncm93X2NhY2hlKHRyaWVzLCBsb3csIGhpZ2gpOwogCQkJdHJpZXMr KzsKIAkJCWdvdG8gcmV0cnk7CiAJCX0K --000e0cd13bbaa2f17b04881f8a67--