Cover Letter Detail
Show a cover letter.
GET /api/1.2/covers/831041/?format=api
{ "id": 831041, "url": "http://patchwork.ozlabs.org/api/1.2/covers/831041/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20171027040833.3644-1-aneesh.kumar@linux.vnet.ibm.com/", "project": { "id": 2, "url": "http://patchwork.ozlabs.org/api/1.2/projects/2/?format=api", "name": "Linux PPC development", "link_name": "linuxppc-dev", "list_id": "linuxppc-dev.lists.ozlabs.org", "list_email": "linuxppc-dev@lists.ozlabs.org", "web_url": "https://github.com/linuxppc/wiki/wiki", "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git", "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/", "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/", "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}" }, "msgid": "<20171027040833.3644-1-aneesh.kumar@linux.vnet.ibm.com>", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20171027040833.3644-1-aneesh.kumar@linux.vnet.ibm.com/", "date": "2017-10-27T04:08:17", "name": "[00/16] Remove hash page table slot tracking from linux PTE", "submitter": { "id": 664, "url": "http://patchwork.ozlabs.org/api/1.2/people/664/?format=api", "name": "Aneesh Kumar K.V", "email": "aneesh.kumar@linux.vnet.ibm.com" }, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20171027040833.3644-1-aneesh.kumar@linux.vnet.ibm.com/mbox/", "series": [ { "id": 10486, "url": "http://patchwork.ozlabs.org/api/1.2/series/10486/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=10486", "date": "2017-10-27T04:08:17", "name": "Remove hash page table slot tracking from linux PTE", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/10486/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/831041/comments/", "headers": { "Return-Path": "<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>", "X-Original-To": [ "patchwork-incoming@ozlabs.org", "linuxppc-dev@lists.ozlabs.org" ], "Delivered-To": [ "patchwork-incoming@ozlabs.org", "linuxppc-dev@lists.ozlabs.org" ], "Received": [ "from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yNVlj0bdxz9t30\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 27 Oct 2017 15:10:25 +1100 (AEDT)", "from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3yNVlh5mrbzDrcj\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 27 Oct 2017 15:10:24 +1100 (AEDT)", "from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n\t[148.163.156.1])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3yNVjy1d9zzDrbl\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tFri, 27 Oct 2017 15:08:53 +1100 (AEDT)", "from pps.filterd (m0098404.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv9R47kdA137528\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 27 Oct 2017 00:08:50 -0400", "from e35.co.us.ibm.com (e35.co.us.ibm.com [32.97.110.153])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2duusgmdgs-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 27 Oct 2017 00:08:50 -0400", "from localhost\n\tby e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <linuxppc-dev@lists.ozlabs.org> from\n\t<aneesh.kumar@linux.vnet.ibm.com>; Thu, 26 Oct 2017 22:08:49 -0600", "from b03cxnp08027.gho.boulder.ibm.com (9.17.130.19)\n\tby e35.co.us.ibm.com (192.168.1.135) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tThu, 26 Oct 2017 22:08:47 -0600", "from b03ledav001.gho.boulder.ibm.com\n\t(b03ledav001.gho.boulder.ibm.com [9.17.130.232])\n\tby b03cxnp08027.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v9R48iTS64880766; Thu, 26 Oct 2017 21:08:46 -0700", "from b03ledav001.gho.boulder.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 8D1C26E17C;\n\tThu, 26 Oct 2017 22:08:46 -0600 (MDT)", "from skywalker.ibmmodules.com (unknown [9.85.199.61])\n\tby b03ledav001.gho.boulder.ibm.com (Postfix) with ESMTP id CB8F76E17D;\n\tThu, 26 Oct 2017 22:08:43 -0600 (MDT)" ], "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=linux.vnet.ibm.com\n\t(client-ip=148.163.156.1; helo=mx0a-001b2d01.pphosted.com;\n\tenvelope-from=aneesh.kumar@linux.vnet.ibm.com; receiver=<UNKNOWN>)", "From": "\"Aneesh Kumar K.V\" <aneesh.kumar@linux.vnet.ibm.com>", "To": "benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au", "Subject": "[PATCH 00/16] Remove hash page table slot tracking from linux PTE", "Date": "Fri, 27 Oct 2017 09:38:17 +0530", "X-Mailer": "git-send-email 2.13.6", "X-TM-AS-GCONF": "00", "x-cbid": "17102704-0012-0000-0000-0000153472A1", "X-IBM-SpamModules-Scores": "", "X-IBM-SpamModules-Versions": "BY=3.00007958; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000239; SDB=6.00937034; UDB=6.00472245;\n\tIPR=6.00717296; \n\tBA=6.00005660; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00017735;\n\tXFM=3.00000015; UTC=2017-10-27 04:08:49", "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused", "x-cbparentid": "17102704-0013-0000-0000-00005008870D", "Message-Id": "<20171027040833.3644-1-aneesh.kumar@linux.vnet.ibm.com>", "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-10-27_02:, , signatures=0", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tpriorityscore=1501\n\tmalwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0\n\tclxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0\n\tclassifier=spam adjust=0 reason=mlx scancount=1\n\tengine=8.0.1-1707230000\n\tdefinitions=main-1710270052", "X-BeenThere": "linuxppc-dev@lists.ozlabs.org", "X-Mailman-Version": "2.1.24", "Precedence": "list", "List-Id": "Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>", "List-Unsubscribe": "<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>", "List-Archive": "<http://lists.ozlabs.org/pipermail/linuxppc-dev/>", "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>", "List-Help": "<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>", "List-Subscribe": "<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>", "Cc": "linuxppc-dev@lists.ozlabs.org,\n\t\"Aneesh Kumar K.V\" <aneesh.kumar@linux.vnet.ibm.com>", "Errors-To": "linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org", "Sender": "\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>" }, "content": "Hi,\n\nWith hash translation mode we always tracked the hash pte slot details in linux page table.\nThis occupied space in the linux page table and also limitted our ability to support\nlinux features that require additional PTE bits. This series attempt to lift this\nlimitation by not tracking slot number in linux page table. We still track slot details\nw.r.t Transparent Hugepage entries because an invalidate there requires us to go through\nall the 256 hash pte slots. So tracking whether hash page table entry is valid helps us in\navoiding a lot of hcalls there. With THP entries we don't keep slot details in the primary\nlinux page table entry but in the second half of page table. Hence tracking slot details\nfor THP doesn't take up space in PTE.\n\nEven though we don't track slot, for removing/updating hash page table entry, PAPR hcalls expect\nhash page table slot details. On pseries we find slot using H_READ hcall using H_READ_4 flags.\nThis implies an additional 2 hcalls in the updatepp and remove paths. The patch series also\nattempt to limit the impact of this by adding new hcalls that does remove/update of hash page table\nentry using hash value instead of hash page table slot.\n\nBelow is the performance numbers observed when running a workload that does the below sequence\n\nfor(5000) {\nmmap(128M)\ntouch every page of 2048 page\nmunmap()\n}\n\nThe test is run with address randomization off, swap disabled in both host and guest.\n\n\n|------------+----------+---------------+--------------------------+-----------------------|\n| iterations | platform | without patch | With series and no hcall | With series and hcall |\n|------------+----------+---------------+--------------------------+-----------------------|\n| 1 | powernv | | 50.818343 | |\n| 2 | powernv | | 50.744123 | |\n| 3 | powernv | | 50.721603 | |\n| 4 | powernv | | 50.739922 | |\n| 5 | powernv | | 50.638555 | |\n| 1 | powernv | 51.388249 | | |\n| 2 | powernv | 51.789701 | | |\n| 3 | powernv | 52.240394 | | |\n| 4 | powernv | 51.432255 | | |\n| 5 | powernv | 51.392947 | | |\n|------------+----------+---------------+--------------------------+-----------------------|\n| 1 | pseries | | | 123.154394 |\n| 2 | pseries | | | 122.253956 |\n| 3 | pseries | | | 117.666344 |\n| 4 | pseries | | | 117.681479 |\n| 5 | pseries | | | 117.735808 |\n| 1 | pseries | | 119.424940 | |\n| 2 | pseries | | 117.663078 | |\n| 3 | pseries | | 118.345584 | |\n| 4 | pseries | | 119.620934 | |\n| 5 | pseries | | 119.463185 | |\n| 1 | pseries | 122.810867 | | |\n| 2 | pseries | 115.760801 | | |\n| 3 | pseries | 115.257030 | | |\n| 4 | pseries | 116.617884 | | |\n| 5 | pseries | 117.247036 | | |\n|------------+----------+---------------+--------------------------+-----------------------|\n\n-aneesh\n\nAneesh Kumar K.V (16):\n powerpc/mm/hash: Remove the superfluous bitwise operation when find\n hpte group\n powerpc/mm: Update native_hpte_find to return hash pte\n powerpc/pseries: Update hpte find helper to take hash value\n powerpc/mm: Add hash invalidate callback\n powerpc/mm: use hash_invalidate for __kernel_map_pages()\n powerpc/mm: Switch flush_hash_range to not use slot\n powerpc/mm: Add hash updatepp callback\n powerpc/mm/hash: Don't track hash pte slot number in linux page table.\n powerpc/mm: Add new firmware feature HASH API\n powerpc/kvm/hash: Implement HASH_REMOVE hcall\n powerpc/kvm/hash: Implement HASH_PROTECT hcall\n powerpc/kvm/hash: Implement HASH_BULK_REMOVE hcall\n powerpc/mm/pseries: Use HASH_PROTECT hcall in guest\n powerpc/mm/pseries: Use HASH_REMOVE hcall in guest\n powerpc/mm/pseries: Move slot based bulk remove to helper\n powerpc/mm/pseries: Use HASH_BULK_REMOVE hcall in guest\n\n arch/powerpc/include/asm/book3s/64/hash-4k.h | 16 +-\n arch/powerpc/include/asm/book3s/64/hash-64k.h | 44 +--\n arch/powerpc/include/asm/book3s/64/hash.h | 5 +-\n arch/powerpc/include/asm/book3s/64/mmu-hash.h | 12 +\n arch/powerpc/include/asm/book3s/64/pgtable.h | 26 --\n arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 3 +-\n arch/powerpc/include/asm/firmware.h | 3 +-\n arch/powerpc/include/asm/hvcall.h | 5 +-\n arch/powerpc/include/asm/pgtable-be-types.h | 10 -\n arch/powerpc/include/asm/pgtable-types.h | 9 -\n arch/powerpc/include/asm/plpar_wrappers.h | 23 ++\n arch/powerpc/kvm/book3s_hv.c | 3 +\n arch/powerpc/kvm/book3s_hv_rm_mmu.c | 297 ++++++++++++++++++---\n arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 +\n arch/powerpc/kvm/powerpc.c | 4 +\n arch/powerpc/mm/dump_hashpagetable.c | 2 +-\n arch/powerpc/mm/dump_linuxpagetables.c | 10 -\n arch/powerpc/mm/hash64_4k.c | 17 +-\n arch/powerpc/mm/hash64_64k.c | 124 +++------\n arch/powerpc/mm/hash_native_64.c | 175 ++++++++----\n arch/powerpc/mm/hash_utils_64.c | 75 ++----\n arch/powerpc/mm/hugepage-hash64.c | 9 +-\n arch/powerpc/mm/hugetlbpage-hash64.c | 13 +-\n arch/powerpc/mm/tlb_hash64.c | 9 +-\n arch/powerpc/platforms/ps3/htab.c | 88 ++++++\n arch/powerpc/platforms/pseries/firmware.c | 1 +\n arch/powerpc/platforms/pseries/lpar.c | 196 +++++++++++---\n include/uapi/linux/kvm.h | 1 +\n 28 files changed, 760 insertions(+), 424 deletions(-)" }