From patchwork Fri Aug 12 18:38:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kirill A . Shutemov" X-Patchwork-Id: 9277605 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 51CFE60CDC for ; Fri, 12 Aug 2016 18:39:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 473FF28ACF for ; Fri, 12 Aug 2016 18:39:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3BA4928AD7; Fri, 12 Aug 2016 18:39:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D530428ACF for ; Fri, 12 Aug 2016 18:39:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752976AbcHLSjR (ORCPT ); Fri, 12 Aug 2016 14:39:17 -0400 Received: from mga14.intel.com ([192.55.52.115]:44703 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752929AbcHLSjK (ORCPT ); Fri, 12 Aug 2016 14:39:10 -0400 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP; 12 Aug 2016 11:38:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,512,1464678000"; d="scan'208";a="1024497200" Received: from black.fi.intel.com ([10.237.72.93]) by fmsmga001.fm.intel.com with ESMTP; 12 Aug 2016 11:38:44 -0700 Received: by black.fi.intel.com (Postfix, from userid 1000) id 6D05E427; Fri, 12 Aug 2016 21:38:34 +0300 (EEST) From: "Kirill A. Shutemov" To: "Theodore Ts'o" , Andreas Dilger , Jan Kara , Andrew Morton Cc: Alexander Viro , Hugh Dickins , Andrea Arcangeli , Dave Hansen , Vlastimil Babka , Matthew Wilcox , Ross Zwisler , linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, "Kirill A. Shutemov" Subject: [PATCHv2 22/41] thp: do not threat slab pages as huge in hpage_{nr_pages, size, mask} Date: Fri, 12 Aug 2016 21:38:05 +0300 Message-Id: <1471027104-115213-23-git-send-email-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1471027104-115213-1-git-send-email-kirill.shutemov@linux.intel.com> References: <1471027104-115213-1-git-send-email-kirill.shutemov@linux.intel.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Slab pages can be compound, but we shouldn't threat them as THP for pupose of hpage_* helpers, otherwise it would lead to confusing results. For instance, ext4 uses slab pages for journal pages and we shouldn't confuse them with THPs. The easiest way is to exclude them in hpage_* helpers. Signed-off-by: Kirill A. Shutemov --- include/linux/huge_mm.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h index de2789b4402c..5c5466ba37df 100644 --- a/include/linux/huge_mm.h +++ b/include/linux/huge_mm.h @@ -133,21 +133,21 @@ static inline spinlock_t *pmd_trans_huge_lock(pmd_t *pmd, } static inline int hpage_nr_pages(struct page *page) { - if (unlikely(PageTransHuge(page))) + if (unlikely(!PageSlab(page) && PageTransHuge(page))) return HPAGE_PMD_NR; return 1; } static inline int hpage_size(struct page *page) { - if (unlikely(PageTransHuge(page))) + if (unlikely(!PageSlab(page) && PageTransHuge(page))) return HPAGE_PMD_SIZE; return PAGE_SIZE; } static inline unsigned long hpage_mask(struct page *page) { - if (unlikely(PageTransHuge(page))) + if (unlikely(!PageSlab(page) && PageTransHuge(page))) return HPAGE_PMD_MASK; return PAGE_MASK; }