From: "Mkrtchyan, Tigran" <tigran.mkrtchyan@desy.de>
To: kernel test robot <lkp@intel.com>
Cc: linux-nfs <linux-nfs@vger.kernel.org>,
llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Trond Myklebust <trondmy@kernel.org>,
Anna Schumaker <anna@kernel.org>
Subject: Re: [PATCH] pNFS/flexfiles: don't attempt pnfs on fatal DS errors
Date: Fri, 27 Jun 2025 08:37:50 +0200 (CEST) [thread overview]
Message-ID: <2024057888.423104.1751006270267.JavaMail.zimbra@desy.de> (raw)
In-Reply-To: <202506270701.wUk38xC4-lkp@intel.com>
[-- Attachment #1: Type: text/plain, Size: 10394 bytes --]
Thank you, robot!
----- Original Message -----
> From: "kernel test robot" <lkp@intel.com>
> To: "Tigran Mkrtchyan" <tigran.mkrtchyan@desy.de>, "linux-nfs" <linux-nfs@vger.kernel.org>
> Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev, "Trond Myklebust" <trondmy@kernel.org>, "Anna Schumaker"
> <anna@kernel.org>, "root max-exfl020" <root@max-exfl020.desy.de>, "Tigran Mkrtchyan" <tigran.mkrtchyan@desy.de>
> Sent: Friday, 27 June, 2025 01:42:33
> Subject: Re: [PATCH] pNFS/flexfiles: don't attempt pnfs on fatal DS errors
> Hi Tigran,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on trondmy-nfs/linux-next]
> [also build test WARNING on linus/master v6.16-rc3 next-20250626]
> [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#_base_tree_information]
>
> url:
> https://github.com/intel-lab-lkp/linux/commits/Tigran-Mkrtchyan/pNFS-flexfiles-don-t-attempt-pnfs-on-fatal-DS-errors/20250626-171336
> base: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git linux-next
> patch link:
> https://lore.kernel.org/r/20250626091202.130567-1-tigran.mkrtchyan%40desy.de
> patch subject: [PATCH] pNFS/flexfiles: don't attempt pnfs on fatal DS errors
> config: i386-buildonly-randconfig-005-20250627
> (https://download.01.org/0day-ci/archive/20250627/202506270701.wUk38xC4-lkp@intel.com/config)
> compiler: clang version 20.1.7 (https://github.com/llvm/llvm-project
> 6146a88f60492b520a36f8f8f3231e15f3cc6082)
> reproduce (this is a W=1 build):
> (https://download.01.org/0day-ci/archive/20250627/202506270701.wUk38xC4-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/202506270701.wUk38xC4-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:56:9: warning: variable 'ret' set but
> not used [-Wunused-but-set-variable]
> 56 | int i, ret = -ENOMEM;
> | ^
>>> fs/nfs/flexfilelayout/flexfilelayoutdev.c:379:6: warning: variable 'status' is
>>> used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
> 379 | if (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror))
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:421:15: note: uninitialized use occurs
> here
> 421 | ds = ERR_PTR(status);
> | ^~~~~~
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:379:2: note: remove the 'if' if its
> condition is always false
> 379 | if (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror))
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 380 | goto noconnect;
> | ~~~~~~~~~~~~~~
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:377:12: note: initialize the variable
> 'status' to silence this warning
> 377 | int status;
> | ^
> | = 0
> 2 warnings generated.
>
>
> vim +379 fs/nfs/flexfilelayout/flexfilelayoutdev.c
>
> cefa587a40bb53 Trond Myklebust 2019-02-28 350
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 351 /**
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 352 *
> nfs4_ff_layout_prepare_ds - prepare a DS connection for an RPC call
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 353 * @lseg: the layout
> segment we're operating on
> 2444ff277a686d Trond Myklebust 2019-02-14 354 * @mirror: layout mirror
> describing the DS to use
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 355 * @fail_return: return
> layout on connect failure?
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 356 *
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 357 * Try to prepare a DS
> connection to accept an RPC call. This involves
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 358 * selecting a mirror to
> use and connecting the client to it if it's not
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 359 * already connected.
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 360 *
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 361 * Since we only need a
> single functioning mirror to satisfy a read, we don't
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 362 * want to return the
> layout if there is one. For writes though, any down
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 363 * mirror should result in
> a LAYOUTRETURN. @fail_return is how we distinguish
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 364 * between the two cases.
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 365 *
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 366 * Returns a pointer to a
> connected DS object on success or NULL on failure.
> 95e2b7e95d43c5 Jeff Layton 2016-05-17 367 */
> d67ae825a59d63 Tom Haynes 2014-12-11 368 struct nfs4_pnfs_ds *
> 2444ff277a686d Trond Myklebust 2019-02-14 369
> nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg,
> 2444ff277a686d Trond Myklebust 2019-02-14 370 struct
> nfs4_ff_layout_mirror *mirror,
> d67ae825a59d63 Tom Haynes 2014-12-11 371 bool fail_return)
> d67ae825a59d63 Tom Haynes 2014-12-11 372 {
> 6468b866bac7de root max-exfl020 2025-06-26 373 struct nfs4_pnfs_ds *ds =
> ERR_PTR(-EAGAIN);
> d67ae825a59d63 Tom Haynes 2014-12-11 374 struct inode *ino =
> lseg->pls_layout->plh_inode;
> d67ae825a59d63 Tom Haynes 2014-12-11 375 struct nfs_server *s =
> NFS_SERVER(ino);
> d67ae825a59d63 Tom Haynes 2014-12-11 376 unsigned int max_payload;
> a33e4b036d4612 Weston Andros Adamson 2017-03-09 377 int status;
> d67ae825a59d63 Tom Haynes 2014-12-11 378
> cefa587a40bb53 Trond Myklebust 2019-02-28 @379 if
> (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror))
> 0a156dd58274b0 Trond Myklebust 2019-02-27 380 goto noconnect;
> d67ae825a59d63 Tom Haynes 2014-12-11 381
> d67ae825a59d63 Tom Haynes 2014-12-11 382 ds =
> mirror->mirror_ds->ds;
> a2915fa06227b0 Baptiste Lepers 2021-09-06 383 if
> (READ_ONCE(ds->ds_clp))
> a2915fa06227b0 Baptiste Lepers 2021-09-06 384 goto out;
> d67ae825a59d63 Tom Haynes 2014-12-11 385 /* matching smp_wmb() in
> _nfs4_pnfs_v3/4_ds_connect */
> d67ae825a59d63 Tom Haynes 2014-12-11 386 smp_rmb();
> d67ae825a59d63 Tom Haynes 2014-12-11 387
> d67ae825a59d63 Tom Haynes 2014-12-11 388 /* FIXME: For now we
> assume the server sent only one version of NFS
> d67ae825a59d63 Tom Haynes 2014-12-11 389 * to use for the DS.
> d67ae825a59d63 Tom Haynes 2014-12-11 390 */
> 2444ff277a686d Trond Myklebust 2019-02-14 391 status =
> nfs4_pnfs_ds_connect(s, ds, &mirror->mirror_ds->id_node,
> 2444ff277a686d Trond Myklebust 2019-02-14 392 dataserver_timeo,
> dataserver_retrans,
> d67ae825a59d63 Tom Haynes 2014-12-11 393
> mirror->mirror_ds->ds_versions[0].version,
> 7d38de3ffa75f9 Anna Schumaker 2016-11-17 394
> mirror->mirror_ds->ds_versions[0].minor_version);
> d67ae825a59d63 Tom Haynes 2014-12-11 395
> d67ae825a59d63 Tom Haynes 2014-12-11 396 /* connect success, check
> rsize/wsize limit */
> 260f32adb88dad Trond Myklebust 2017-04-20 397 if (!status) {
> d488b9d01fbc2f Trond Myklebust 2024-09-05 398 /*
> d488b9d01fbc2f Trond Myklebust 2024-09-05 399 * ds_clp is put in
> destroy_ds().
> d488b9d01fbc2f Trond Myklebust 2024-09-05 400 * keep ds_clp even if
> DS is local, so that if local IO cannot
> d488b9d01fbc2f Trond Myklebust 2024-09-05 401 * proceed somehow, we
> can fall back to NFS whenever we want.
> d488b9d01fbc2f Trond Myklebust 2024-09-05 402 */
> 1ff4716f420b5a Mike Snitzer 2025-05-13 403
> nfs_local_probe_async(ds->ds_clp);
> d67ae825a59d63 Tom Haynes 2014-12-11 404 max_payload =
> d67ae825a59d63 Tom Haynes 2014-12-11 405
> nfs_block_size(rpc_max_payload(ds->ds_clp->cl_rpcclient),
> d67ae825a59d63 Tom Haynes 2014-12-11 406 NULL);
> d67ae825a59d63 Tom Haynes 2014-12-11 407 if
> (mirror->mirror_ds->ds_versions[0].rsize > max_payload)
> d67ae825a59d63 Tom Haynes 2014-12-11 408
> mirror->mirror_ds->ds_versions[0].rsize = max_payload;
> d67ae825a59d63 Tom Haynes 2014-12-11 409 if
> (mirror->mirror_ds->ds_versions[0].wsize > max_payload)
> d67ae825a59d63 Tom Haynes 2014-12-11 410
> mirror->mirror_ds->ds_versions[0].wsize = max_payload;
> 3dc147359e3dcd Trond Myklebust 2016-08-29 411 goto out;
> 3dc147359e3dcd Trond Myklebust 2016-08-29 412 }
> 0a156dd58274b0 Trond Myklebust 2019-02-27 413 noconnect:
> d67ae825a59d63 Tom Haynes 2014-12-11 414
> ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout),
> d67ae825a59d63 Tom Haynes 2014-12-11 415 mirror,
> lseg->pls_range.offset,
> d67ae825a59d63 Tom Haynes 2014-12-11 416
> lseg->pls_range.length, NFS4ERR_NXIO,
> d67ae825a59d63 Tom Haynes 2014-12-11 417 OP_ILLEGAL,
> GFP_NOIO);
> f0922a6c0cdb92 Trond Myklebust 2019-02-10 418
> ff_layout_send_layouterror(lseg);
> 094069f1d96f69 Jeff Layton 2016-05-17 419 if (fail_return ||
> !ff_layout_has_available_ds(lseg))
> d67ae825a59d63 Tom Haynes 2014-12-11 420
> pnfs_error_mark_layout_for_return(ino, lseg);
> 6468b866bac7de root max-exfl020 2025-06-26 421 ds = ERR_PTR(status);
> d67ae825a59d63 Tom Haynes 2014-12-11 422 out:
> d67ae825a59d63 Tom Haynes 2014-12-11 423 return ds;
> d67ae825a59d63 Tom Haynes 2014-12-11 424 }
> d67ae825a59d63 Tom Haynes 2014-12-11 425
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 2826 bytes --]
prev parent reply other threads:[~2025-06-27 6:38 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-26 9:12 [PATCH] pNFS/flexfiles: don't attempt pnfs on fatal DS errors Tigran Mkrtchyan
2025-06-26 23:42 ` kernel test robot
2025-06-27 6:37 ` Mkrtchyan, Tigran [this message]
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=2024057888.423104.1751006270267.JavaMail.zimbra@desy.de \
--to=tigran.mkrtchyan@desy.de \
--cc=anna@kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=trondmy@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox