Re: [PATCH v5 16/16] scripts: kernel-doc: validate kernel-doc markup with the actual names

From: kernel test robot
Date: Tue Dec 01 2020 - 10:28:04 EST


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 <lkp@xxxxxxxxx>

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-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip