All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] drbd: rename worker to sender
@ 2023-09-28  9:38 ` Christoph Böhmwalder
  0 siblings, 0 replies; 15+ messages in thread
From: Christoph Böhmwalder @ 2023-09-28  9:38 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Philipp Reisner, Lars Ellenberg, drbd-dev, linux-block,
	linux-kernel, Christoph Hellwig, Joel Colledge,
	Christoph Böhmwalder

Some more refactoring commits from out-of-tree drbd.
Intended for 6.7.

Christoph Böhmwalder (5):
  drbd: Rename per-connection "worker" thread to "sender"
  drbd: Add new per-resource "worker" thread
  drbd: Move connection independent work from "sender" to "worker"
  drbd: Keep connection threads running while connection is up only
  drbd: Get rid of conn_reconfig_start() and conn_reconfig_done()

 drivers/block/drbd/Makefile                   |  2 +-
 drivers/block/drbd/drbd_int.h                 | 12 ++--
 drivers/block/drbd/drbd_main.c                | 21 +++---
 drivers/block/drbd/drbd_nl.c                  | 48 +++-----------
 drivers/block/drbd/drbd_receiver.c            |  2 +-
 drivers/block/drbd/drbd_req.c                 |  7 +-
 .../drbd/{drbd_worker.c => drbd_sender.c}     | 64 ++++++++++++++++---
 drivers/block/drbd/drbd_state.c               | 31 ++-------
 drivers/block/drbd/drbd_state.h               |  1 -
 9 files changed, 95 insertions(+), 93 deletions(-)
 rename drivers/block/drbd/{drbd_worker.c => drbd_sender.c} (97%)


base-commit: aa511ff8218b3fb328181fbaac48aa5e9c5c6d93
-- 
2.41.0


^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [PATCH 1/5] drbd: Rename per-connection "worker" thread to "sender"
@ 2023-10-04 14:22 kernel test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kernel test robot @ 2023-10-04 14:22 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230928093852.676786-2-christoph.boehmwalder@linbit.com>
References: <20230928093852.676786-2-christoph.boehmwalder@linbit.com>
TO: "Christoph Böhmwalder" <christoph.boehmwalder@linbit.com>
TO: Jens Axboe <axboe@kernel.dk>
CC: Philipp Reisner <philipp.reisner@linbit.com>
CC: Lars Ellenberg <lars@linbit.com>
CC: drbd-dev@lists.linbit.com
CC: linux-block@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: Christoph Hellwig <hch@lst.de>
CC: Joel Colledge <joel.colledge@linbit.com>
CC: "Christoph Böhmwalder" <christoph.boehmwalder@linbit.com>

Hi Christoph,

kernel test robot noticed the following build warnings:

[auto build test WARNING on aa511ff8218b3fb328181fbaac48aa5e9c5c6d93]

url:    https://github.com/intel-lab-lkp/linux/commits/Christoph-B-hmwalder/drbd-Rename-per-connection-worker-thread-to-sender/20230928-174054
base:   aa511ff8218b3fb328181fbaac48aa5e9c5c6d93
patch link:    https://lore.kernel.org/r/20230928093852.676786-2-christoph.boehmwalder%40linbit.com
patch subject: [PATCH 1/5] drbd: Rename per-connection "worker" thread to "sender"
:::::: branch date: 6 days ago
:::::: commit date: 6 days ago
config: x86_64-randconfig-161-20231003 (https://download.01.org/0day-ci/archive/20231004/202310042250.iEtNFCQs-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231004/202310042250.iEtNFCQs-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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202310042250.iEtNFCQs-lkp@intel.com/

smatch warnings:
drivers/block/drbd/drbd_sender.c:588 make_resync_request() warn: variable dereferenced before check 'peer_device' (see line 587)

vim +/peer_device +588 drivers/block/drbd/drbd_sender.c

e65f440d474d7d drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-11-05  584  
0d11f3cf279c5a drivers/block/drbd/drbd_worker.c Christoph Böhmwalder 2023-03-30  585  static int make_resync_request(struct drbd_peer_device *const peer_device, int cancel)
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  586  {
0d11f3cf279c5a drivers/block/drbd/drbd_worker.c Christoph Böhmwalder 2023-03-30 @587  	struct drbd_device *const device = peer_device->device;
44a4d551846b8c drivers/block/drbd/drbd_worker.c Lars Ellenberg       2013-11-22 @588  	struct drbd_connection *const connection = peer_device ? peer_device->connection : NULL;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  589  	unsigned long bit;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  590  	sector_t sector;
155bd9d1abd604 drivers/block/drbd/drbd_worker.c Christoph Hellwig    2020-09-25  591  	const sector_t capacity = get_capacity(device->vdisk);
1816a2b47afae8 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-11-11  592  	int max_bio_size;
e65f440d474d7d drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-11-05  593  	int number, rollback_i, size;
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  594  	int align, requeue = 0;
0f0601f4ea2f53 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-08-11  595  	int i = 0;
92d94ae66aebda drivers/block/drbd/drbd_worker.c Philipp Reisner      2016-06-14  596  	int discard_granularity = 0;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  597  
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  598  	if (unlikely(cancel))
99920dc5c5fe52 drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-03-16  599  		return 0;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  600  
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  601  	if (device->rs_total == 0) {
af85e8e83d160f drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-10-07  602  		/* empty resync? */
0d11f3cf279c5a drivers/block/drbd/drbd_worker.c Christoph Böhmwalder 2023-03-30  603  		drbd_resync_finished(peer_device);
99920dc5c5fe52 drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-03-16  604  		return 0;
af85e8e83d160f drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-10-07  605  	}
af85e8e83d160f drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-10-07  606  
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  607  	if (!get_ldev(device)) {
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  608  		/* Since we only need to access device->rsync a
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  609  		   get_ldev_if_state(device,D_FAILED) would be sufficient, but
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  610  		   to continue resync with a broken disk makes no sense at
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  611  		   all */
d01801710265cf drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  612  		drbd_err(device, "Disk broke down during resync!\n");
99920dc5c5fe52 drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-03-16  613  		return 0;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  614  	}
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  615  
9104d31a759fba drivers/block/drbd/drbd_worker.c Lars Ellenberg       2016-06-14  616  	if (connection->agreed_features & DRBD_FF_THIN_RESYNC) {
92d94ae66aebda drivers/block/drbd/drbd_worker.c Philipp Reisner      2016-06-14  617  		rcu_read_lock();
92d94ae66aebda drivers/block/drbd/drbd_worker.c Philipp Reisner      2016-06-14  618  		discard_granularity = rcu_dereference(device->ldev->disk_conf)->rs_discard_granularity;
92d94ae66aebda drivers/block/drbd/drbd_worker.c Philipp Reisner      2016-06-14  619  		rcu_read_unlock();
92d94ae66aebda drivers/block/drbd/drbd_worker.c Philipp Reisner      2016-06-14  620  	}
92d94ae66aebda drivers/block/drbd/drbd_worker.c Philipp Reisner      2016-06-14  621  
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  622  	max_bio_size = queue_max_hw_sectors(device->rq_queue) << 9;
0d11f3cf279c5a drivers/block/drbd/drbd_worker.c Christoph Böhmwalder 2023-03-30  623  	number = drbd_rs_number_requests(peer_device);
0e49d7b014c5d5 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-04-28  624  	if (number <= 0)
0f0601f4ea2f53 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-08-11  625  		goto requeue;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  626  
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  627  	for (i = 0; i < number; i++) {
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  628  		/* Stop generating RS requests when half of the send buffer is filled,
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  629  		 * but notify TCP that we'd like to have more space. */
44a4d551846b8c drivers/block/drbd/drbd_worker.c Lars Ellenberg       2013-11-22  630  		mutex_lock(&connection->data.mutex);
44a4d551846b8c drivers/block/drbd/drbd_worker.c Lars Ellenberg       2013-11-22  631  		if (connection->data.socket) {
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  632  			struct sock *sk = connection->data.socket->sk;
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  633  			int queued = sk->sk_wmem_queued;
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  634  			int sndbuf = sk->sk_sndbuf;
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  635  			if (queued > sndbuf / 2) {
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  636  				requeue = 1;
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  637  				if (sk->sk_socket)
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  638  					set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  639  			}
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  640  		} else
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  641  			requeue = 1;
44a4d551846b8c drivers/block/drbd/drbd_worker.c Lars Ellenberg       2013-11-22  642  		mutex_unlock(&connection->data.mutex);
506afb6248af57 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2014-01-31  643  		if (requeue)
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  644  			goto requeue;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  645  
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  646  next_sector:
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  647  		size = BM_BLOCK_SIZE;
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  648  		bit  = drbd_bm_find_next(device, device->bm_resync_fo);
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  649  
4b0715f09655e7 drivers/block/drbd/drbd_worker.c Lars Ellenberg       2010-12-14  650  		if (bit == DRBD_END_OF_BITMAP) {
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  651  			device->bm_resync_fo = drbd_bm_bits(device);
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  652  			put_ldev(device);
99920dc5c5fe52 drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-03-16  653  			return 0;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  654  		}
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  655  
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  656  		sector = BM_BIT_TO_SECT(bit);
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  657  
0d11f3cf279c5a drivers/block/drbd/drbd_worker.c Christoph Böhmwalder 2023-03-30  658  		if (drbd_try_rs_begin_io(peer_device, sector)) {
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  659  			device->bm_resync_fo = bit;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  660  			goto requeue;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  661  		}
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  662  		device->bm_resync_fo = bit + 1;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  663  
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  664  		if (unlikely(drbd_bm_test_bit(device, bit) == 0)) {
b30ab7913b0a7b drivers/block/drbd/drbd_worker.c Andreas Gruenbacher  2011-07-03  665  			drbd_rs_complete_io(device, sector);
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  666  			goto next_sector;
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  667  		}
b411b3637fa71f drivers/block/drbd/drbd_worker.c Philipp Reisner      2009-09-25  668  

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-10-04 14:23 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-28  9:38 [PATCH 0/5] drbd: rename worker to sender Christoph Böhmwalder
2023-09-28  9:38 ` [Drbd-dev] " Christoph Böhmwalder
2023-09-28  9:38 ` [PATCH 1/5] drbd: Rename per-connection "worker" thread to "sender" Christoph Böhmwalder
2023-09-28  9:38   ` [Drbd-dev] " Christoph Böhmwalder
2023-09-29 12:04   ` kernel test robot
2023-09-29 12:04     ` [Drbd-dev] " kernel test robot
2023-09-28  9:38 ` [PATCH 2/5] drbd: Add new per-resource "worker" thread Christoph Böhmwalder
2023-09-28  9:38   ` [Drbd-dev] " Christoph Böhmwalder
2023-09-28  9:38 ` [PATCH 3/5] drbd: Move connection independent work from "sender" to "worker" Christoph Böhmwalder
2023-09-28  9:38   ` [Drbd-dev] " Christoph Böhmwalder
2023-09-28  9:38 ` [PATCH 4/5] drbd: Keep connection threads running while connection is up only Christoph Böhmwalder
2023-09-28  9:38   ` [Drbd-dev] " Christoph Böhmwalder
2023-09-28  9:38 ` [PATCH 5/5] drbd: Get rid of conn_reconfig_start() and conn_reconfig_done() Christoph Böhmwalder
2023-09-28  9:38   ` [Drbd-dev] " Christoph Böhmwalder
  -- strict thread matches above, loose matches on Subject: below --
2023-10-04 14:22 [PATCH 1/5] drbd: Rename per-connection "worker" thread to "sender" kernel test robot

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.