Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp894009pxb; Wed, 27 Oct 2021 14:37:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3rcMFvukSp0eKIVpUTbVKeTFdoNysOyZdPa4K9s32ordUx4coF493RmNYaxBG4xmFWgy7 X-Received: by 2002:a17:906:b00c:: with SMTP id v12mr93577ejy.523.1635370672423; Wed, 27 Oct 2021 14:37:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635370672; cv=none; d=google.com; s=arc-20160816; b=pnT5W8GFTmcmhmSR/Ei68uqg3uF4VX1VbmY5QNAa/FlG3EowrYeD9GnHMGk1xcXcKx oHfeB4zEMIY1cnOsvm9Lp+VEdTYAlZw0tnnQvJQIlV3alphv6I163jNkLmbz5mPPUnrB xon8BXrefTabHrwu8F9lOzRQ1/UPP5u/FdkMwJ6cQeZ7EFV1encIYMBcGiaItHp9os7b Vrk7DK/I3OusNHV62HowVcG5wHlkEltmKP5+iCcRqFURlKstm19iKKIu/a2tSy4Ywwr8 AAo9CbPk+AyEqXcyTcQ7011U7Ay8ZHlW2RpXhDR6diIuo3pSVwiiWCZr4P1djqPv3ZlM wmGQ== 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=0eLs1vKCdD9fRUqUY5RcYH11tOWYmTj/mhP+WyCuSws=; b=WrP3wfw46jcpd5EefyXrhGtXdBxTJvAbOorTwMh/4QW3QkRRUMgFWJnszNmj3QMUtp wDfiPDX7psCvmrv/+65TOlXx/nyUUtNr6Hmh+4iEewTA6cCqthpcpU6GuBh0shyAh+lI UoKQIC9AKs7Nu1LyOhkyBFT+KFCFxo6LWBCVooXj3br8+ALxusqoYxCKNb6X7nzKTSDz lcFMKGjgnihFiLAv2oj8WghzRQ9kHvkbDC0vhbTMek8M4LZgYk6gul/xyV9d+xG1YLt5 rtc2JFu5uWOgr2BEOtgbX2StGuuTW5OKXudt69tX3s6Y7KStw4fZr/23ZwTjVlXDGXH0 OFoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=bFn4mtu1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b21si1280040edw.290.2021.10.27.14.37.28; Wed, 27 Oct 2021 14:37:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=bFn4mtu1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232600AbhJ0Ves (ORCPT + 99 others); Wed, 27 Oct 2021 17:34:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233046AbhJ0Vem (ORCPT ); Wed, 27 Oct 2021 17:34:42 -0400 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E707C061767; Wed, 27 Oct 2021 14:32:16 -0700 (PDT) Received: by mail-ed1-x532.google.com with SMTP id w12so15826637edd.11; Wed, 27 Oct 2021 14:32:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0eLs1vKCdD9fRUqUY5RcYH11tOWYmTj/mhP+WyCuSws=; b=bFn4mtu1GV4VL42GOaedj6+RTGWTSaRL10vA5lMTwhC9f/TSuaIgj4vt/kiSeQ0OG6 fZ7xUcbnD42u3FPpAML/7jbHVZRVs5vYJ4dG/COcZsYuLhtJLwRuOT6RklhqOYU3xSwC LF6rdT+paQcIxhvWydHu3rpYUCbUgg+WGJWKx+9zyL4N1RD8BRrrT6omtw9lbGPHT0ui fAZvCDSwqDILwokQeYTIqPvq6xNGHPoF4xkS4cHJnY6kWyqnENKL2pVuAR6Xj/tiOdya 8vGdaBx8VAVmMLjuT1/uh+3Vqb0cy73hZ2kpPm/es7QPo7SaiToP7Y3/HVXL1I9gMeXx tIsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0eLs1vKCdD9fRUqUY5RcYH11tOWYmTj/mhP+WyCuSws=; b=sieJ5aUag8Ltn68ftY5R5M/YIAFSpnCQxlLX5ZaWi5RIEc84cP7Rl/Mxr9lflazA4V rRM8t79dtYghQ/EWmv7996elBKnvDk/PeC/Fhb3y2KFFVmof8fLL0wE5qn3n3Q0Kn8S4 VOZRMslwoXKYgVJW8sS7WhKMO6SVUPQRvHND14BRv/YOZcXe7UbspAwhLt1WmSek+xaP SkA++3MBxqS8uiLR/3Lddgy770Sv6wjeEArwkkKuGeKcIAI++nKuwdfabXgKl9Q7VESL tl1HirLzkAWcFG9QDnTd1xLYh1IX9RQWcAcwj6ZslAEYu8IfMWRmRK4fo6G/jwPNe3p2 gWtQ== X-Gm-Message-State: AOAM5330Po68zSzvVCQy8lDtyR8PDxJE4I0T8TsEwqJ//5kc4MSIMBnS BQbWAVUtinbfzbM3V76SHyHbkD1YwiLw6WjRIcSbf5SMq3s= X-Received: by 2002:a50:8d52:: with SMTP id t18mr489479edt.71.1635370334982; Wed, 27 Oct 2021 14:32:14 -0700 (PDT) MIME-Version: 1.0 References: <20211027195221.3825-1-shy828301@gmail.com> In-Reply-To: From: Yang Shi Date: Wed, 27 Oct 2021 14:32:02 -0700 Message-ID: Subject: Re: [PATCH] mm: khugepaged: skip huge page collapse for special files To: Matthew Wilcox Cc: Hugh Dickins , Hao Sun , "Kirill A. Shutemov" , Song Liu , Andrea Righi , Andrew Morton , Linux MM , Linux Kernel Mailing List , stable Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 27, 2021 at 1:50 PM Matthew Wilcox wrote: > > On Wed, Oct 27, 2021 at 12:52:21PM -0700, Yang Shi wrote: > > +++ b/mm/khugepaged.c > > @@ -445,22 +445,25 @@ static bool hugepage_vma_check(struct vm_area_struct *vma, > > if (!transhuge_vma_enabled(vma, vm_flags)) > > return false; > > > > - /* Enabled via shmem mount options or sysfs settings. */ > > - if (shmem_file(vma->vm_file) && shmem_huge_enabled(vma)) { > > + if (vma->vm_file) > > return IS_ALIGNED((vma->vm_start >> PAGE_SHIFT) - vma->vm_pgoff, > > HPAGE_PMD_NR); > > - } > > + > > + /* Enabled via shmem mount options or sysfs settings. */ > > + if (shmem_file(vma->vm_file)) > > + return shmem_huge_enabled(vma); > > This doesn't make sense to me. if vma->vm_file, we already returned, > so this is dead code. Yes, Song mentioned the same thing. Fixed by an incremental patch. > > > /* THP settings require madvise. */ > > if (!(vm_flags & VM_HUGEPAGE) && !khugepaged_always()) > > return false; > > > > - /* Read-only file mappings need to be aligned for THP to work. */ > > + /* Only regular file is valid */ > > if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && vma->vm_file && > > - !inode_is_open_for_write(vma->vm_file->f_inode) && > > (vm_flags & VM_EXEC)) { > > - return IS_ALIGNED((vma->vm_start >> PAGE_SHIFT) - vma->vm_pgoff, > > - HPAGE_PMD_NR); > > + struct inode *inode = vma->vm_file->f_inode; > > + > > + return !inode_is_open_for_write(inode) && > > + S_ISREG(inode->i_mode); > > } > > > > if (!vma->anon_vma || vma->vm_ops) > > -- > > 2.26.2 > >