Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp746958rwb; Thu, 12 Jan 2023 11:45:55 -0800 (PST) X-Google-Smtp-Source: AMrXdXsXzamEjFmTCajcshvpMcxdtUK25V+M4nhQsuSjKcAh2CNbYIK7NNQJwWXXS/ZR+D3rj0Cw X-Received: by 2002:a05:6402:1052:b0:494:dd8c:1098 with SMTP id e18-20020a056402105200b00494dd8c1098mr22575372edu.22.1673552755313; Thu, 12 Jan 2023 11:45:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673552755; cv=none; d=google.com; s=arc-20160816; b=mA2vxA/gFE2aCs0yqY5pTP5GKqIKfL9j+No/Z+Y053F/MeP0FNq0+WXJyh6LjQKENs VuybAF6ST8KrNOWG9w4NveWSkDYxSbipNJ1sl8iFiBMseoCJI3aFyEOkTdh1k3YGF0W5 3Dc256XlaUHuP5HNUvDJ+9rzbOD6zDoW8xI999C4uWoZhbUJ5HdKpZ7q06D4JUU9K2Pc zgMbJdX7xruAESvL648O0RVTYiObnCsyeg4qieWECM0qdqv3/wiZruUuVLFunezC3Adx SqSuqJpY9XBvumgKnHEW7bRkFZP8RwvplZymVu26MUfr9FXRnPTh5dQbkP2sN49q16l7 sunQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=GHqB03IG/Fw5jEYQ9HlahhtZMg0ZvXSmKsAYDV0YaZg=; b=aQGhyixN6rxGI6TUF7FxWT9HhjnBy67VGmoDbfENiFU/gM43MLaefAWrxmpiM9c3V5 /y9Gh3wLHvjr1u7YNVDQrONncc78uwN3jtRHleGIeeAkpb/EEwKbLz9fnkUtanemaTIJ XBbd1lBHulkTb1bsUFajeqvTGmiYnWG4AzN5hbtJrmVOk83fNpr1hTFvWcaq5AUmw2BJ Y8QFI3P457yK7xR2y5926jq37/8dYxbmjZHvuLQOApphUemupemUGshcBLyo1t76rJ8+ uIP+GWZZ1yOF0fgLEKqW45VXuTNQ3MtniPpvO7GGsGlGolIvGQGBmJY0ET04sY6QTM+r fujw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=tJTIczFV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ch7-20020a0564021bc700b0049bac85dfcbsi1023125edb.114.2023.01.12.11.45.43; Thu, 12 Jan 2023 11:45:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=tJTIczFV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240392AbjALSfr (ORCPT + 50 others); Thu, 12 Jan 2023 13:35:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240099AbjALSfQ (ORCPT ); Thu, 12 Jan 2023 13:35:16 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0AE427BDD9 for ; Thu, 12 Jan 2023 10:06:33 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id e3so9687333wru.13 for ; Thu, 12 Jan 2023 10:06:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=GHqB03IG/Fw5jEYQ9HlahhtZMg0ZvXSmKsAYDV0YaZg=; b=tJTIczFVTGyPtATfIAyHXZd+Ng/jYBYxMbc0eeAAkpztxNFUKPFL/9DE5YIxeq3nfg rc9VVmHTZvvkFsSnImYgHR/LFMzRLaZrD4kc+AGpEYtWTi6V0va1YUdd/bLBGku24Jm2 GeYfMIB8M8gPZYLQ41SzH3PEbieeWbLR+w4QwNz1qQS9j6eDkqDs4WFF4KCEJnQX3ntt tTDMMbIHKd7KDOUDDn3bkSasHFAMpXBc5Sa5P5gsO/Ivhg39ypknmR8SxsIC7JRYrfM5 6AqnTG6yVwPRy0mvBWo/YUegigjql3TgH93Ykw7rzkhQfbiQj2N9gD5tq9x+Okb2rAe6 ViJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=GHqB03IG/Fw5jEYQ9HlahhtZMg0ZvXSmKsAYDV0YaZg=; b=8GCiRgUVKNyzmCniySd3HZd5uOrqubYGhi0JeDNw2hkPhS/U052smVzK254Jpc+u2P kv5vfjDjy5vmUNey0JRB/ldnJf6Q1o/Gh2Dy1CDcEpsOMXX4QkTzfmvhuptgHVL9Vvfq c6Xhbc4lffEkdfUHrYT5dTQXAic4CxaxwYZuYWsc2CMsCb6dZzw1GtIfewV5AwdewAY7 BqViKG4t3ZiTUwDb1Hv7qJMiEgH0SqqpetD0k75UJFGvOPyH+6RkKu4fOxu4M7a22YBk ZOF2/xQvMprMs9ETsFTme4jf+hIcmddsKzSRjcX7emQdBl4GhcoW6/HZkrAlO6kqqWco Qr6A== X-Gm-Message-State: AFqh2kpuNKSntNujpKw8kw/uwGyj6ST3OPYzQktbkO1LAQcVUZvAjTzh bpKWPF/zGiy9U4eE3ZHoswpWeIBUf6YxZNqlvccRsw== X-Received: by 2002:a5d:6b51:0:b0:2b7:74c3:560d with SMTP id x17-20020a5d6b51000000b002b774c3560dmr1478500wrw.39.1673546778479; Thu, 12 Jan 2023 10:06:18 -0800 (PST) MIME-Version: 1.0 References: <20230105101844.1893104-1-jthoughton@google.com> <20230105101844.1893104-20-jthoughton@google.com> In-Reply-To: From: James Houghton Date: Thu, 12 Jan 2023 13:06:07 -0500 Message-ID: Subject: Re: [PATCH 19/46] hugetlb: add HGM support for follow_hugetlb_page To: Peter Xu Cc: Mike Kravetz , Muchun Song , David Hildenbrand , David Rientjes , Axel Rasmussen , Mina Almasry , "Zach O'Keefe" , Manish Mishra , Naoya Horiguchi , "Dr . David Alan Gilbert" , "Matthew Wilcox (Oracle)" , Vlastimil Babka , Baolin Wang , Miaohe Lin , Yang Shi , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 12, 2023 at 1:02 PM Peter Xu wrote: > > On Thu, Jan 05, 2023 at 10:18:17AM +0000, James Houghton wrote: > > @@ -6731,22 +6746,22 @@ long follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, > > * and skip the same_page loop below. > > */ > > if (!pages && !vmas && !pfn_offset && > > - (vaddr + huge_page_size(h) < vma->vm_end) && > > - (remainder >= pages_per_huge_page(h))) { > > - vaddr += huge_page_size(h); > > - remainder -= pages_per_huge_page(h); > > - i += pages_per_huge_page(h); > > + (vaddr + pages_per_hpte < vma->vm_end) && > > + (remainder >= pages_per_hpte)) { > > + vaddr += pages_per_hpte; > > This silently breaks hugetlb GUP.. should be > > vaddr += hugetlb_pte_size(&hpte); > > It caused misterious MISSING events when I'm playing with this tree, and > I'm surprised it rooted here. So far the most time consuming one. :) Thanks Peter!! And the `vaddr + pages_per_hpte < vma->vm_end` should be `vaddr + hugetlb_pte_size(&hpte) < vma->vm_end` too.