All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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.