From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E772DC47DB3 for ; Wed, 31 Jan 2024 16:00:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6D3246B0087; Wed, 31 Jan 2024 11:00:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 65A356B0088; Wed, 31 Jan 2024 11:00:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4D49D6B0089; Wed, 31 Jan 2024 11:00:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 367AC6B0087 for ; Wed, 31 Jan 2024 11:00:01 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B870F120208 for ; Wed, 31 Jan 2024 16:00:00 +0000 (UTC) X-FDA: 81740067360.27.C00EBF5 Received: from out203-205-221-190.mail.qq.com (out203-205-221-190.mail.qq.com [203.205.221.190]) by imf11.hostedemail.com (Postfix) with ESMTP id 9B5D94000C for ; Wed, 31 Jan 2024 15:59:57 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=qq.com header.s=s201512 header.b=L35fe0p2; spf=none (imf11.hostedemail.com: domain of cyy@cyyself.name has no SPF policy when checking 203.205.221.190) smtp.mailfrom=cyy@cyyself.name; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706716798; a=rsa-sha256; cv=none; b=AzWx3wf+RJyP7aiUyvUBeoPAA/PKOJ6HHLzy7Q1iF78L/ZHNBjLTsiWacV7/2+VG+d6gwA SiZLWnWdfQ782kk2Cc2EK0JQeGEzQTaHS9nIaC0E0Gbgr//f5uL8XZg37qQCWo2FPjeMD7 cfAbU9LJVFzhELRaQjoi5fZ5ValGc9g= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=qq.com header.s=s201512 header.b=L35fe0p2; spf=none (imf11.hostedemail.com: domain of cyy@cyyself.name has no SPF policy when checking 203.205.221.190) smtp.mailfrom=cyy@cyyself.name; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706716798; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=N7Wf1cp0fO57Z9uDiMvCuo//pFaOGnfEQuJkfrl9Odo=; b=u388Zrj/FSys1rt1XTyOuxSCu3z38gfgZn2HSHXdok4TEBvZIFquqjLgsbKXrqsmnAX1IE r+mzCA80KdFNJhS3p40/ABS7Bc88X05ZUn8+MFsx2ATC2p+CHii3LLH1drJKsSJ56P+QAA c8msZOnvX77qs9G/hCD0JuNNUN79lEA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1706716786; bh=N7Wf1cp0fO57Z9uDiMvCuo//pFaOGnfEQuJkfrl9Odo=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=L35fe0p2yqrIYc15QB6RUsa/NTKYpoFHLDCTUcfquHIlmgUCXjX3OScglrrtvZY7j +6Jgw4nJJT7gG+X5n2CiqU4WJWbOwUoFTVnHarGALi8AKEbUZ553il9SGNNWNrovvf XzSPm43EbUwgJDWsfo8/CrqI7ck80iD8vadP1840= Received: from [127.0.0.1] ([240e:379:2245:2000:e9ce:4171:6217:836b]) by newxmesmtplogicsvrszc5-2.qq.com (NewEsmtp) with SMTP id EEB9DCEF; Wed, 31 Jan 2024 23:59:43 +0800 X-QQ-mid: xmsmtpt1706716783t1k17n6nr Message-ID: X-QQ-XMAILINFO: OSwzSWs0onYP0SSh2k2Rfo1G0GlEZlxvjYKSVqlBi++K8IwPuekaD6GJRMsdEW wncHhTMAXNfnj3f8dAEFCu5e+jSDlcxlgzEN7Hg1Sir8o/E/l3MP8tXbmb1lRjx/5ZzdL8nbpYDb sgzWCXhLxTEBWTR65p5q5q1lAoe3cBFQQzFX9MHE/BIlDOU2OqKEpQgqB4lfoJx89oIRqJVrwdz9 XuOR3/Q//BHoM0VplG0+Dx/5w70QDofz5iglvPCGbxZsFjY4e+MPRNkbcS6+jeGlYuY4Nkbida+y 8Etf1g58JgzfTXdfNtpcoekxVyON/bQ/IoATIg8dwVbJ5jHBg747SFdSMRj14NQTyzqeCFOKHut8 CzKoOTZMmsx3b0TTfvI9sXUTOsnYcz8Y+s1plTx1qUwnnRrt9Y9kO5iYJIdPUnHzrRbLSpu2/7zp 2iHT0dale0BhAx/wcHjKq5zBSsDirvFbVI7USZS/7iSS3ojf+eml9tTkXMh9wzvwU95TAAy5ry9M rS9qRgtd/CV7AmhKwvlVfEzYV4+uXyiB7AazXK28HFdyazblG+Ph5eK3oU7NpwxYKcm9oUJXRnoM +92ATLQ9iSmqESB8qiAx5NEUc3Q7PID5TRBsFY6CSbVogcltLdlkJZxVrdoCQ8qHtjVezuAqM2wI jBaEX6pznqdOTRdOLcwmagclBGilMvk7JfFq+hgJDy1FPlb7inh0thZaZtl7/hL/ppK2+VMb5INO k+ZpnNXC5s7gyKgltO3ol8iBPDzEc3TG0hqgmQMfL8e/IXNp4wKiXu4r4owo6Bz5cKfLzCBStSeo 85Jcf6Rbsh2HDVMFddxScr6VOd4jJoP/QxpkfKqELYHBW8yY81I3eMUxOoRUhMtWqWFRpImoFxHN C8lJgcIzeGL226kH111Ha4L1TVMwA5wXmLkX1i2HKk7ZPd1fKDDyu3yilEGbplvG+3/VSUde9oBQ Egwc56rOmrTnVjqyVbEDaWjfy6rz56Mcub5NGph9GfktqC4MID5Y7MXfdK2vw1MKENoD2WWidznO OfEBzMomYQMHS7zuyIE41bg8zZ2pme7YyzihBpEw== X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= X-OQ-MSGID: Subject: Re: [PATCH v3 1/3] riscv: mm: Use hint address in mmap if available From: Yangyu Chen To: Charlie Jenkins , Alexandre Ghiti , Paul Walmsley , Palmer Dabbelt , Albert Ou , Shuah Khan , Jonathan Corbet Cc: linux-mm@kvack.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org Date: Wed, 31 Jan 2024 23:59:43 +0800 In-Reply-To: References: <20240130-use_mmap_hint_address-v3-0-8a655cfa8bcb@rivosinc.com> <20240130-use_mmap_hint_address-v3-1-8a655cfa8bcb@rivosinc.com> Autocrypt: addr=cyy@cyyself.name; prefer-encrypt=mutual; keydata=mQINBGUyQ6QBEACcszBmKyM/YNftBlIJSgi5/pQVPIJKtWhPLm3xvckfx0eIY4Qq0eVFPrW5mTCWohWEopUmXewd9mpXv1Q9DPxdhesf+mDask14Amzv9BU2GWcA/BPIumKyyTuLQTUcdSoMc1o+3xWFfViK+HJsLZ3xbW5qNr03gMwEKhu1+bWgQIY4uGSC/IrGczoNdiUsJvKcpyiQFdgLqNeTfR0Lf9kXOxgf4c0TL4xyJjSHuLaMTi6AY4Obm1vzMvudYC3uyTlC7JDAhUsD2tZLpNqr+Ei7XixXlFXLM0KqRX3ro1usdtL/NbJYy9OYcDOacLXLkJ/V3OCdifaG28m6/EVuiAf87ZBMhE+TggLCRo9qtRbL8osiD6Ek280/pD+v8HZ7PXEUV4rylsYQKOrrfyCxJV1OZIUyWnhW4U4mOh/UnE9uv/7GJqIsj2m+sInrw6Lo5kez74BMfEa8fjQGr+5fbR/bEvpHYWHCjy26K4kGm9Q7aQy8IWRg4t45CYI4FglOqVwrN1CAx+oETZFgwO/kTXWpWTcyUwyWpB5W8NP3nZvsI8YEkyWT88DUQEDIrBtFhrgX2zv3PIEjTN7OH/iQvD/2jVI+jVlpX2mQ9Xk1oOUkjyjRXAvgUEm/U3j4DPS4WeU4mcEYV0MnaZMDG2PGfDGz5rjyB0B/jUIJuIf3CvEnOQARAQABtB5ZYW5neXUgQ2hlbiA8Y3l5QGN5eXNlbGYubmFtZT6JAk4EEwEKADgWIQTFJNysCOdd4XwcmJO0bsdckNNE+QUCZTJDpAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRC0bsdckNNE+UhmEACYhxUKfohLojdDEPUT8DDk1gvYgTg4d+AVb5Mt+7Y57J4/7iegl9OFJTXo2LUd/5Lhrb7h9UxEtwOa8ny8f9Iu3j/F7IqXGXhvkzsf5JICdqyH5lavufIyieRfToGbC nYOvFktc TKW523bFpUlT0BlnO2Iu95jq7jcdZs8T5ATCi7aFgd/6RSDV2CfbVRdzu4l73Ohs3O0nYbUWlzNmg2ihzCPHxG8YOpO/JP6ydpEWVKhSanwEdoMjB1v5AzhYIAZnbOzBKIMbmefJj4mztq7r6aq9Xwo1XBIpC/xMfs0YA7lqS6TOvhoRkheMpOs6Ut18BWnXJIl8X7FE072aX7DjgjTax1nb4LS9m3Iu7mVM5KNnZwiH0UqNnfQBKjAP2FvF/4WJ6h9wxBbt2yp6PYsIZIen9GdiUl9KIVsDmds4+QvNKgFdWS8lhjn/GoWkiEpBPDkMd3xbcLcV9515xmdmE4mMQppEflGCb/c6NuOs1YsNSKc6wOXz3kMY9/75fUTstCBVXzVsN71NuyPWUhwu86C42OqHVwv3vbSwdUA61LWYctT0+kvoScZ9DQNO5rIEsPameJdo/SowdvdCQXlDru2Z3Ega5WSlKqvdAynCuDLAyVjhFXcNTOdSMjw9rUH21t6nSB4Bi+K1Fnz5sK78PcBZdlaSaVIx+KgyXtMTrkCDQRlMkOkARAAyKuYSReagrogKSyJPRU9zVZk0yuTOLQuke+CdEpvmm1QcturggAgmwQGyjbD8vmKA5O3kOcdxrxgKOritCSSBGZ0gibazDzwb+uAfClXSiT/6h3SI8EdSP3CJ6ZeYS704N02ACZdwISEqCR9gVVZWHd+NzNeQHrgea04e78TvnmHi1nWK3s8mKjPX8/DS7gDwG6xyvkJziBjgem967XpuetqYpXnhjy36ggDLtF/Zh7782Ei46ymMB8R/eSQQzQNZ2FSqb1kzbES+KH1lcoxpQRUm6xn1+gtUgXwGixkvK/j/us/LYYrGgr71n+sHN6SEbNNrM5oDlt1MinamzUz9h4SAPRusyLupQNJRNL0CrAOGcx3TXqcmoIiUd0KBxYTpPvTUAO4Ek+xQT+jxen8wpO4XxZy2RAG8CygdiuPsw d/CStvKQ bt3yJqC7YC6XmOKg8tb9c9inYLTSPaG9Tx9e9IU4laLEu4UY90oR15VwLaJDAD8x4vZXbgI7K3WdzFe6fd4LkU6f+I0nBETpDPx2AUOmeHjlauLZtED41ne2VFXO+zztT+c04d8IibomxhhdIGyzFpEE8mSPGiJRfIZn/O2w0azscbmOrDfU8ETXGyJPsnVDe8cQ5UV6/X2wbC2D19ZubNZntI4Ufudn4X4E+MuHSzN4m6YxZCiQbu+kcAEQEAAYkCNgQYAQoAIBYhBMUk3KwI513hfByYk7Rux1yQ00T5BQJlMkOkAhsMAAoJELRux1yQ00T522sP/R7TGgv6mBsO7pETzcWtXjBmen5LbMdJe/V447f15kfIFFWp8eZZ12ErSXR2h7c/hBINVosyZLbk1v1myM9F4lkdG6DhZ8k1yxokkXjFADjK/KqFU7Oi9VCHBcZHrLlIbuNFWycw2oHLSbK0uXH058EE1r8o9Sdm3A1gpp+zc2xZVUW+h0isA9KKnNgohQCUqaOk59Mk/TMjmIZr2VgNEysRD+KJ9hkR0TC2sm19ZlFcpFSQK8KKS3h5/mTc9VHdqnaoFjQa27JVoVuBzN9vvkEobQcmBmgg6j1iiTgiKFBKpuQ90iVDc1l4icMLvrtwuxVRj1ta8bDpbs9aDuQRkPYBPd6cE0Yvm9YWbKDcYeLd1mi6xIPdqFlXJ9qFZJldqDZLsvQiRlrVGx08MzIIgFPIGT7pyVhVQkp5jLkfYhoaFWDNLIRTCO1BHrdL2VEZaJK6+n/J15Oy4KVtN9jKc5+GlBz6aiQ1rF3SossrMa8Aco+cjwXzj8OFUm3LpZSlauHtK61UeOhXn0VLbByG8oZdF7qyLtS+/o59xOy1ZdJMf5gZG8RisnL5yAhgWLtlTCeQku04Q9d2AnZLJoI8TTT0NoJiSCLvDbzdybE9X7wOKMZZHqge0bA9ZZZl+Vod+PDzLUOomVjG9lqPHUw HOCbSY7S 5xR8rcYmeupE7yv1UmQINBGKrDGgBEADbF2IVF/VGNZtnEHl7EE4F5vwq/Bqo4rD+o+LOjg1JglDYCqeagjCTVJlaZrQhJFiC5VB0Gua8XkuvUd8eetHNqkcQxtGidfv5ZB9YRyBm7EOFd0k90mIprhf01aOGQpozjFXK7Y+Sf+QF+QAUBcyWIbn0d8/5ycuvX2MByXoaNyQVAty/VwicNKmCCje+f06cQHvSDhFoBg5XRFF/JiNyoo6VBirIcfYVHAcXLo7Pengl4B0RX0l7/yb/Y+pZ0FtZtgiW0aPFdvL1ND90012hg4qADeel51SUCjKZuQtBGs7GdiBCm12QesiEDGtd5TAmtZkODSGyinn2RTnaiD+nTIdj9ju+iMvNDlbDy/04DKw5PVWfgBWgCNgtUg5i9APPorCGv1/viIp6+sreTqDXmDQtJb7i2tTxzHpXIiY6p+hl171SCK0En/CjrPSy/1R60J61lkQnDT/2tblw2RiAjIFOkmhJJjeaITymslg5P2lvk5LNSxeBRGOovRSVsngClpj4EmFffE8NXyhUVFDgnqM0CiWZPWtTjV5bsx+mRcVjoZnwKEoEZ55075QVkONtjXM6eTK6538bVCP52NxRccnGUY/CbsfvSEoyLrVI1h7oTuxqvxfp3n8m8AHz0lA0pYTIB6MG0LBbjEIA6WobFRqPx+d0ahgUzhCGyuTTlwARAQABtB5ZYW5neXUgQ2hlbiA8Y3l5QGN5eXNlbGYubmFtZT6JAk4EEwEKADgWIQQ8KL128WAywyRhsYdd+IsZ5TZiVgUCYqsMaAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRBd+IsZ5TZiVvk3D/410wgtdAvjKRz4YfBSYH8eheJzR9SWwhiEoxcI6XQ/NVqQ0FtAHllI+ASlfuQxRQaVPBdiWj9tiC4bnM6x4uJRrCBt7HR9t0u7IqnAJ5EbqU3GyXK21tlk uZm4ENgA SnfJf/a+dU4SZgdOcEKfow0Bjm3u1YTHy+er1W93ghw8YJg1s2Ts1PgFoveNccq+IcpazigNNO96sqWWt7Ht4bttbkndWReDEJjzfErReGRInz0UafIGTNYbAiSWySigqXqna113zTcvp8X6ewk3Z2Ada12xKRXQwVkCRqgTPoy32fWALZ/Wu5CJOYjanWarC/O/wEWd+7jtNCsxd3gzmAP/28ocBtHVybKsYZ1WP3BG+HZbwYinrmqYLi3qzfsj1fO7MhXooKp8K6SIbx3tdSEqDqgHlk2rvCDacUOhu98T0PE2mxVTT30yUoE2mQ05BO77J3rfLScMf0T6T9DUQ5BqDYqHUbe0e3DFktz6XF2bLSTesjQmIIYOgaizH6EGUlFioYcVThkn6sKxryn8Y/65ZTGmlM96jtgUDKWSHaEkB6tGFAFthm7hTfkn+Ak2G2JAOa6gDN17raZoLmMFw7GJNBMm8Yua1RoD6xNVe0Y9Kfusg1MC5Bb0/4OZof7T+qQJHJJQyAV4NXVa+630tRyEGpV6XhW1noirciSY7mbohrkCDQRiqwxoARAAyXQ+YbpFIYVzVqQajibfi/FHL2Sl0hHVb3YFBh6wCTSR1ylDXdsZkyFcXrMAQ3lrwoGkTk/tSRupi4trlZ9IoyIdjK5cJuoGombkQzzY1FbqxgRi3qjvKDAlG4mvpf8Q2p3CqVV45KRqhbhi7B+FhbkC7V8Guhbym5lJIdovvyyyHJBHnbcybylm0MU9LBLZoMGrMOE9+grCjF3/ltKVwOocuOo0+d4jHyvXQyup3KSBqRYfjSPEABTHcumBJpY0zUnrxv1CeXdBE3xU8szE5+4DufXCwqNg+mgSOu9TKnYCpgiH/QvdpYY7Xk6shBf+BKlEz02OfgAl/BROeyTYcQkIx8RnquZvWyOqe/ACNOj6y70lwaxcdo+qMFo155bENlWcJEbKX37lTq3w4bSjskZ/gM3Ymj0wQ hqRV+P3e 89lSV9902XkJFLugGyb+9L0uZbitlsEcRurRI/aXO6/X5SZd7FrwUY2VttMqc77PGv1ae20FY4V1eAOBfs+7VAKSgCkT9zo+zT6GNZhrxu+k210HXgdZ/TZVnksuNZzHKotZUWEvd0kAabTp/ITiPw+3ti5Xkl5HPJC6SrCZDU1QHuW97Pe14k7Az4a8oM40Hd2UvPQ2nvkuCxr91PTcr6VSI5ASTkBgg3yB1umlr8zz4ZO4x4EhAJ3/K8hO2YKLO0AEQEAAYkCNgQYAQoAIBYhBDwovXbxYDLDJGGxh134ixnlNmJWBQJiqwxoAhsMAAoJEF34ixnlNmJWqe8QAMiSpD0/v7Zf/Lg+IdqSFXdPB/QU2r/N3vIOPjg2riaY5tRTxSRbTcVTVgXVEsHjd5/WDmXhcX8oNfWfQrodt2lLgZBWl1hBiZ+grnySl9+oVDf0EyV80Ech6NgJLGnPOqAbWfHHcYaGKDw9mMXqPE+2EX/inmpuYHAfesWjb92K+KedJiQdfioO7ls+Sv48btLDIDiuc9fHp++CSAIpFeVURy3/xNsUBCRUG/lwLTuqILZjyYWISWDoWF4DD9XdP/uNGczJm3mo4rB7PPoCWC1MbjPWOSyDuf8JfbdV5+4O7jMXfZjdCeLRQhjsIUjvXk5qTPYdFNwvvnsUro2gKoeMijPkvSbuR8xCB2vwnfzYfmjb7z1JLya7DSrYdAZpZXFXGEcGsDRB1FJ5H8KLmNFTAT3eBmbdsrCxsdjC83zWpgpJA7fS5Cr94ae3MH9SHdj9eVKwwwhBu0dys7HQN2GS/fPAcZoy6hEuiHUAipoRaONI2YAzs8qkmA8unW0pIHwggi9z+TuG+WOZjw3ijbbS9PpM3uw5zFYqPzkyPRALPyklZO4naXC4kjQdZRSeNF7pbf4qgvIZtgdZONY09xwm5PSTJxblXaBjeGhhCpF+uPbXHOa4daV9y67EnSFeN3IwcO6JSc 8AGzutKR 0mslfht1JyMf5dUi38RQI/fOO0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.3-1 MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 9B5D94000C X-Stat-Signature: e18p1n3hoy9qmggc59cy5m17empe11u5 X-Rspam-User: X-HE-Tag: 1706716797-924943 X-HE-Meta: U2FsdGVkX18YlwCtKzwn28R/IhgKEse+9b/hC10uRlgWh+RdwxObntSZKi9PI6NiM2gBJyy/2Szg4UgHxnoOdTjZdROgqbawJxyHAT0P6uEAbcYUfcL1ReqJk+J/WjWD9rG70nMYgOpRaGjqM/KrOirAWPyBBkA074N4SGUxmBouZ01fYSzRLEY20iIy0j3OHWymXajGz6X92dgC+ALXIP3Vbx5Zu292SqLIE/qXn6E6il+nKmDHFlJ24z23Fvgbutl0N4fhjbr5WduF3T1Do4jVmjNHwouh6OtMLYs1wVbSDgU7j9DBKJ6guxFbnRp3/7lZx+oWeRB6YnQNyiLIxbgfim0UhgPdBRRq/GLaT0plxwAz2ObfiDaa/GkeMQt48z0Bh0xOXfedxtLjwaRP8CThxYHoyYXimRTCDLPt3USK0HP6pgvDroIqhafakDVZB0l7R2Bxj5oRvdrzTbry6Tb0oQH2IHsgPR0royL3Ra6/UW3qlGMVoXyRMvVtaN1xVcDuAmSVCB0T3BU8HzD9iADOMlPyMu5yTadKHei3LNiq7hVKpIWtjMD3kofQ5/hkqshjLXy4KbD0VhIk1DLcz8pXCsCuaYsLqsCjSZ0DJbLLghHK2Zvy80kavXxir/bHOabwtVjC/Tt6mHCB1Hd6A4K4LSlXisCLoh5ejWodUiuv1GjA+39TVsWvxduaQb0sWXoQneBqA+K486fhU6/GfGNgTqPAN1dDFv7uJOp9mJ9hrUNs+SRkKf3PGWfLIu4gFicyL5Z7WwWrlt/7ghpoR+YM58Pcbc1juAzjStT9Q2OUKVRWED66SExRKieSeQmxP1rB79W2jz//l6EAA8BxDvNES6hRL34fJ+cnAUtgWEktvVWFCCijjAVcO0KyzOXKMfjvLHGoLmS92TVdRb1bs7oTTe519/852FTgYIBI6FGwhUBWzyPx6SuEHct+z02wsB5P/vGGBUjdagB5/EV uiz1g51f tgvvmx+YrkU5mFZTOeoOFbmgh+Q+UyBkpu+9tbBE4a4WAisWs++4BgUCSFqfzV05QeP9Za9Uihyr1XKc13vA0GkppoDfcGqGDxUm6F1qZWoJwvIGYRpJB8BT3GVytiMqiNh75NmPzzHWhRmMkTsyOrjJ4TA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, 2024-01-31 at 22:41 +0800, Yangyu Chen wrote: > On Tue, 2024-01-30 at 17:07 -0800, Charlie Jenkins wrote: > > On riscv it is guaranteed that the address returned by mmap is less > > than > > the hint address. Allow mmap to return an address all the way up to > > addr, if provided, rather than just up to the lower address space. > >=20 > > This provides a performance benefit as well, allowing mmap to exit > > after > > checking that the address is in range rather than searching for a > > valid > > address. > >=20 > > It is possible to provide an address that uses at most the same > > number > > of bits, however it is significantly more computationally expensive > > to > > provide that number rather than setting the max to be the hint > > address. > > There is the instruction clz/clzw in Zbb that returns the highest > > set > > bit > > which could be used to performantly implement this, but it would > > still > > be slower than the current implementation. At worst case, half of > > the > > address would not be able to be allocated when a hint address is > > provided. > >=20 > > Signed-off-by: Charlie Jenkins > > --- > > =C2=A0arch/riscv/include/asm/processor.h | 27 +++++++++++--------------= - > > - > > =C2=A01 file changed, 11 insertions(+), 16 deletions(-) > >=20 > > diff --git a/arch/riscv/include/asm/processor.h > > b/arch/riscv/include/asm/processor.h > > index f19f861cda54..8ece7a8f0e18 100644 > > --- a/arch/riscv/include/asm/processor.h > > +++ b/arch/riscv/include/asm/processor.h > > @@ -14,22 +14,16 @@ > > =C2=A0 > > =C2=A0#include > > =C2=A0 > > -#ifdef CONFIG_64BIT > > -#define DEFAULT_MAP_WINDOW (UL(1) << (MMAP_VA_BITS - 1)) > > -#define STACK_TOP_MAX TASK_SIZE_64 > > - > > =C2=A0#define arch_get_mmap_end(addr, len, flags) \ > > =C2=A0({ \ > > =C2=A0 unsigned long > > mmap_end; \ > > =C2=A0 typeof(addr) _addr =3D (addr); \ > > - if ((_addr) =3D=3D 0 || (IS_ENABLED(CONFIG_COMPAT) && > > is_compat_task())) \ > > + if ((_addr) =3D=3D 0 || \ > > + =C2=A0=C2=A0=C2=A0 (IS_ENABLED(CONFIG_COMPAT) && is_compat_task()) ||= \ > > + =C2=A0=C2=A0=C2=A0 ((_addr + len) > BIT(VA_BITS - > > 1))) \ > > =C2=A0 mmap_end =3D STACK_TOP_MAX; \ > > - else if ((_addr) >=3D VA_USER_SV57) \ > > - mmap_end =3D STACK_TOP_MAX; \ > > - else if ((((_addr) >=3D VA_USER_SV48)) && (VA_BITS >=3D > > VA_BITS_SV48)) \ > > - mmap_end =3D VA_USER_SV48; \ > > =C2=A0 else \ > > - mmap_end =3D VA_USER_SV39; \ > > + mmap_end =3D (_addr + len); \ > > =C2=A0 mmap_end; \ > > =C2=A0}) > > =C2=A0 > > @@ -39,17 +33,18 @@ > > =C2=A0 typeof(addr) _addr =3D (addr); \ > > =C2=A0 typeof(base) _base =3D (base); \ > > =C2=A0 unsigned long rnd_gap =3D DEFAULT_MAP_WINDOW - (_base); \ > > - if ((_addr) =3D=3D 0 || (IS_ENABLED(CONFIG_COMPAT) && > > is_compat_task())) \ > > + if ((_addr) =3D=3D 0 || \ > > + =C2=A0=C2=A0=C2=A0 (IS_ENABLED(CONFIG_COMPAT) && is_compat_task()) ||= \ > > + =C2=A0=C2=A0=C2=A0 ((_addr + len) > BIT(VA_BITS - > > 1))) \ > > =C2=A0 mmap_base =3D (_base); \ > > - else if (((_addr) >=3D VA_USER_SV57) && (VA_BITS >=3D > > VA_BITS_SV57)) \ > > - mmap_base =3D VA_USER_SV57 - rnd_gap; \ > > - else if ((((_addr) >=3D VA_USER_SV48)) && (VA_BITS >=3D > > VA_BITS_SV48)) \ > > - mmap_base =3D VA_USER_SV48 - rnd_gap; \ > > =C2=A0 else \ > > - mmap_base =3D VA_USER_SV39 - rnd_gap; \ > > + mmap_base =3D (_addr + len) - rnd_gap; \ > > =C2=A0 mmap_base; \ > > =C2=A0}) > > =C2=A0 > > +#ifdef CONFIG_64BIT > > +#define DEFAULT_MAP_WINDOW (UL(1) << (MMAP_VA_BITS - 1)) > > +#define STACK_TOP_MAX TASK_SIZE_64 > > =C2=A0#else > > =C2=A0#define DEFAULT_MAP_WINDOW TASK_SIZE > > =C2=A0#define STACK_TOP_MAX TASK_SIZE > >=20 >=20 > I have carefully tested your patch on qemu with sv57. A bug that > needs > to be solved is that mmap with the same hint address without > MAP_FIXED > set will fail the second time. >=20 > Userspace code to reproduce the bug: >=20 > #include > #include > #include >=20 > void test(char *addr) { > =C2=A0=C2=A0=C2=A0 char *res =3D mmap(addr, 4096, PROT_READ | PROT_WRITE, > MAP_ANONYMOUS > > MAP_PRIVATE, -1, 0); > =C2=A0=C2=A0=C2=A0 printf("hint %p got %p.\n", addr, res); > } >=20 > int main (void) { > =C2=A0=C2=A0=C2=A0 test(1<<30); > =C2=A0=C2=A0=C2=A0 test(1<<30); > =C2=A0=C2=A0=C2=A0 test(1<<30); > =C2=A0=C2=A0=C2=A0 return 0; > } >=20 > output: >=20 > hint 0x40000000 got 0x40000000. > hint 0x40000000 got 0xffffffffffffffff. > hint 0x40000000 got 0xffffffffffffffff. >=20 > output on x86: >=20 > hint 0x40000000 got 0x40000000. > hint 0x40000000 got 0x7f9171363000. > hint 0x40000000 got 0x7f9171362000. >=20 > It may need to implement a special arch_get_unmapped_area and > arch_get_unmapped_area_topdown function. >=20 This is because hint address < rnd_gap. I have tried to let mmap_base =3D min((_addr + len), (base) + TASK_SIZE - DEFAULT_MAP_WINDOW). However it does not work for bottom-up while ulimit -s is unlimited. You said this behavior is expected from patch v2 review.=C2=A0However it brings a new regression even on sv39 systems. I still don't know the reason why use addr+len as the upper-bound. I think solution like x86/arm64/powerpc provide two address space switch based on whether hint address above the default map window is enough.