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
next prev parent 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.