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 X-Spam-Level: X-Spam-Status: No, score=-7.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72933C43331 for ; Thu, 5 Sep 2019 21:42:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8A0602070C for ; Thu, 5 Sep 2019 21:42:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387786AbfIEVmG (ORCPT ); Thu, 5 Sep 2019 17:42:06 -0400 Received: from mga12.intel.com ([192.55.52.136]:49689 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726073AbfIEVmG (ORCPT ); Thu, 5 Sep 2019 17:42:06 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Sep 2019 14:42:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,471,1559545200"; d="gz'50?scan'50,208,50";a="174079236" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by orsmga007.jf.intel.com with ESMTP; 05 Sep 2019 14:42:03 -0700 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1i5zVz-00088s-4b; Fri, 06 Sep 2019 05:42:03 +0800 Date: Fri, 6 Sep 2019 05:41:49 +0800 From: kbuild test robot To: Matthew Wilcox Cc: kbuild-all@01.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, "Matthew Wilcox (Oracle)" , Kirill Shutemov , Song Liu , William Kucharski , Johannes Weiner Subject: Re: [PATCH 3/3] mm: Allow find_get_page to be used for large pages Message-ID: <201909060527.K1gpuVX9%lkp@intel.com> References: <20190905182348.5319-4-willy@infradead.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="slt5bqfu7esvixir" Content-Disposition: inline In-Reply-To: <20190905182348.5319-4-willy@infradead.org> X-Patchwork-Hint: ignore User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org --slt5bqfu7esvixir Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Matthew, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [cannot apply to v5.3-rc7 next-20190904] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox/mm-Add-__page_cache_alloc_order/20190906-034745 config: nds32-defconfig (attached as .config) compiler: nds32le-linux-gcc (GCC) 8.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=8.1.0 make.cross ARCH=nds32 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): mm/filemap.c: In function '__add_to_page_cache_locked': mm/filemap.c:863:8: error: implicit declaration of function 'compound_nr'; did you mean 'compound_order'? [-Werror=implicit-function-declaration] nr = compound_nr(page); ^~~~~~~~~~~ compound_order mm/filemap.c: In function '__find_get_page': mm/filemap.c:1637:9: error: implicit declaration of function 'find_subpage'; did you mean 'find_get_page'? [-Werror=implicit-function-declaration] page = find_subpage(page, offset); ^~~~~~~~~~~~ find_get_page >> mm/filemap.c:1637:7: warning: assignment to 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion] page = find_subpage(page, offset); ^ cc1: some warnings being treated as errors vim +1637 mm/filemap.c 1583 1584 /** 1585 * __find_get_page - Find and get a page cache entry. 1586 * @mapping: The address_space to search. 1587 * @offset: The page cache index. 1588 * @order: The minimum order of the entry to return. 1589 * 1590 * Looks up the page cache entries at @mapping between @offset and 1591 * @offset + 2^@order. If there is a page cache page, it is returned with 1592 * an increased refcount unless it is smaller than @order. 1593 * 1594 * If the slot holds a shadow entry of a previously evicted page, or a 1595 * swap entry from shmem/tmpfs, it is returned. 1596 * 1597 * Return: the found page, a value indicating a conflicting page or %NULL if 1598 * there are no pages in this range. 1599 */ 1600 static struct page *__find_get_page(struct address_space *mapping, 1601 unsigned long offset, unsigned int order) 1602 { 1603 XA_STATE(xas, &mapping->i_pages, offset); 1604 struct page *page; 1605 1606 rcu_read_lock(); 1607 repeat: 1608 xas_reset(&xas); 1609 page = xas_find(&xas, offset | ((1UL << order) - 1)); 1610 if (xas_retry(&xas, page)) 1611 goto repeat; 1612 /* 1613 * A shadow entry of a recently evicted page, or a swap entry from 1614 * shmem/tmpfs. Skip it; keep looking for pages. 1615 */ 1616 if (xa_is_value(page)) 1617 goto repeat; 1618 if (!page) 1619 goto out; 1620 if (compound_order(page) < order) { 1621 page = XA_RETRY_ENTRY; 1622 goto out; 1623 } 1624 1625 if (!page_cache_get_speculative(page)) 1626 goto repeat; 1627 1628 /* 1629 * Has the page moved or been split? 1630 * This is part of the lockless pagecache protocol. See 1631 * include/linux/pagemap.h for details. 1632 */ 1633 if (unlikely(page != xas_reload(&xas))) { 1634 put_page(page); 1635 goto repeat; 1636 } > 1637 page = find_subpage(page, offset); 1638 out: 1639 rcu_read_unlock(); 1640 1641 return page; 1642 } 1643 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --slt5bqfu7esvixir Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 pAAA --slt5bqfu7esvixir--