All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: John Groves <John@groves.net>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [RFC PATCH 14/19] famfs_fuse: GET_DAXDEV message and daxdev_table
Date: Mon, 21 Apr 2025 11:27:08 +0800	[thread overview]
Message-ID: <202504211138.d1nAFiqR-lkp@intel.com> (raw)
In-Reply-To: <20250421013346.32530-15-john@groves.net>

Hi John,

[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:

[auto build test WARNING on 38fec10eb60d687e30c8c6b5420d86e8149f7557]

url:    https://github.com/intel-lab-lkp/linux/commits/John-Groves/dev_dax_iomap-Move-dax_pgoff_to_phys-from-device-c-to-bus-c/20250421-094020
base:   38fec10eb60d687e30c8c6b5420d86e8149f7557
patch link:    https://lore.kernel.org/r/20250421013346.32530-15-john%40groves.net
patch subject: [RFC PATCH 14/19] famfs_fuse: GET_DAXDEV message and daxdev_table
config: sh-randconfig-002-20250421 (https://download.01.org/0day-ci/archive/20250421/202504211138.d1nAFiqR-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250421/202504211138.d1nAFiqR-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504211138.d1nAFiqR-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from include/asm-generic/bug.h:22:0,
                    from arch/sh/include/asm/bug.h:112,
                    from include/linux/bug.h:5,
                    from include/linux/thread_info.h:13,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/sh/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:79,
                    from include/linux/spinlock.h:56,
                    from include/linux/wait.h:9,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from fs/fuse/famfs.c:12:
   fs/fuse/famfs.c: In function 'famfs_fuse_get_daxdev':
   fs/fuse/famfs.c:142:4: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
       (u64)fc->dax_devlist, index, (u64)daxdev);
       ^
   include/linux/printk.h:135:18: note: in definition of macro 'no_printk'
      _printk(fmt, ##__VA_ARGS__);  \
                     ^~~~~~~~~~~
   fs/fuse/famfs.c:141:2: note: in expansion of macro 'pr_debug'
     pr_debug("%s: dax_devlist %llx daxdev[%lld]=%llx\n", __func__,
     ^~~~~~~~
   fs/fuse/famfs.c:142:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
       (u64)fc->dax_devlist, index, (u64)daxdev);
                                    ^
   include/linux/printk.h:135:18: note: in definition of macro 'no_printk'
      _printk(fmt, ##__VA_ARGS__);  \
                     ^~~~~~~~~~~
   fs/fuse/famfs.c:141:2: note: in expansion of macro 'pr_debug'
     pr_debug("%s: dax_devlist %llx daxdev[%lld]=%llx\n", __func__,
     ^~~~~~~~
   fs/fuse/famfs.c:163:17: error: implicit declaration of function 'dax_dev_get'; did you mean 'devres_get'? [-Werror=implicit-function-declaration]
     daxdev->devp = dax_dev_get(daxdev->devno);
                    ^~~~~~~~~~~
                    devres_get
>> fs/fuse/famfs.c:163:15: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     daxdev->devp = dax_dev_get(daxdev->devno);
                  ^
   In file included from include/asm-generic/bug.h:22:0,
                    from arch/sh/include/asm/bug.h:112,
                    from include/linux/bug.h:5,
                    from include/linux/thread_info.h:13,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/sh/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:79,
                    from include/linux/spinlock.h:56,
                    from include/linux/wait.h:9,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from fs/fuse/famfs.c:12:
   fs/fuse/famfs.c:179:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
       __func__, index, daxdev->name, (u64)daxdev);
                                      ^
   include/linux/printk.h:135:18: note: in definition of macro 'no_printk'
      _printk(fmt, ##__VA_ARGS__);  \
                     ^~~~~~~~~~~
   fs/fuse/famfs.c:178:2: note: in expansion of macro 'pr_debug'
     pr_debug("%s: daxdev(%lld, %s)=%llx opened and marked valid\n",
     ^~~~~~~~
   fs/fuse/famfs.c: In function 'famfs_update_daxdev_table':
   fs/fuse/famfs.c:218:5: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
        (u64)local_devlist);
        ^
   include/linux/printk.h:135:18: note: in definition of macro 'no_printk'
      _printk(fmt, ##__VA_ARGS__);  \
                     ^~~~~~~~~~~
   fs/fuse/famfs.c:217:3: note: in expansion of macro 'pr_debug'
      pr_debug("%s: allocate dax_devlist=%llx\n", __func__,
      ^~~~~~~~
   fs/fuse/famfs.c:235:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
         __func__, (u64)local_devlist,
                   ^
   include/linux/printk.h:135:18: note: in definition of macro 'no_printk'
      _printk(fmt, ##__VA_ARGS__);  \
                     ^~~~~~~~~~~
   fs/fuse/famfs.c:234:4: note: in expansion of macro 'pr_debug'
       pr_debug("%s: published new dax_devlist %llx / %llx\n",
       ^~~~~~~~
   fs/fuse/famfs.c:236:6: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
         (u64)local_devlist->devlist);
         ^
   include/linux/printk.h:135:18: note: in definition of macro 'no_printk'
      _printk(fmt, ##__VA_ARGS__);  \
                     ^~~~~~~~~~~
   fs/fuse/famfs.c:234:4: note: in expansion of macro 'pr_debug'
       pr_debug("%s: published new dax_devlist %llx / %llx\n",
       ^~~~~~~~
   In file included from include/asm-generic/bug.h:22:0,
                    from arch/sh/include/asm/bug.h:112,
                    from include/linux/bug.h:5,
                    from include/linux/thread_info.h:13,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/sh/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:79,
                    from include/linux/spinlock.h:56,
                    from include/linux/wait.h:9,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from fs/fuse/famfs.c:12:
   fs/fuse/famfs.c:251:8: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
           (u64)(&fc->dax_devlist->devlist[i]));
           ^
   include/linux/printk.h:473:19: note: in definition of macro 'printk_index_wrap'
      _p_func(_fmt, ##__VA_ARGS__);    \
                      ^~~~~~~~~~~
   include/linux/printk.h:564:2: note: in expansion of macro 'printk'
     printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
     ^~~~~~
   fs/fuse/famfs.c:249:5: note: in expansion of macro 'pr_notice'
        pr_notice("%s: daxdev=%d (%llx) invalid...getting\n",
        ^~~~~~~~~
   fs/fuse/famfs.c: In function 'famfs_fuse_meta_alloc':
   include/linux/kern_levels.h:5:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:473:11: note: in definition of macro 'printk_index_wrap'
      _p_func(_fmt, ##__VA_ARGS__);    \
              ^~~~
   include/linux/printk.h:544:2: note: in expansion of macro 'printk'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
     ^~~~~~
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:544:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
   fs/fuse/famfs.c:340:3: note: in expansion of macro 'pr_err'
      pr_err("%s:%d: fmap_buf underflow offset/size %ld/%ld\n",
      ^~~~~~
   fs/fuse/famfs.c:340:51: note: format string is defined here
      pr_err("%s:%d: fmap_buf underflow offset/size %ld/%ld\n",
                                                    ~~^
                                                    %d
   In file included from include/asm-generic/bug.h:22:0,
                    from arch/sh/include/asm/bug.h:112,

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for DEV_DAX_IOMAP
   Depends on [n]: DEV_DAX [=n] && DAX [=n]
   Selected by [y]:
   - FUSE_FAMFS_DAX [=y] && FUSE_FS [=y]


vim +163 fs/fuse/famfs.c

    84	
    85	/**
    86	 * famfs_fuse_get_daxdev()
    87	 *
    88	 * Send a GET_DAXDEV message to the fuse server to retrieve info on a
    89	 * dax device.
    90	 *
    91	 * @fm    - fuse_mount
    92	 * @index - the index of the dax device; daxdevs are referred to by index
    93	 *          in fmaps, and the server resolves the index to a particular daxdev
    94	 *
    95	 * Returns: 0=success
    96	 *          -errno=failure
    97	 */
    98	static int
    99	famfs_fuse_get_daxdev(struct fuse_mount *fm, const u64 index)
   100	{
   101		struct fuse_daxdev_out daxdev_out = { 0 };
   102		struct fuse_conn *fc = fm->fc;
   103		struct famfs_daxdev *daxdev;
   104		int err = 0;
   105	
   106		FUSE_ARGS(args);
   107	
   108		pr_notice("%s: index=%lld\n", __func__, index);
   109	
   110		/* Store the daxdev in our table */
   111		if (index >= fc->dax_devlist->nslots) {
   112			pr_err("%s: index(%lld) > nslots(%d)\n",
   113			       __func__, index, fc->dax_devlist->nslots);
   114			err = -EINVAL;
   115			goto out;
   116		}
   117	
   118		args.opcode = FUSE_GET_DAXDEV;
   119		args.nodeid = index;
   120	
   121		args.in_numargs = 0;
   122	
   123		args.out_numargs = 1;
   124		args.out_args[0].size = sizeof(daxdev_out);
   125		args.out_args[0].value = &daxdev_out;
   126	
   127		/* Send GET_DAXDEV command */
   128		err = fuse_simple_request(fm, &args);
   129		if (err) {
   130			pr_err("%s: err=%d from fuse_simple_request()\n",
   131			       __func__, err);
   132			/* Error will be that the payload is smaller than FMAP_BUFSIZE,
   133			 * which is the max we can handle. Empty payload handled below.
   134			 */
   135			goto out;
   136		}
   137	
   138		down_write(&fc->famfs_devlist_sem);
   139	
   140		daxdev = &fc->dax_devlist->devlist[index];
   141		pr_debug("%s: dax_devlist %llx daxdev[%lld]=%llx\n", __func__,
   142			 (u64)fc->dax_devlist, index, (u64)daxdev);
   143	
   144		/* Abort if daxdev is now valid */
   145		if (daxdev->valid) {
   146			up_write(&fc->famfs_devlist_sem);
   147			/* We already have a valid entry at this index */
   148			err = -EALREADY;
   149			goto out;
   150		}
   151	
   152		/* This verifies that the dev is valid and can be opened and gets the devno */
   153		pr_debug("%s: famfs_verify_daxdev(%s)\n", __func__, daxdev_out.name);
   154		err = famfs_verify_daxdev(daxdev_out.name, &daxdev->devno);
   155		if (err) {
   156			up_write(&fc->famfs_devlist_sem);
   157			pr_err("%s: err=%d from famfs_verify_daxdev()\n", __func__, err);
   158			goto out;
   159		}
   160	
   161		/* This will fail if it's not a dax device */
   162		pr_debug("%s: dax_dev_get(%x)\n", __func__, daxdev->devno);
 > 163		daxdev->devp = dax_dev_get(daxdev->devno);
   164		if (!daxdev->devp) {
   165			up_write(&fc->famfs_devlist_sem);
   166			pr_warn("%s: device %s not found or not dax\n",
   167				__func__, daxdev_out.name);
   168			err = -ENODEV;
   169			goto out;
   170		}
   171	
   172		daxdev->name = kstrdup(daxdev_out.name, GFP_KERNEL);
   173		wmb(); /* all daxdev fields must be visible before marking it valid */
   174		daxdev->valid = 1;
   175	
   176		up_write(&fc->famfs_devlist_sem);
   177	
   178		pr_debug("%s: daxdev(%lld, %s)=%llx opened and marked valid\n",
   179			 __func__, index, daxdev->name, (u64)daxdev);
   180	
   181	out:
   182		return err;
   183	}
   184	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2025-04-21  3:28 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-21  1:33 [RFC PATCH 00/19] famfs: port into fuse John Groves
2025-04-21  1:33 ` [RFC PATCH 01/19] dev_dax_iomap: Move dax_pgoff_to_phys() from device.c to bus.c John Groves
2025-04-21  1:33 ` [RFC PATCH 02/19] dev_dax_iomap: Add fs_dax_get() func to prepare dax for fs-dax usage John Groves
2025-04-21  1:33 ` [RFC PATCH 03/19] dev_dax_iomap: Save the kva from memremap John Groves
2025-04-21  1:33 ` [RFC PATCH 04/19] dev_dax_iomap: Add dax_operations for use by fs-dax on devdax John Groves
2025-04-21  1:33 ` [RFC PATCH 05/19] dev_dax_iomap: export dax_dev_get() John Groves
2025-04-21  1:33 ` [RFC PATCH 06/19] dev_dax_iomap: (ignore!) Drop poisoned page warning in fs/dax.c John Groves
2025-04-21  1:33 ` [RFC PATCH 07/19] famfs_fuse: magic.h: Add famfs magic numbers John Groves
2025-04-21  1:33 ` [RFC PATCH 08/19] famfs_fuse: Kconfig John Groves
2025-04-21  1:33 ` [RFC PATCH 09/19] famfs_fuse: Update macro s/FUSE_IS_DAX/FUSE_IS_VIRTIO_DAX/ John Groves
2025-04-21  1:33 ` [RFC PATCH 10/19] famfs_fuse: Basic fuse kernel ABI enablement for famfs John Groves
2025-04-23  1:36   ` Joanne Koong
2025-04-23 20:23     ` John Groves
2025-04-21  1:33 ` [RFC PATCH 11/19] famfs_fuse: Basic famfs mount opts John Groves
2025-04-23  1:51   ` Joanne Koong
2025-04-23 20:19     ` John Groves
2025-04-21  1:33 ` [RFC PATCH 12/19] famfs_fuse: Plumb the GET_FMAP message/response John Groves
2025-04-21  3:27   ` kernel test robot
2025-05-02  5:48   ` Joanne Koong
2025-05-02 20:35     ` Darrick J. Wong
2025-05-12 16:28     ` John Groves
2025-05-22 15:45       ` Amir Goldstein
2025-05-23  0:30         ` John Groves
2025-04-21  1:33 ` [RFC PATCH 13/19] famfs_fuse: Create files with famfs fmaps John Groves
2025-04-21 21:57   ` Darrick J. Wong
2025-04-21 22:31     ` John Groves
2025-04-24 13:43   ` John Groves
2025-04-24 14:38     ` Darrick J. Wong
2025-04-28  1:48       ` John Groves
2025-04-28 19:00         ` Darrick J. Wong
2025-05-06 16:56           ` Miklos Szeredi
2025-05-08 15:56             ` Darrick J. Wong
2025-05-13  9:14               ` Miklos Szeredi
2025-05-15  2:06                 ` Darrick J. Wong
2025-05-16 10:06                   ` Miklos Szeredi
2025-05-16 23:17                     ` Darrick J. Wong
2025-05-12 19:51             ` John Groves
2025-05-13  4:03               ` Darrick J. Wong
2025-04-21  1:33 ` [RFC PATCH 14/19] famfs_fuse: GET_DAXDEV message and daxdev_table John Groves
2025-04-21  3:27   ` kernel test robot [this message]
2025-04-21  3:43   ` Randy Dunlap
2025-04-21 20:57     ` John Groves
2025-04-21  1:33 ` [RFC PATCH 15/19] famfs_fuse: Plumb dax iomap and fuse read/write/mmap John Groves
2025-04-21  1:33 ` [RFC PATCH 16/19] famfs_fuse: Add holder_operations for dax notify_failure() John Groves
2025-04-21  3:27   ` kernel test robot
2025-04-21  1:33 ` [RFC PATCH 17/19] famfs_fuse: Add famfs metadata documentation John Groves
2025-04-21  3:51   ` Randy Dunlap
2025-04-21 21:00     ` John Groves
2025-04-21  1:33 ` [RFC PATCH 18/19] famfs_fuse: Add documentation John Groves
2025-04-22  2:10   ` Randy Dunlap
2025-04-28  1:50     ` John Groves
2025-04-21  1:33 ` [RFC PATCH 19/19] famfs_fuse: (ignore) debug cruft John Groves
2025-04-21 18:27 ` [RFC PATCH 00/19] famfs: port into fuse Darrick J. Wong
2025-04-21 22:00   ` John Groves
2025-04-22  1:25     ` Darrick J. Wong
2025-04-22 11:50       ` John Groves
2025-04-30 14:42 ` Alireza Sanaee
2025-05-01  2:13   ` John Groves
2025-05-21 22:30 ` John Groves
2025-05-21 23:11   ` Darrick J. Wong
2025-05-22 15:55   ` Amir Goldstein

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202504211138.d1nAFiqR-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=John@groves.net \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.