Hi Mauro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on next-20201201]
[cannot apply to lwn/docs-next tip/sched/core hsi/for-next linus/master 
v5.10-rc6 v5.10-rc5 v5.10-rc4 v5.10-rc6]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/HSI-fix-a-kernel-doc-markup/20201201-210930
base:    0eedceafd3a63fd082743c914853ef4b9247dbe6
config: x86_64-randconfig-s021-20201201 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-170-g3bc348f6-dirty
        # 
https://github.com/0day-ci/linux/commit/7c52ba119279c74e6c7e968e3fa7290bd0f3b837
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Mauro-Carvalho-Chehab/HSI-fix-a-kernel-doc-markup/20201201-210930
        git checkout 7c52ba119279c74e6c7e968e3fa7290bd0f3b837
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> mm/vmscan.c:1614: warning: wrong kernel-doc identifier on line:
    * Isolating page from the lruvec to fill in @dst list by nr_to_scan times.
--
>> drivers/hv/vmbus_drv.c:1536: warning: expecting prototype for 
>> __vmbus_child_driver_register(). Prototype was for __vmbus_driver_register() 
>> instead
--
   drivers/rtc/class.c:326: warning: Function parameter or member 'data' not 
described in 'devm_rtc_unregister_device'
>> drivers/rtc/class.c:326: warning: expecting prototype for 
>> rtc_device_unregister(). Prototype was for devm_rtc_unregister_device() 
>> instead

vim +1614 mm/vmscan.c

