From owner-freebsd-arm@FreeBSD.ORG Tue May 28 22:17:32 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 816EA529; Tue, 28 May 2013 22:17:32 +0000 (UTC) (envelope-from zbb@semihalf.com) Received: from smtp.semihalf.com (smtp.semihalf.com [213.17.239.109]) by mx1.freebsd.org (Postfix) with ESMTP id BFC4FE24; Tue, 28 May 2013 22:17:31 +0000 (UTC) Received: from localhost (unknown [213.17.239.109]) by smtp.semihalf.com (Postfix) with ESMTP id 6FE5EC384A; Wed, 29 May 2013 00:17:24 +0200 (CEST) X-Virus-Scanned: by amavisd-new at semihalf.com Received: from smtp.semihalf.com ([213.17.239.109]) by localhost (smtp.semihalf.com [213.17.239.109]) (amavisd-new, port 10024) with ESMTP id LHJ9nEHDIm6X; Wed, 29 May 2013 00:17:23 +0200 (CEST) Received: from webmail.semihalf.com (semihalf.com [206.130.101.55]) by smtp.semihalf.com (Postfix) with ESMTPSA id 65A81C3833; Wed, 29 May 2013 00:17:22 +0200 (CEST) MIME-Version: 1.0 Date: Tue, 28 May 2013 16:17:19 -0600 From: Zbigniew Bodek To: Subject: =?UTF-8?Q?pmap=5Fcopy=20for=20ARMv=36/v=37?= Message-ID: X-Sender: zbb@semihalf.com User-Agent: RoundCube Webmail/0.2.2 Content-Type: multipart/mixed; boundary="=_19aa6322d7875fcf9bb1e310a4996ca6" Cc: Aleksandr Rybalko , Alan Cox X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 May 2013 22:17:32 -0000 --=_19aa6322d7875fcf9bb1e310a4996ca6 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="UTF-8" Hello Everyone, I would like to share with you the patch adding pmap_copy() functionality to pmap-v6.c. This is the last but not least of the pmap improvements done as a part of Semihalf work on Superpages support. We tried various technics to test the patch on our target. Apart from obvious long term stability tests and others, we used a simple benchmark to measure fork system call time and overhead. The program can be downloaded from here: http://berlin.ccc.de/~packet/fork_test.c A single fork time has increased as suspected (the program is not measuring a real-life fork situation where child process is actually doing something) but the average system overhead has decreased. For 10000 fork(), 10000 vfork() and 10000 pthread_create() calls we observe 100000 less vm_faults and shorter overall test time. If you have any suggestions or have an idea for benchmarking this feature please share. We will appreciate if you could test this patch on your ARM platforms and send us your review/feedback. Best regards Zbyszek Bodek --=_19aa6322d7875fcf9bb1e310a4996ca6 Content-Transfer-Encoding: base64 Content-Type: text/x-patch; charset="UTF-8"; name="0006-arm-Implement-pmap_copy-for-ARMv6-v7.patch"; Content-Disposition: attachment; filename="0006-arm-Implement-pmap_copy-for-ARMv6-v7.patch"; RnJvbSAyZjI3NWRmYWExYzk5NmZmOGY1NmU2ZGVkMzBhMmUzNzBhZTZmZDk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaYmlnbmlldyBCb2RlayA8emJiQHNlbWloYWxmLmNvbT4KRGF0 ZTogVGh1LCAyMyBNYXkgMjAxMyAxMjo0MDo1NyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGFybTog SW1wbGVtZW50IHBtYXBfY29weSgpIGZvciBBUk12Ni92Ny4KCkNvcHkgdGhlIGdpdmVuIHJhbmdl IG9mIG1hcHBpbmdzIGZyb20gdGhlIHNvdXJjZSBtYXAgdG8gdGhlCmRlc3RpbmF0aW9uIG1hcCwg dGhlcmVieSByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIFZNIGZhdWx0cyBvbiBmb3JrLgotLS0KIHN5 cy9hcm0vYXJtL3BtYXAtdjYuYyB8IDEyMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3lzL2FybS9hcm0vcG1hcC12Ni5jIGIvc3lzL2FybS9hcm0vcG1hcC12Ni5j CmluZGV4IDU2YWNiM2EuLmIwYTQwYTggMTAwNjQ0Ci0tLSBhL3N5cy9hcm0vYXJtL3BtYXAtdjYu YworKysgYi9zeXMvYXJtL2FybS9wbWFwLXY2LmMKQEAgLTI5NjYsNiArMjk2NiwxMjYgQEAgdm9p ZAogcG1hcF9jb3B5KHBtYXBfdCBkc3RfcG1hcCwgcG1hcF90IHNyY19wbWFwLCB2bV9vZmZzZXRf dCBkc3RfYWRkciwKICAgICB2bV9zaXplX3QgbGVuLCB2bV9vZmZzZXRfdCBzcmNfYWRkcikKIHsK KwlzdHJ1Y3QgbDJfYnVja2V0ICpsMmJfc3JjLCAqbDJiX2RzdDsKKwlzdHJ1Y3QgcHZfZW50cnkg KnB2ZSA9IE5VTEw7CisJdm1fb2Zmc2V0X3QgYWRkcjsKKwl2bV9vZmZzZXRfdCBlbmRfYWRkciA9 IHNyY19hZGRyICsgbGVuOworCXZtX29mZnNldF90IG5leHRfYnVja2V0OworCXVfaW50IGZsYWdz OworCWJvb2xlYW5fdCBsMmJfYWxsb2M7CisKKwlDVFI0KEtUUl9QTUFQLCAiJXM6IFZBID0gMHgl MDh4LCBsZW4gPSAweCUwOHguIFdpbGwgJXNcbiIsIF9fZnVuY19fLAorCSAgICBzcmNfYWRkciwg bGVuLCAoZHN0X2FkZHIgIT0gc3JjX2FkZHIpID8gImV4aXQiIDogImNvcHkiKTsKKworCWlmIChk c3RfYWRkciAhPSBzcmNfYWRkcikKKwkJcmV0dXJuOworCisJcndfd2xvY2soJnB2aF9nbG9iYWxf bG9jayk7CisJaWYgKGRzdF9wbWFwIDwgc3JjX3BtYXApIHsKKwkJUE1BUF9MT0NLKGRzdF9wbWFw KTsKKwkJUE1BUF9MT0NLKHNyY19wbWFwKTsKKwl9IGVsc2UgeworCQlQTUFQX0xPQ0soc3JjX3Bt YXApOworCQlQTUFQX0xPQ0soZHN0X3BtYXApOworCX0KKworCWFkZHIgPSBzcmNfYWRkcjsKKwkv KgorCSAqIEl0ZXJhdGUgdGhyb3VnaCBhbGwgdXNlZAorCSAqIGwyX2J1Y2tldHMgaW4gYSBnaXZl biByYW5nZS4KKwkgKi8KKwl3aGlsZSAoYWRkciA8IGVuZF9hZGRyKSB7CisJCXB0X2VudHJ5X3Qg KnNyY19wdGVwLCAqZHN0X3B0ZXA7CisJCXB0X2VudHJ5X3Qgc3JjX3B0ZTsKKworCQluZXh0X2J1 Y2tldCA9IEwyX05FWFRfQlVDS0VUKGFkZHIpOworCQkvKgorCQkgKiBJZiB0aGUgbmV4dCBidWNr ZXQgVkEgaXMgb3V0IG9mIHRoZQorCQkgKiBjb3B5IHJhbmdlIHRoZW4gc2V0IGl0IHRvIGVuZF9h ZGRyIGluIG9yZGVyCisJCSAqIHRvIGNvcHkgYWxsIG1hcHBpbmdzIHVudGlsIHRoZSBnaXZlbiBs aW1pdC4KKwkJICovIAorCQlpZiAobmV4dF9idWNrZXQgPiBlbmRfYWRkcikKKwkJCW5leHRfYnVj a2V0ID0gZW5kX2FkZHI7CisKKwkJbDJiX3NyYyA9IHBtYXBfZ2V0X2wyX2J1Y2tldChzcmNfcG1h cCwgYWRkcik7CisJCWlmIChsMmJfc3JjID09IE5VTEwpIHsKKwkJCWFkZHIgPSBuZXh0X2J1Y2tl dDsKKwkJCWNvbnRpbnVlOworCQl9CisJCXNyY19wdGVwID0gJmwyYl9zcmMtPmwyYl9rdmFbbDJw dGVfaW5kZXgoYWRkcildOworCisJCXdoaWxlIChhZGRyIDwgbmV4dF9idWNrZXQpIHsKKwkJCXZt X3BhZ2VfdCBzcmNtcHRlOworCisJCQlzcmNfcHRlID0gKnNyY19wdGVwOworCQkJc3JjbXB0ZSA9 IFBIWVNfVE9fVk1fUEFHRShsMnB0ZV9wYShzcmNfcHRlKSk7CisJCQkvKgorCQkJICogV2Ugb25s eSB2aXJ0dWFsIGNvcHkgbWFuYWdlZCBwYWdlcworCQkJICovCisJCQlpZiAoc3JjbXB0ZSAmJiAo c3JjbXB0ZS0+b2ZsYWdzICYgVlBPX1VOTUFOQUdFRCkgPT0gMCkgeworCQkJCWwyYl9hbGxvYyA9 IEZBTFNFOworCQkJCWwyYl9kc3QgPSBwbWFwX2dldF9sMl9idWNrZXQoZHN0X3BtYXAsIGFkZHIp OworCQkJCS8qCisJCQkJICogQ2hlY2sgaWYgdGhlIGFsbG9jYXRpb24gb2YgYW5vdGhlcgorCQkJ CSAqIGwyX2J1Y2tldCBpcyBuZWNlc3NhcnkuCisJCQkJICovCisJCQkJaWYgKGwyYl9kc3QgPT0g TlVMTCkgeworCQkJCQlsMmJfZHN0ID0gcG1hcF9hbGxvY19sMl9idWNrZXQoZHN0X3BtYXAsCisJ CQkJCSAgICBhZGRyKTsKKwkJCQkJbDJiX2FsbG9jID0gVFJVRTsKKwkJCQl9CisJCQkJaWYgKGwy Yl9kc3QgPT0gTlVMTCkKKwkJCQkJZ290byBvdXQ7CisKKwkJCQlkc3RfcHRlcCA9ICZsMmJfZHN0 LT5sMmJfa3ZhW2wycHRlX2luZGV4KGFkZHIpXTsKKworCQkJCWlmICgqZHN0X3B0ZXAgPT0gMCAm JgorCQkJCSAgICAocHZlID0gcG1hcF9nZXRfcHZfZW50cnkoZHN0X3BtYXAsIFRSVUUpKSkgewor CQkJCQkvKgorCQkJCQkgKiBDaGVjayB3aGV0aGVyIHRoZSBzb3VyY2UgbWFwcGluZyBpcworCQkJ CQkgKiB3cml0YWJsZSBhbmQgc2V0IHRoZSBwcm9wZXIgZmxhZworCQkJCQkgKiBmb3IgYSBjb3Bp ZWQgbWFwcGluZyBzbyB0aGF0IHJpZ2h0CisJCQkJCSAqIHBlcm1pc3Npb25zIGNvdWxkIGJlIHNl dCBvbiB0aGUKKwkJCQkJICogYWNjZXNzIGZhdWx0LgorCQkJCQkgKi8KKwkJCQkJZmxhZ3MgPSAw OworCQkJCQlpZiAoKHNyY19wdGUgJiBMMl9BUFgpID09IDApCisJCQkJCQlmbGFncyA9IFBWRl9X UklURTsKKwkJCQkJcG1hcF9lbnRlcl9wdihzcmNtcHRlLCBwdmUsIGRzdF9wbWFwLAorCQkJCQkg ICAgYWRkciwgZmxhZ3MpOworCQkJCQkvKgorCQkJCQkgKiBDbGVhciB0aGUgbW9kaWZpZWQgYW5k CisJCQkJCSAqIGFjY2Vzc2VkIChyZWZlcmVuY2VkKSBmbGFncworCQkJCQkgKiBhbmQgZG9uJ3Qg c2V0IHRoZSB3aXJlZCBmbGFnCisJCQkJCSAqIGR1cmluZyB0aGUgY29weS4KKwkJCQkJICovCisJ CQkJCSpkc3RfcHRlcCA9IHNyY19wdGU7CisJCQkJCSpkc3RfcHRlcCAmPSB+TDJfU19SRUY7CisJ CQkJCSpkc3RfcHRlcCB8PSBMMl9BUFg7CisJCQkJCS8qCisJCQkJCSAqIFVwZGF0ZSBzdGF0cwor CQkJCQkgKi8KKwkJCQkJbDJiX2RzdC0+bDJiX29jY3VwYW5jeSsrOworCQkJCQlkc3RfcG1hcC0+ cG1fc3RhdHMucmVzaWRlbnRfY291bnQrKzsKKwkJCQl9IGVsc2UgeworCQkJCQkvKgorCQkJCQkg KiBJZiB0aGUgbDJfYnVja2V0IHdhcyBhY3F1aXJlZCBhcworCQkJCQkgKiBhIHJlc3VsdCBvZiBh bGxvY2F0aW9uIHRoZW4gZnJlZSBpdC4KKwkJCQkJICovCisJCQkJCWlmIChsMmJfYWxsb2MpCisJ CQkJCQlwbWFwX2ZyZWVfbDJfYnVja2V0KGRzdF9wbWFwLAorCQkJCQkJICAgIGwyYl9kc3QsIDEp OworCQkJCQlnb3RvIG91dDsKKwkJCQl9CisJCQl9CisJCQlhZGRyICs9IFBBR0VfU0laRTsKKwkJ CXNyY19wdGVwKys7CisJCX0KKwl9CitvdXQ6CisJcndfd3VubG9jaygmcHZoX2dsb2JhbF9sb2Nr KTsKKwlQTUFQX1VOTE9DSyhzcmNfcG1hcCk7CisJUE1BUF9VTkxPQ0soZHN0X3BtYXApOwogfQog CiAKLS0gCjEuOC4yCgo= --=_19aa6322d7875fcf9bb1e310a4996ca6--