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 0C4C1EB64D8 for ; Wed, 14 Jun 2023 15:20:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8CBDE8E0001; Wed, 14 Jun 2023 11:20:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 87BD36B007B; Wed, 14 Jun 2023 11:20:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 71C368E0001; Wed, 14 Jun 2023 11:20:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 5F7256B0078 for ; Wed, 14 Jun 2023 11:20:00 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2CB441C7EC3 for ; Wed, 14 Jun 2023 15:20:00 +0000 (UTC) X-FDA: 80901713760.26.6467B12 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf27.hostedemail.com (Postfix) with ESMTP id 0E1ED40006 for ; Wed, 14 Jun 2023 15:19:57 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Y69HuGaS; spf=pass (imf27.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686755998; a=rsa-sha256; cv=none; b=n1T9tK8R99NjHxA3hVP7TmISjBhAUNZuSE4X4Nda+/RTLAbw5q6/0ezOfn67Vr7Z4Yq++m KvbMAcAritYKGc7dk1FCZAJ1M5NKqU5lsNS5iAfStFAkpZ4j59j9PdB2/urAK+HeCbwWFX Lahqd0URp5NHEhnWWV328pmgGywKHEs= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Y69HuGaS; spf=pass (imf27.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686755998; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sEIN0Smv09A3v1esQkaZzNJnVZHbG2zMXf43EwatZAA=; b=tmOVIVIRE+uoJ6hjiFmlwqoKH9sq7K5wWdpalP8JJclT2dWw4j19I8A6nTO7k5SkaAthcT SMHgOrqkkpQeNUBjsw2fjASOc8pBpiXw+5djsB4VA8ckpaaOajKyP0pI5EIASBuuRlXqvW eAD19ukY2ZPO4NYKXWLP9QwjaltkQK0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686755997; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=sEIN0Smv09A3v1esQkaZzNJnVZHbG2zMXf43EwatZAA=; b=Y69HuGaSO2bJf2seV4al+i7U6+duJ3q9/Q6NJZ/osTThqV8OiFZG5jInU42FwjslEUd0C5 TgK+anIAI+WNoMgvwuHmrG0K62B6x3lNCIV6olxE8bjzeFgT9xpR8X0oDDYdm9w2bndS7U UgpciHEVZgSJWUmEOxJdLG5rlspFKSE= Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-581-lfiDDVEiOq2dD2_d9I3z6g-1; Wed, 14 Jun 2023 11:19:51 -0400 X-MC-Unique: lfiDDVEiOq2dD2_d9I3z6g-1 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-62de56f4c2cso8455786d6.0 for ; Wed, 14 Jun 2023 08:19:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686755991; x=1689347991; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=sEIN0Smv09A3v1esQkaZzNJnVZHbG2zMXf43EwatZAA=; b=OrOa1HmrxpxgCcpRfTxwwPoPz39DnQ5oQR+n1MJ/78PaTpVjV/iz8CREShfLH8P/1u sxY9X5XF3hFRdipp9Iwz/LDiyNNFeMpRpHflXb25A2qkrhZP5/89IIPYbPkaWm/ZQ+7d ktJ3/qFZ9OmHzNpFB86yO8fMEsbQwd3K5XEiKget8wdTxIhC61i9wC8nXulrRRblG6rp qD980XClcdh4MslZUy8xHZqY1JreW+0a7Z57uYkhzLuK0Q0yWCrqy+ZFM9p2Gst9ezpl zmrECUbYA7qeBECouBIl8kparCwLPiya/XfCIzY5Ks2i8HjPhk97oJpeweVAlaE70oki ChWg== X-Gm-Message-State: AC+VfDzpiAtXjrwuIaXPFJ++Uy8PPFTjZAqly7PDPyJRurwh41y+0eHZ 2GMWezouENiO1XaKt30ovowD79aTSH8ifzwYo6bkYQlZx2BJuULk6iZO9VPwZbc3vi+isuXHfHo ISRRinxWa0qs= X-Received: by 2002:a05:6214:29ec:b0:62d:fc81:44fc with SMTP id jv12-20020a05621429ec00b0062dfc8144fcmr4517515qvb.6.1686755991029; Wed, 14 Jun 2023 08:19:51 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4jdzOkVYLOu8PyDNBjwnGS4XsXSVi0ytxraAq+ZkAUaL/Uoq2BaHTMOZAIfuflUgf/a9iU0Q== X-Received: by 2002:a05:6214:29ec:b0:62d:fc81:44fc with SMTP id jv12-20020a05621429ec00b0062dfc8144fcmr4517487qvb.6.1686755990729; Wed, 14 Jun 2023 08:19:50 -0700 (PDT) Received: from x1n (cpe5c7695f3aee0-cm5c7695f3aede.cpe.net.cable.rogers.com. [99.254.144.39]) by smtp.gmail.com with ESMTPSA id y13-20020a0cec0d000000b006215d0bdf37sm4768906qvo.16.2023.06.14.08.19.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Jun 2023 08:19:50 -0700 (PDT) Date: Wed, 14 Jun 2023 11:19:48 -0400 From: Peter Xu To: Matthew Wilcox Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrea Arcangeli , John Hubbard , Mike Rapoport , David Hildenbrand , Vlastimil Babka , "Kirill A . Shutemov" , Andrew Morton , Mike Kravetz , James Houghton , Hugh Dickins Subject: Re: [PATCH 6/7] mm/gup: Accelerate thp gup even for "pages != NULL" Message-ID: References: <20230613215346.1022773-1-peterx@redhat.com> <20230613215346.1022773-7-peterx@redhat.com> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0E1ED40006 X-Stat-Signature: g75ux46exxys3guwdka3ec6waqjikzje X-Rspam-User: X-HE-Tag: 1686755997-553707 X-HE-Meta: U2FsdGVkX18R12MbTERhw+YZ4/6qNZZ6N8QI1mXtS45f/T46Su1jyreCTZwGuaAWgiyRSofY7OOGn/iuLlSpaLaj2Be8dKwN0Jh+R2z7gtmSe39N2eQoJY/OyLg7OFBgqAdor/ipX6qwQtVlYYkd8yK0mAtf91UQbrRc7Ui9WmjJFQgq4oirvrPvKk8dk1yxoff0Vp/CcNNQeTAH2KtpDOOy8O353mg1OOcrg9IeM71futvMCg1eKs6/XBPlpGGIqSUn9CdU1Ehal6L8mboSFVD5xnVPFuYCgVkEr5Zk9iauUOzM5yNUwTMvesnuJkno3cGD4ezNwBGwj1WVQjo05JqxnAeXCpV9OqmvuUlomfexhjgOoBF58gXrkzBO/1gNpa/1OFOPCZKN6d708YbNWYdRo3j+35ydCNRt8FZtp0xoasI3Frt8Ovb3ZIZBh68ndKlk9FbEMyfgAI0kxsvOnLHLVE/JuYzOeNYXU0U3sTVup5fqcfb2SgTR6361AWta24wKKGiZkRHo44t+M0oCxFV6pSlJEdpGpaSlJY0To0jBTh+ZfO8Pfzk/8WhbcE8eOqu45ZCjzbqU4YpkbfmxJ1GpKmQwTFnl5VhUjRJgoLeZ1z3b8kzwksx6j87yCbPtaRTxSiM/05mRV7PILqi1vsJXbLZV7Se86XY2E5/fg8y9+yuO8pmD7Y9RgtB6Be4Pozb2VA3CNGMrHAHEwwnJ7fCorggsFAa4QmfxGDggOE9sb97DlZDag4x+vgo/0nsKBOScv43+d5m+g/pPlLZCSiLfQ/qSittze3smGnD1I0WwCXyGsxtgzhOQxsxe6WWDpWFXHcajhrhJXzExiAblfFxmNM4IeAcbpp7j/mcByTJOiTj1+YDEfkG5PKwtKrKwnwKcR1VlpZuXtur6GAMi2E6Oo17qxGROlGAOEILh9CtJEfdLbTudIygoP07BtTeMVXReh/H55WB+UWxUZjz Bjosq2ia TJDOt1YDTdYuY3xw0QxRX/e/wXUoPcTX+b8wI4A5JKnytinyR4uFTYo9hAvWb/d6+nd+5n/kHbCnM4Oz3ayayy4MCMe/+mpwXp7IYzfvZ73apPDwfpUDpRtWl7JkZ4fEVhMZOMIJkHyzrvUmqP8q4rBO4R+p2G9g0KwFbW22R05ylo0ijsHxZQrWwmE5Cr5Ps4QV9EicZrD7tzYovwNPx/qaftvZezxwynKhU/KT8nS1E3XPnnW47W+IzZ0x4AioyPHzdzvEmdWiN8XXz1lLdTuNK2Fjw1SSOH2Su5UkBf0yjtG4a+w8r24dsVHuvA4BCcKol6n/pw5/RWBGO+Woz9W4OIAbJlvPTZIlmPOYMjiiXmZ4fjYBLekye7+1rsX/bBLOlTN9FrR4xafFbAQx6Ibd9Zw== 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: On Wed, Jun 14, 2023 at 03:58:34PM +0100, Matthew Wilcox wrote: > On Tue, Jun 13, 2023 at 05:53:45PM -0400, Peter Xu wrote: > > + if (page_increm > 1) > > + WARN_ON_ONCE( > > + try_grab_folio(compound_head(page), > > You don't need to call compound_head() here; try_grab_folio() works > on tail pages just fine. I did it with caution because two things I'm not sure: either is_pci_p2pdma_page() or is_longterm_pinnable_page() inside, both calls is_zone_device_page() on the page*. But I just noticed try_grab_folio() is also used in gup_pte_range() where the thp can be pte mapped, so I assume we at least need that to handle tail page well. Do we perhaps need the compound_head() in try_grab_folio() as a separate patch? Or maybe I was wrong on is_zone_device_page()? > > > + page_increm - 1, > > + foll_flags) == NULL); > > + > > + for (j = 0; j < page_increm; j++) { > > + subpage = nth_page(page, j); > > + pages[i+j] = subpage; > > + flush_anon_page(vma, subpage, start + j * PAGE_SIZE); > > + flush_dcache_page(subpage); > > You're better off calling flush_dcache_folio() right at the end. Will do. Thanks, -- Peter Xu