From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752363AbcKHCkb (ORCPT ); Mon, 7 Nov 2016 21:40:31 -0500 Received: from mail-db5eur01on0047.outbound.protection.outlook.com ([104.47.2.47]:64353 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751919AbcKHCk3 (ORCPT ); Mon, 7 Nov 2016 21:40:29 -0500 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=bestguesspass action=none header.from=arm.com; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:1164;Count:14 Date: Tue, 8 Nov 2016 10:25:29 +0800 From: Huang Shijie To: Catalin Marinas CC: , , , , , , , Subject: Re: [PATCH 1/2] arm64: hugetlb: remove the wrong pmd check in find_num_contig() Message-ID: <20161108022527.GB982@sha-win-210.asiapac.arm.com> References: <1478140059-13829-1-git-send-email-shijie.huang@arm.com> <1478140059-13829-2-git-send-email-shijie.huang@arm.com> <20161104001616.ssjbemliorxi6evl@localhost> <20161104025216.GA19810@sha-win-210.asiapac.arm.com> <20161104154814.hizb5277wp2f3enj@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20161104154814.hizb5277wp2f3enj@localhost> User-Agent: Mutt/1.7.1 (2016-10-04) X-IncomingHeaderCount: 14 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140;IPV:CAL;SCL:-1;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(24454002)(189002)(83506001)(4001350100001)(6636002)(2906002)(8936002)(46406003)(92566002)(5660300001)(87936001)(2950100002)(8676002)(97756001)(33656002)(6666003)(356003)(50466002)(1076002)(626004)(106466001)(23726003)(4326007)(104016004)(93886004)(47776003)(586003)(246002)(110136003)(77096005)(54356999)(76176999)(26826002)(50986999)(7846002)(86362001)(189998001)(7696004)(305945005)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM2PR08MB0564;H:nebula.arm.com;FPR:;SPF:Pass;PTR:fw-tnat.cambridge.arm.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM1FFO11FD050;1:0EC6UTLuRkN2zCLsZzA+aIHtrrhwqG9IBylZM7Kn5rj21kI1EGwr0zRRqiBtP+qx6sOd3nbgaqlbbPIIFH6Eval8SWJ+fC4AQcbcvRaDO03pIXrvNOS3fEFKZG+nfOSs/87WYtQLQhuP+4+OSRVYvvuTdFHsRD7aYLDfkO6cniwTiCrUjgxVUaOerUwLXe+RSOCL5LHNxPUtvEAtf0gm7G0NSa6QhPKf48BWPbvvDpgQg+nKNlZhaZ9HQQRGdNAwpfB0PNkXby959zcadPFFT2vw4P0GplA7z4bsztHARaP3e8JuybNifIjSHXcZk1vbp0dOdVYK/3ZaoNxGUr3RYYC0CAU/d9FXxrtMdc7dyxZjgQZ4LcBr0r0RberTTAaMFROy1SDfaUXLTPSqsCH9cR4LiTClNtzfGt7vRjmLCOtn6bWdtkM+JTKQxPAXXYIVWWr/Va2QRxhquVOsdqDBPjsfciZJNyyWilFeCpwR6337mKbHvQx3DS/Ap/hC+j1cLIPVYP7dzEZDYdM1WHsvGo+tSEFxmDSmg72UYZwrtI4qVNoI5NFczpEE5NCoE1b5W6BlO9bwJi8Jp/Oy92ajSjXanfMTuxhlnBVcrqprcOm3AuUlmk76L0ea93m/NHWX X-MS-Office365-Filtering-Correlation-Id: e59b8c3b-14e8-45a0-c81c-08d4077e907d X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0564;2:5aCb7nsFUy6tBs6pBMCFcCV9nAmiXH3RtxVRtC+tRQ/7kjs66YMlHYyccQaX+nEMm+ceE0IjmtauOJi3Q4PbFil4NwGKPBl5rKnILrDuftc9FzLhx6/Eryu5Bg9PIod/oUQkjaCj3KC0qnakO0w4dhfke5WsK+RIvqXy9CSe9cvN8ibMKMdDreCsnS52B9rW3i6jJ4lgFfZTlBGDZ9guVQ==;3:AjAhCK6C4UsmL5J2+BtjSIZYAd8f6bQzCA99D9UteOujOLKDEwhEZDfF542Dfp9Ygi+q/bv6x85c3h7wRHhw1OYnYI2tZFfvhxjIAIJqWlDsePsI0kNpKJ+LnIxZ0ooJEfQwVuRmNvDK1b73Pm2PGHJlO7b1iP1wRIlMZvnx72hGrZjYQ3sf+oTWGf1/Z5S13JAxo13G0i7SfoclRneWmfKy4+CFEwUv0pwYGe7uYYGrKm2Ibf0NX2m2ppkugsP+08Z4X2433QXZ4nGNMtRLAsaQxIVq2pEpleTMuUojXHM= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:AM2PR08MB0564; X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0564;25:2iRI0Fp1d5YsMrHibPAxNDLRuSJREoqLa/LrdILZSuW+JFr+vmJOD1bLwRRoZRTSRZeKWerB80sHbf427q5mg4FSoBg+G4Kbnx8xaOD0nBKHPEX3j3fe+7XTXvUqbJn3g3jlsUaTIsZdbKJD+7dQkjX3CCrx/NLT2ykK9kD/jDa5WcHPrZ6u3+cgnBemeVRlZMRw89q+eAEqI6ZZsbevasNZVdso6cB7EJdk5JjuKGoqSwQT+09WsIQp0o6zdcYG00VxSjXmWM2/DI1LxxIg3eEmHGr2lGDAsZmdyZbZ2oO5ca4EY445ve8y3DiaHvvUYoaSErZJG5Ry934I1ZIg32sFbD1Z4bihzHp9oGn/cGGDKS3JQ3RbNt1JAO+QAcvBX2pvZ6HQx1iqD5nIERXXuKgJYoI2zBX1vGBEeFXCE+g=;31:Nxk/MzmFSY5V8G1GPhp9VtiftzYL70EqLGtmOqR9sGoBcG9Kv5ktjO8AaSCOKIll5SDoEU6znPgXgPDmhwnVVxIJxg9Lmck9rQwzjrGuF5bNN0l3MMjYFAi2aT8vONuO3RTWEgnUN0aKDm3MhHfNA69v8sMyGg+p/QMOCTK4XCZwX3RPajf8JBjrRWJ8f0BXVxjEyo39h6SSZxPUmpExsbCfLA5g8efylVpd636q9864TDYKWWmD2vQ1vwuMH1PVZq6lv8v4iH2udbE2CFTn2Q== NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0564;20:izjMYkSRHSzGm5FU2031b5cBGnpD6S5ILcRT5txblTmNXSbt8dqqNX4SY1antj2m4xgFh5ttrjzssD3UMb6Ls1ma7SFUiBvPO+ThsQwoJaaKEODyuYy6IbDJwFTNIt4+BERP6uvyP9wvnUduvjLZhQFOopw1X+dbDR+Zb9t0V5ztqTTUPsGx/hSTNYqOGEnEvgxrf4oYEisIxDoKhCx/HV1HS3XpMOqYtLc1yWVg6BRkMKuRDqMmw5ud4AU+tD8j;4:3b2lQTF0VFEt/7YI7WQFQyFXW1sdSXZeUHlqlf8fB8UtC5n8yXAo7sfyxpFkviJidwBQqnfG8pdPIuWTthEnCr6blY9P4BClDzXV6fXwEvlDNthboQAlhPb5bavlNK3Z6j/8nqU2VHFedzBdkFhYRJ/OGmNJgjv98wYsrRe1kFWpvQhWixvsOfuI0HOqapI9YfqnOZrhnkg6uBuziiqRxdH2K3eziE7SnIF27ChrJCLNBJCE9+fNzyl2b3KMg4d4L5mBbY5xewNSWn8MedifhjVfa6XUtv52pSw8vFCteijgH4VT6gyPi5ATtTP1m/MCOIyeiOY/qqV3LQrtBt1EKJFNjorAc6vONuIRltEqMcTZ4b0Sp2zegYKbvmHDtUCNcgSOQpMPweSwZoiNEVPTOv5/o0mar8MHMiavOfrBesuKmGAevB8NaSwVO4KMqZZ0TnRcQC1qacZzWLYFKjy3lDgDM7ymQAP45rFQRd5mMhE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(13013025)(8121501046)(13020025)(13023025)(5005006)(13024025)(3002001)(10201501046)(6055026);SRVR:AM2PR08MB0564;BCL:0;PCL:0;RULEID:;SRVR:AM2PR08MB0564; X-Forefront-PRVS: 01208B1E18 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM2PR08MB0564;23:Gq2kNG+j/axB5rZ5l6sirlt0MCzB0Jz25mfGEz0QC?= =?us-ascii?Q?siAmPtIDDPHsOdBS3VfZl20sEBlpOBN09MPnxGnEqGncuPAnDlqepMBV2FAj?= =?us-ascii?Q?stNdIIzVk3rNrwUHIRmkPuRgXQ0sTrxz0hpY6z4QHTusFR44CNTNPTF+uLlB?= =?us-ascii?Q?kLTpjdYa4joNMVe9zfHjxPP/w/hg3Q1QJxEye0CIsMVk5bP2lTg7ydO3DZGb?= =?us-ascii?Q?3O5wBsZqYQYMqHJdlElTkVMlfpD/CDeAfZUmOexxxvBHKv2Q64zLOLYwf5nb?= =?us-ascii?Q?c6Jlj81Aae8qlg/VIBUCiaWRATDPLIb6rbcAM3HTvEzGyWM5O3lvi+a6i3kV?= =?us-ascii?Q?uadIDl0kY5kkE2up9ZNObNuFQx4ariL3AOR2Iwk/6PpcT1oeuChFCXQB+bNB?= =?us-ascii?Q?8e8VnY6NnWhzNMDaa41gtBEYChWmofPiesF/RLAY31CUzrVirfM5i8Mkjvk+?= =?us-ascii?Q?dkMIRVhoYKSY5M289XQRKNuYEsonXzBjBbDF04oEC5wVXAMkiwdXsGWaXVIu?= =?us-ascii?Q?v9jSbnTmeWEYwuU3khKclpON4jJs0KSQ1k37izqzmdPd+IL/OjOq/u66RPEP?= =?us-ascii?Q?bgDJ/hCP7Lr4JIgLdDqb7wCt2EJ5vQpj2x+Iz8eawSlnL6/aSxgQiEwvY8fH?= =?us-ascii?Q?q6EKBsbY6ViHZgpboJKKQ5hYby4DgfesFta+/FTAask5yYV5zn6ZYwZ6lQWv?= =?us-ascii?Q?A9q0KcnfInMwSwnmJ5mBhUG1wxkBfwoJbsCjrDd2nAfZmTCDApmZUoszOMzz?= =?us-ascii?Q?twUDyVAF0qFyCab5cNMJ2f5MAsY6k9XK4ZEIwwbhNWJdKPDWElPN5OpZ+ovt?= =?us-ascii?Q?AtOPM+nAqE9Py5OU425O1B5GM5vqqakz0G1+KhWGOcjl+33ezoBE3kfaRaLP?= =?us-ascii?Q?0SRA4ZEDqZvtVJ6LzLlmwrvRm4F7sr8aDQo+1Bf7degoz4hg1VgtrZj9eW+6?= =?us-ascii?Q?XQf1QkwViW4Ppw87DOD4tX80+nagfq5CIeqGm99CWrb/L77TfDPBsRTpfjhr?= =?us-ascii?Q?8ZvQAD6xudN5HXe5VAaTeumZ6UxjYMamT+ceRFZcVVFqcuNz3L/gxtZf0yCg?= =?us-ascii?Q?cESoTbemgdXrvFbKEXeadmrMHfyd7PaotbssYngugmFf9LiaQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0564;6:aMkCiHXQfH7GL44JcBDPT4Jf4/uxmYNuX6w6wZnJE52LUNCXN7S14sqvQdBKwAF8tYRrh2+I5bqewdIEfYLE58hy5XZTNZdNcBcM4EIsjmgasBlHLsQEmTbxTDmR6ukxYN503pKHZAOpjMiwnQz1M64HtGB4gHPfEVAckAlmJRxymoKBcHUqu69DzLV5nJxEXE/nNYn55RPHTWAT/zC7rSloKu9qnR6AqqSxaB24OQWapYv4V7byAC/Lnbv3jXRaOtZyRp74uqnnrZ6lCy7yyaS+//OnZ0dtiiljNyWyuDjPr+hQwJ1JWYaGaBmdpixrR5wEfW73LIJ5JPVQYOZJ6A==;5:ohlz9AhtprecGTuRO+LrAo9ax1O4C1eAAsGBPnqTEhP0J3XC2ve/i6DJBrgi8gThO1LxQajuLNSgPg1CVZcOStb4CgQ+kb6jHe4UEO43Rt4UtFfyctR3yn9yI1bslz09J6w4SLhS6fgLKYFx7R78vg==;24:ge5gsafrSyY6JndlO9IGa2T6uf3mLE6lQVN9WI9sRznkoR9t9S7L1YBW+5Da6iuNZZI3VKaXq+BtevGVYG7+RndsErA6sj82sBzic3UcDzc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0564;7:MjzMOslzSvGB8iNqiHOfa0c0fX02a3lQrWboEDeHk9LejmWGsxusCutdOP+xVnnOdjNxuHoKbjqFyYm+AMT+pApZ726bJiBooBrNWnmEjuuVVUE9I611Sc6YIl41yC2JzYWlgFrfBkWG2xP/aAjcoDoQAo2sTTyhyrVc6B6hcFI57/ZyAEs3Jt4oefqLe2636ZSjABq/r6n8HvfE2ZS9RabxqxOG4YcNBknQXB8UbnTC6nudUoV9PDyZeT2wHSnglVWCSR6UYpFL+H5cQ1QXWDDVJihmFdy76ASzBwd/+KVNa/giMOcXykd9U1gZoW07GUv0QJo/57ys3bbESut3Ck96kBavFsx9avFEUfklSpA= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2016 02:25:53.5178 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[217.140.96.140];Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR08MB0564 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 04, 2016 at 09:48:14AM -0600, Catalin Marinas wrote: > On Fri, Nov 04, 2016 at 10:52:17AM +0800, Huang Shijie wrote: > > On Thu, Nov 03, 2016 at 06:16:16PM -0600, Catalin Marinas wrote: > > > On Thu, Nov 03, 2016 at 10:27:38AM +0800, Huang Shijie wrote: > > > > diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c > > > > index 2e49bd2..4811ef1 100644 > > > > --- a/arch/arm64/mm/hugetlbpage.c > > > > +++ b/arch/arm64/mm/hugetlbpage.c > > > > @@ -61,10 +61,6 @@ static int find_num_contig(struct mm_struct *mm, unsigned long addr, > > > > return 1; > > > > } > > > > pmd = pmd_offset(pud, addr); > > > > - if (!pmd_present(*pmd)) { > > > > - VM_BUG_ON(!pmd_present(*pmd)); > > > > - return 1; > > > > - } > > > > if ((pte_t *)pmd == ptep) { > > > > *pgsize = PMD_SIZE; > > > > return CONT_PMDS; > > > > > > BTW, for the !pud_present() and !pgd_present() cases, shouldn't > > > find_num_contig() actually return 0? These are more likely real bugs, so > > > no point in setting the huge pte. > > > > The kernel will not call the find_num_contig() if the PGD/PUD are empty. > > Please see the code in the hugetlb_fault(). > > > > ------------------------------------------------------ > > ptep = huge_pte_offset(mm, address); > > if (ptep) { > > ............................... > > } else { > > ptep = huge_pte_alloc(mm, address, huge_page_size(h)); > > if (!ptep) > > return VM_FAULT_OOM; > > } > > ------------------------------------------------------ > > Exactly. So what is the reason for returning 1 if !pgd_present()? Would I think the author was too cautious for returning 1 if !pgd_present(). :) > removing the checks entirely or adding BUG() be a better option? I will remove the checks in the next version. Thanks Huang Shijie