From: kernel test robot <lkp@intel.com>
To: Satya Tangirala <satyat@google.com>,
linux-block@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
Jens Axboe <axboe@kernel.dk>, Eric Biggers <ebiggers@google.com>,
Satya Tangirala <satyat@google.com>
Subject: Re: [PATCH v2 6/8] block: keyslot-manager: introduce blk_ksm_restrict_dus_to_queue_limits()
Date: Fri, 26 Mar 2021 11:50:16 +0800 [thread overview]
Message-ID: <202103261145.gAR94bP0-lkp@intel.com> (raw)
In-Reply-To: <20210325212609.492188-7-satyat@google.com>
[-- Attachment #1: Type: text/plain, Size: 4631 bytes --]
Hi Satya,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on block/for-next]
[also build test WARNING on dm/for-next mkp-scsi/for-next scsi/for-next linux/master linus/master v5.12-rc4 next-20210325]
[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/Satya-Tangirala/ensure-bios-aren-t-split-in-middle-of-crypto-data-unit/20210326-053016
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
config: arm-randconfig-r033-20210325 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f490a5969bd52c8a48586f134ff8f02ccbb295b3)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/0day-ci/linux/commit/9b8b677bfdba70695b8d01ee318ef552fcc0392e
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Satya-Tangirala/ensure-bios-aren-t-split-in-middle-of-crypto-data-unit/20210326-053016
git checkout 9b8b677bfdba70695b8d01ee318ef552fcc0392e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> block/keyslot-manager.c:457:6: warning: no previous prototype for function 'blk_ksm_restrict_dus_to_queue_limits' [-Wmissing-prototypes]
void blk_ksm_restrict_dus_to_queue_limits(struct blk_keyslot_manager *ksm,
^
block/keyslot-manager.c:457:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void blk_ksm_restrict_dus_to_queue_limits(struct blk_keyslot_manager *ksm,
^
static
1 warning generated.
vim +/blk_ksm_restrict_dus_to_queue_limits +457 block/keyslot-manager.c
452
453 /*
454 * Restrict the supported data unit sizes of the ksm based on the request queue
455 * limits
456 */
> 457 void blk_ksm_restrict_dus_to_queue_limits(struct blk_keyslot_manager *ksm,
458 struct queue_limits *limits)
459 {
460 /* The largest possible data unit size we support is PAGE_SIZE. */
461 unsigned long largest_dus = PAGE_SIZE;
462 unsigned int dus_allowed_mask;
463 int i;
464 bool dus_was_restricted = false;
465
466 /*
467 * If the queue doesn't support SG gaps, a bio might get split in the
468 * middle of a data unit. So require SG gap support for inline
469 * encryption for any data unit size larger than a single sector.
470 */
471 if (limits->virt_boundary_mask)
472 largest_dus = SECTOR_SIZE;
473
474 /*
475 * If the queue has chunk_sectors, the bio might be split within a data
476 * unit if the data unit size is larger than a single sector. So only
477 * support a single sector data unit size in this case.
478 */
479 if (limits->chunk_sectors)
480 largest_dus = SECTOR_SIZE;
481
482 /*
483 * Any bio sent to the queue must be allowed to contain at least a
484 * data_unit_size worth of data. Since each segment in a bio contains
485 * at least a SECTOR_SIZE worth of data, it's sufficient that
486 * queue_max_segments(q) * SECTOR_SIZE >= data_unit_size. So disable
487 * all data_unit_sizes not satisfiable.
488 */
489 largest_dus = min(largest_dus,
490 1UL << (fls(limits->max_segments) - 1 + SECTOR_SHIFT));
491
492 /* Clear all unsupported data unit sizes. */
493 dus_allowed_mask = (largest_dus << 1) - 1;
494 for (i = 0; i < ARRAY_SIZE(ksm->crypto_modes_supported); i++) {
495 if (ksm->crypto_modes_supported[i] & (~dus_allowed_mask))
496 dus_was_restricted = true;
497 ksm->crypto_modes_supported[i] &= dus_allowed_mask;
498 }
499
500 if (dus_was_restricted) {
501 pr_warn("Disallowed use of encryption data unit sizes above %lu bytes with inline encryption hardware because of device request queue limits.\n",
502 largest_dus);
503 }
504 }
505
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27905 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2 6/8] block: keyslot-manager: introduce blk_ksm_restrict_dus_to_queue_limits()
Date: Fri, 26 Mar 2021 11:50:16 +0800 [thread overview]
Message-ID: <202103261145.gAR94bP0-lkp@intel.com> (raw)
In-Reply-To: <20210325212609.492188-7-satyat@google.com>
[-- Attachment #1: Type: text/plain, Size: 4734 bytes --]
Hi Satya,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on block/for-next]
[also build test WARNING on dm/for-next mkp-scsi/for-next scsi/for-next linux/master linus/master v5.12-rc4 next-20210325]
[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/Satya-Tangirala/ensure-bios-aren-t-split-in-middle-of-crypto-data-unit/20210326-053016
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
config: arm-randconfig-r033-20210325 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f490a5969bd52c8a48586f134ff8f02ccbb295b3)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/0day-ci/linux/commit/9b8b677bfdba70695b8d01ee318ef552fcc0392e
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Satya-Tangirala/ensure-bios-aren-t-split-in-middle-of-crypto-data-unit/20210326-053016
git checkout 9b8b677bfdba70695b8d01ee318ef552fcc0392e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> block/keyslot-manager.c:457:6: warning: no previous prototype for function 'blk_ksm_restrict_dus_to_queue_limits' [-Wmissing-prototypes]
void blk_ksm_restrict_dus_to_queue_limits(struct blk_keyslot_manager *ksm,
^
block/keyslot-manager.c:457:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void blk_ksm_restrict_dus_to_queue_limits(struct blk_keyslot_manager *ksm,
^
static
1 warning generated.
vim +/blk_ksm_restrict_dus_to_queue_limits +457 block/keyslot-manager.c
452
453 /*
454 * Restrict the supported data unit sizes of the ksm based on the request queue
455 * limits
456 */
> 457 void blk_ksm_restrict_dus_to_queue_limits(struct blk_keyslot_manager *ksm,
458 struct queue_limits *limits)
459 {
460 /* The largest possible data unit size we support is PAGE_SIZE. */
461 unsigned long largest_dus = PAGE_SIZE;
462 unsigned int dus_allowed_mask;
463 int i;
464 bool dus_was_restricted = false;
465
466 /*
467 * If the queue doesn't support SG gaps, a bio might get split in the
468 * middle of a data unit. So require SG gap support for inline
469 * encryption for any data unit size larger than a single sector.
470 */
471 if (limits->virt_boundary_mask)
472 largest_dus = SECTOR_SIZE;
473
474 /*
475 * If the queue has chunk_sectors, the bio might be split within a data
476 * unit if the data unit size is larger than a single sector. So only
477 * support a single sector data unit size in this case.
478 */
479 if (limits->chunk_sectors)
480 largest_dus = SECTOR_SIZE;
481
482 /*
483 * Any bio sent to the queue must be allowed to contain at least a
484 * data_unit_size worth of data. Since each segment in a bio contains
485 * at least a SECTOR_SIZE worth of data, it's sufficient that
486 * queue_max_segments(q) * SECTOR_SIZE >= data_unit_size. So disable
487 * all data_unit_sizes not satisfiable.
488 */
489 largest_dus = min(largest_dus,
490 1UL << (fls(limits->max_segments) - 1 + SECTOR_SHIFT));
491
492 /* Clear all unsupported data unit sizes. */
493 dus_allowed_mask = (largest_dus << 1) - 1;
494 for (i = 0; i < ARRAY_SIZE(ksm->crypto_modes_supported); i++) {
495 if (ksm->crypto_modes_supported[i] & (~dus_allowed_mask))
496 dus_was_restricted = true;
497 ksm->crypto_modes_supported[i] &= dus_allowed_mask;
498 }
499
500 if (dus_was_restricted) {
501 pr_warn("Disallowed use of encryption data unit sizes above %lu bytes with inline encryption hardware because of device request queue limits.\n",
502 largest_dus);
503 }
504 }
505
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 27905 bytes --]
next prev parent reply other threads:[~2021-03-26 3:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-25 21:26 [PATCH v2 0/8] ensure bios aren't split in middle of crypto data unit Satya Tangirala
2021-03-25 21:26 ` [PATCH v2 1/8] block: introduce blk_ksm_is_empty() Satya Tangirala
2021-03-30 18:04 ` Christoph Hellwig
2021-04-15 19:21 ` Eric Biggers
2021-03-25 21:26 ` [PATCH v2 2/8] dm,mmc,ufshcd: handle error from blk_ksm_register() Satya Tangirala
2021-04-15 19:27 ` Eric Biggers
2021-03-25 21:26 ` [PATCH v2 3/8] block: blk-crypto: introduce blk_crypto_bio_sectors_alignment() Satya Tangirala
2021-04-15 19:33 ` Eric Biggers
2021-03-25 21:26 ` [PATCH v2 4/8] block: introduce bio_required_sector_alignment() Satya Tangirala
2021-03-30 18:06 ` Christoph Hellwig
2021-04-15 19:37 ` Eric Biggers
2021-04-15 19:44 ` Eric Biggers
2021-03-25 21:26 ` [PATCH v2 5/8] block: respect bio_required_sector_alignment() in blk-crypto-fallback Satya Tangirala
2021-04-15 19:45 ` Eric Biggers
2021-03-25 21:26 ` [PATCH v2 6/8] block: keyslot-manager: introduce blk_ksm_restrict_dus_to_queue_limits() Satya Tangirala
2021-03-26 3:50 ` kernel test robot [this message]
2021-03-26 3:50 ` kernel test robot
2021-03-26 6:28 ` kernel test robot
2021-03-26 6:28 ` kernel test robot
2021-04-15 19:55 ` Eric Biggers
2021-03-25 21:26 ` [PATCH v2 7/8] blk-merge: Ensure bios aren't split in middle of a crypto data unit Satya Tangirala
2021-03-25 21:26 ` [PATCH v2 8/8] block: add WARN() in bio_split() for sector alignment Satya Tangirala
2021-03-26 3:47 ` Bart Van Assche
2021-04-15 20:00 ` Eric Biggers
2021-03-25 21:51 ` [PATCH v2 0/8] ensure bios aren't split in middle of crypto data unit Bart Van Assche
2021-03-26 1:39 ` Satya Tangirala
2021-03-26 3:46 ` Bart Van Assche
2021-03-26 7:56 ` Satya Tangirala
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=202103261145.gAR94bP0-lkp@intel.com \
--to=lkp@intel.com \
--cc=axboe@kernel.dk \
--cc=clang-built-linux@googlegroups.com \
--cc=ebiggers@google.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=satyat@google.com \
/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.