b4536f0c829c85 Michal Hocko            2017-01-10  1612  
f4b7e272b5c042 Andrey Ryabinin         2019-03-05  1613  /**
f46cdc387708fb Hugh Dickins            2020-11-24 @1614   * Isolating page from 
the lruvec to fill in @dst list by nr_to_scan times.
f46cdc387708fb Hugh Dickins            2020-11-24  1615   *
f46cdc387708fb Hugh Dickins            2020-11-24  1616   * lruvec->lru_lock is 
heavily contended.  Some of the functions that
^1da177e4c3f41 Linus Torvalds          2005-04-16  1617   * shrink the lists 
perform better by taking out a batch of pages
^1da177e4c3f41 Linus Torvalds          2005-04-16  1618   * and working on them 
outside the LRU lock.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1619   *
^1da177e4c3f41 Linus Torvalds          2005-04-16  1620   * For pagecache 
intensive workloads, this function is the hottest
^1da177e4c3f41 Linus Torvalds          2005-04-16  1621   * spot in the kernel 
(apart from copy_*_user functions).
^1da177e4c3f41 Linus Torvalds          2005-04-16  1622   *
f46cdc387708fb Hugh Dickins            2020-11-24  1623   * Lru_lock must be 
held before calling this function.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1624   *
791b48b642324c Minchan Kim             2017-05-12  1625   * @nr_to_scan:        
The number of eligible pages to look through on the list.
5dc35979e444b5 Konstantin Khlebnikov   2012-05-29  1626   * @lruvec:    The LRU 
vector to pull pages from.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1627   * @dst:       The 
temp list to put pages on to.
f626012db08b9e Hugh Dickins            2012-01-12  1628   * @nr_scanned:        
The number of pages that were scanned.
fe2c2a10666313 Rik van Riel            2012-03-21  1629   * @sc:                
The scan_control struct for this reclaim session
3cb9945179bd04 Konstantin Khlebnikov   2012-05-29  1630   * @lru:       LRU 
list id for isolating
^1da177e4c3f41 Linus Torvalds          2005-04-16  1631   *
^1da177e4c3f41 Linus Torvalds          2005-04-16  1632   * returns how many 
pages were moved onto *@dst.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1633   */
69e05944af39fc Andrew Morton           2006-03-22  1634  static unsigned long 
isolate_lru_pages(unsigned long nr_to_scan,
5dc35979e444b5 Konstantin Khlebnikov   2012-05-29  1635                 struct 
lruvec *lruvec, struct list_head *dst,
fe2c2a10666313 Rik van Riel            2012-03-21  1636                 
unsigned long *nr_scanned, struct scan_control *sc,
a9e7c39fa9fd90 Kirill Tkhai            2019-03-05  1637                 enum 
lru_list lru)
^1da177e4c3f41 Linus Torvalds          2005-04-16  1638  {
75b00af77ed5b5 Hugh Dickins            2012-05-29  1639         struct 
list_head *src = &lruvec->lists[lru];
69e05944af39fc Andrew Morton           2006-03-22  1640         unsigned long 
nr_taken = 0;
599d0c954f91d0 Mel Gorman              2016-07-28  1641         unsigned long 
nr_zone_taken[MAX_NR_ZONES] = { 0 };
7cc30fcfd2a894 Mel Gorman              2016-07-28  1642         unsigned long 
nr_skipped[MAX_NR_ZONES] = { 0, };
3db65812d68883 Johannes Weiner         2017-05-03  1643         unsigned long 
skipped = 0;
791b48b642324c Minchan Kim             2017-05-12  1644         unsigned long 
scan, total_scan, nr_pages;
b2e18757f2c9d1 Mel Gorman              2016-07-28  1645         
LIST_HEAD(pages_skipped);
a9e7c39fa9fd90 Kirill Tkhai            2019-03-05  1646         isolate_mode_t 
mode = (sc->may_unmap ? 0 : ISOLATE_UNMAPPED);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1647  
98879b3b9edc16 Yang Shi                2019-07-11  1648         total_scan = 0;
791b48b642324c Minchan Kim             2017-05-12  1649         scan = 0;
98879b3b9edc16 Yang Shi                2019-07-11  1650         while (scan < 
nr_to_scan && !list_empty(src)) {
5ad333eb66ff1e Andy Whitcroft          2007-07-17  1651                 struct 
page *page;
5ad333eb66ff1e Andy Whitcroft          2007-07-17  1652  
^1da177e4c3f41 Linus Torvalds          2005-04-16  1653                 page = 
lru_to_page(src);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1654                 
prefetchw_prev_lru_page(page, src, flags);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1655  
d8c6546b1aea84 Matthew Wilcox (Oracle  2019-09-23  1656)                
nr_pages = compound_nr(page);
98879b3b9edc16 Yang Shi                2019-07-11  1657                 
total_scan += nr_pages;
98879b3b9edc16 Yang Shi                2019-07-11  1658  
b2e18757f2c9d1 Mel Gorman              2016-07-28  1659                 if 
(page_zonenum(page) > sc->reclaim_idx) {
b2e18757f2c9d1 Mel Gorman              2016-07-28  1660                         
list_move(&page->lru, &pages_skipped);
98879b3b9edc16 Yang Shi                2019-07-11  1661                         
nr_skipped[page_zonenum(page)] += nr_pages;
b2e18757f2c9d1 Mel Gorman              2016-07-28  1662                         
continue;
b2e18757f2c9d1 Mel Gorman              2016-07-28  1663                 }
b2e18757f2c9d1 Mel Gorman              2016-07-28  1664  
791b48b642324c Minchan Kim             2017-05-12  1665                 /*
791b48b642324c Minchan Kim             2017-05-12  1666                  * Do 
not count skipped pages because that makes the function
791b48b642324c Minchan Kim             2017-05-12  1667                  * 
return with no isolated pages if the LRU mostly contains
791b48b642324c Minchan Kim             2017-05-12  1668                  * 
ineligible pages.  This causes the VM to not reclaim any
791b48b642324c Minchan Kim             2017-05-12  1669                  * 
pages, triggering a premature OOM.
98879b3b9edc16 Yang Shi                2019-07-11  1670                  *
98879b3b9edc16 Yang Shi                2019-07-11  1671                  * 
Account all tail pages of THP.  This would not cause
98879b3b9edc16 Yang Shi                2019-07-11  1672                  * 
premature OOM since __isolate_lru_page() returns -EBUSY
98879b3b9edc16 Yang Shi                2019-07-11  1673                  * only 
when the page is being freed somewhere else.
791b48b642324c Minchan Kim             2017-05-12  1674                  */
98879b3b9edc16 Yang Shi                2019-07-11  1675                 scan += 
nr_pages;
0499e1a60797d4 Alex Shi                2020-11-24  1676                 if 
(!__isolate_lru_page_prepare(page, mode)) {
0499e1a60797d4 Alex Shi                2020-11-24  1677                         
/* It is being freed elsewhere */
0499e1a60797d4 Alex Shi                2020-11-24  1678                         
list_move(&page->lru, src);
0499e1a60797d4 Alex Shi                2020-11-24  1679                         
continue;
0499e1a60797d4 Alex Shi                2020-11-24  1680                 }
ce8d4ae1c160d4 Alex Shi                2020-11-24  1681                 /*
ce8d4ae1c160d4 Alex Shi                2020-11-24  1682                  * Be 
careful not to clear PageLRU until after we're
ce8d4ae1c160d4 Alex Shi                2020-11-24  1683                  * sure 
the page is not being freed elsewhere -- the
ce8d4ae1c160d4 Alex Shi                2020-11-24  1684                  * page 
release code relies on it.
ce8d4ae1c160d4 Alex Shi                2020-11-24  1685                  */
0499e1a60797d4 Alex Shi                2020-11-24  1686                 if 
(unlikely(!get_page_unless_zero(page))) {
0499e1a60797d4 Alex Shi                2020-11-24  1687                         
list_move(&page->lru, src);
0499e1a60797d4 Alex Shi                2020-11-24  1688                         
continue;
0499e1a60797d4 Alex Shi                2020-11-24  1689                 }
ce8d4ae1c160d4 Alex Shi                2020-11-24  1690  
ce8d4ae1c160d4 Alex Shi                2020-11-24  1691                 if 
(!TestClearPageLRU(page)) {
0499e1a60797d4 Alex Shi                2020-11-24  1692                         
/* Another thread is already isolating this page */
ce8d4ae1c160d4 Alex Shi                2020-11-24  1693                         
put_page(page);
0499e1a60797d4 Alex Shi                2020-11-24  1694                         
list_move(&page->lru, src);
0499e1a60797d4 Alex Shi                2020-11-24  1695                         
continue;
ce8d4ae1c160d4 Alex Shi                2020-11-24  1696                 }
ce8d4ae1c160d4 Alex Shi                2020-11-24  1697  
599d0c954f91d0 Mel Gorman              2016-07-28  1698                 
nr_taken += nr_pages;
599d0c954f91d0 Mel Gorman              2016-07-28  1699                 
nr_zone_taken[page_zonenum(page)] += nr_pages;
5ad333eb66ff1e Andy Whitcroft          2007-07-17  1700                 
list_move(&page->lru, dst);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1701         }
^1da177e4c3f41 Linus Torvalds          2005-04-16  1702  
b2e18757f2c9d1 Mel Gorman              2016-07-28  1703         /*
b2e18757f2c9d1 Mel Gorman              2016-07-28  1704          * Splice any 
skipped pages to the start of the LRU list. Note that
b2e18757f2c9d1 Mel Gorman              2016-07-28  1705          * this 
disrupts the LRU order when reclaiming for lower zones but
b2e18757f2c9d1 Mel Gorman              2016-07-28  1706          * we cannot 
splice to the tail. If we did then the SWAP_CLUSTER_MAX
b2e18757f2c9d1 Mel Gorman              2016-07-28  1707          * scanning 
would soon rescan the same pages to skip and put the
b2e18757f2c9d1 Mel Gorman              2016-07-28  1708          * system at 
risk of premature OOM.
b2e18757f2c9d1 Mel Gorman              2016-07-28  1709          */
7cc30fcfd2a894 Mel Gorman              2016-07-28  1710         if 
(!list_empty(&pages_skipped)) {
7cc30fcfd2a894 Mel Gorman              2016-07-28  1711                 int zid;
7cc30fcfd2a894 Mel Gorman              2016-07-28  1712  
3db65812d68883 Johannes Weiner         2017-05-03  1713                 
list_splice(&pages_skipped, src);
7cc30fcfd2a894 Mel Gorman              2016-07-28  1714                 for 
(zid = 0; zid < MAX_NR_ZONES; zid++) {
7cc30fcfd2a894 Mel Gorman              2016-07-28  1715                         
if (!nr_skipped[zid])
7cc30fcfd2a894 Mel Gorman              2016-07-28  1716                         
        continue;
7cc30fcfd2a894 Mel Gorman              2016-07-28  1717  
7cc30fcfd2a894 Mel Gorman              2016-07-28  1718                         
__count_zid_vm_events(PGSCAN_SKIP, zid, nr_skipped[zid]);
1265e3a69f1ea9 Michal Hocko            2017-02-22  1719                         
skipped += nr_skipped[zid];
7cc30fcfd2a894 Mel Gorman              2016-07-28  1720                 }
7cc30fcfd2a894 Mel Gorman              2016-07-28  1721         }
791b48b642324c Minchan Kim             2017-05-12  1722         *nr_scanned = 
total_scan;
1265e3a69f1ea9 Michal Hocko            2017-02-22  1723         
trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, nr_to_scan,
791b48b642324c Minchan Kim             2017-05-12  1724                         
            total_scan, skipped, nr_taken, mode, lru);
b4536f0c829c85 Michal Hocko            2017-01-10  1725         
update_lru_sizes(lruvec, lru, nr_zone_taken);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1726         return nr_taken;
^1da177e4c3f41 Linus Torvalds          2005-04-16  1727  }
^1da177e4c3f41 Linus Torvalds          2005-04-16  1728  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to