diff mbox

[1/3] btt: remove btt_rw_page()

Message ID 20170728165604.10455-2-ross.zwisler@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ross Zwisler July 28, 2017, 4:56 p.m. UTC
The rw_page() interface doesn't provide a clear performance benefit for the
BTT and has had a nonzero maintenance burden, so remove it.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Suggested-by: Dan Williams <dan.j.williams@intel.com>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Cc: Matthew Wilcox <willy@infradead.org>
---
 drivers/nvdimm/btt.c | 15 ---------------
 1 file changed, 15 deletions(-)

Comments

kernel test robot Aug. 3, 2017, 4:15 p.m. UTC | #1
Hi Ross,

[auto build test WARNING on linux-nvdimm/libnvdimm-for-next]
[also build test WARNING on v4.13-rc3]
[cannot apply to next-20170803]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Ross-Zwisler/btt-remove-btt_rw_page/20170729-165642
base:   https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next
config: i386-randconfig-h0-08032208 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   In file included from drivers/nvdimm/btt.c:27:0:
   drivers/nvdimm/btt.c: In function 'btt_make_request':
>> drivers/nvdimm/nd.h:407:2: warning: 'start' may be used uninitialized in this function [-Wmaybe-uninitialized]
     generic_end_io_acct(bio_data_dir(bio), &disk->part0, start);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1202:16: note: 'start' was declared here
     unsigned long start;
                   ^~~~~

vim +/start +407 drivers/nvdimm/nd.h

cd03412a5 Dan Williams 2016-03-11  340  
3d88002e4 Dan Williams 2015-05-31  341  struct nd_region *to_nd_region(struct device *dev);
3d88002e4 Dan Williams 2015-05-31  342  int nd_region_to_nstype(struct nd_region *nd_region);
3d88002e4 Dan Williams 2015-05-31  343  int nd_region_register_namespaces(struct nd_region *nd_region, int *err);
c12c48ce8 Dan Williams 2017-06-04  344  u64 nd_region_interleave_set_cookie(struct nd_region *nd_region,
c12c48ce8 Dan Williams 2017-06-04  345  		struct nd_namespace_index *nsindex);
86ef58a4e Dan Williams 2017-02-28  346  u64 nd_region_interleave_set_altcookie(struct nd_region *nd_region);
3d88002e4 Dan Williams 2015-05-31  347  void nvdimm_bus_lock(struct device *dev);
3d88002e4 Dan Williams 2015-05-31  348  void nvdimm_bus_unlock(struct device *dev);
3d88002e4 Dan Williams 2015-05-31  349  bool is_nvdimm_bus_locked(struct device *dev);
581388209 Dan Williams 2015-06-23  350  int nvdimm_revalidate_disk(struct gendisk *disk);
bf9bccc14 Dan Williams 2015-06-17  351  void nvdimm_drvdata_release(struct kref *kref);
bf9bccc14 Dan Williams 2015-06-17  352  void put_ndd(struct nvdimm_drvdata *ndd);
4a826c83d Dan Williams 2015-06-09  353  int nd_label_reserve_dpa(struct nvdimm_drvdata *ndd);
4a826c83d Dan Williams 2015-06-09  354  void nvdimm_free_dpa(struct nvdimm_drvdata *ndd, struct resource *res);
4a826c83d Dan Williams 2015-06-09  355  struct resource *nvdimm_allocate_dpa(struct nvdimm_drvdata *ndd,
4a826c83d Dan Williams 2015-06-09  356  		struct nd_label_id *label_id, resource_size_t start,
4a826c83d Dan Williams 2015-06-09  357  		resource_size_t n);
8c2f7e865 Dan Williams 2015-06-25  358  resource_size_t nvdimm_namespace_capacity(struct nd_namespace_common *ndns);
8c2f7e865 Dan Williams 2015-06-25  359  struct nd_namespace_common *nvdimm_namespace_common_probe(struct device *dev);
5212e11fd Vishal Verma 2015-06-25  360  int nvdimm_namespace_attach_btt(struct nd_namespace_common *ndns);
298f2bc5d Dan Williams 2016-03-15  361  int nvdimm_namespace_detach_btt(struct nd_btt *nd_btt);
5212e11fd Vishal Verma 2015-06-25  362  const char *nvdimm_namespace_disk_name(struct nd_namespace_common *ndns,
5212e11fd Vishal Verma 2015-06-25  363  		char *name);
f979b13c3 Dan Williams 2017-06-04  364  unsigned int pmem_sector_size(struct nd_namespace_common *ndns);
a39018029 Dan Williams 2016-04-07  365  void nvdimm_badblocks_populate(struct nd_region *nd_region,
a39018029 Dan Williams 2016-04-07  366  		struct badblocks *bb, const struct resource *res);
200c79da8 Dan Williams 2016-03-22  367  #if IS_ENABLED(CONFIG_ND_CLAIM)
ac515c084 Dan Williams 2016-03-22  368  struct vmem_altmap *nvdimm_setup_pfn(struct nd_pfn *nd_pfn,
ac515c084 Dan Williams 2016-03-22  369  		struct resource *res, struct vmem_altmap *altmap);
200c79da8 Dan Williams 2016-03-22  370  int devm_nsio_enable(struct device *dev, struct nd_namespace_io *nsio);
200c79da8 Dan Williams 2016-03-22  371  void devm_nsio_disable(struct device *dev, struct nd_namespace_io *nsio);
200c79da8 Dan Williams 2016-03-22  372  #else
ac515c084 Dan Williams 2016-03-22  373  static inline struct vmem_altmap *nvdimm_setup_pfn(struct nd_pfn *nd_pfn,
ac515c084 Dan Williams 2016-03-22  374  		struct resource *res, struct vmem_altmap *altmap)
ac515c084 Dan Williams 2016-03-22  375  {
ac515c084 Dan Williams 2016-03-22  376  	return ERR_PTR(-ENXIO);
ac515c084 Dan Williams 2016-03-22  377  }
200c79da8 Dan Williams 2016-03-22  378  static inline int devm_nsio_enable(struct device *dev,
200c79da8 Dan Williams 2016-03-22  379  		struct nd_namespace_io *nsio)
200c79da8 Dan Williams 2016-03-22  380  {
200c79da8 Dan Williams 2016-03-22  381  	return -ENXIO;
200c79da8 Dan Williams 2016-03-22  382  }
200c79da8 Dan Williams 2016-03-22  383  static inline void devm_nsio_disable(struct device *dev,
200c79da8 Dan Williams 2016-03-22  384  		struct nd_namespace_io *nsio)
200c79da8 Dan Williams 2016-03-22  385  {
200c79da8 Dan Williams 2016-03-22  386  }
200c79da8 Dan Williams 2016-03-22  387  #endif
047fc8a1f Ross Zwisler 2015-06-25  388  int nd_blk_region_init(struct nd_region *nd_region);
e5ae3b252 Dan Williams 2016-06-07  389  int nd_region_activate(struct nd_region *nd_region);
f0dc089ce Dan Williams 2015-05-16  390  void __nd_iostat_start(struct bio *bio, unsigned long *start);
f0dc089ce Dan Williams 2015-05-16  391  static inline bool nd_iostat_start(struct bio *bio, unsigned long *start)
f0dc089ce Dan Williams 2015-05-16  392  {
f0dc089ce Dan Williams 2015-05-16  393  	struct gendisk *disk = bio->bi_bdev->bd_disk;
f0dc089ce Dan Williams 2015-05-16  394  
f0dc089ce Dan Williams 2015-05-16  395  	if (!blk_queue_io_stat(disk->queue))
f0dc089ce Dan Williams 2015-05-16  396  		return false;
f0dc089ce Dan Williams 2015-05-16  397  
8d7c22ac0 Toshi Kani   2016-10-19  398  	*start = jiffies;
8d7c22ac0 Toshi Kani   2016-10-19  399  	generic_start_io_acct(bio_data_dir(bio),
8d7c22ac0 Toshi Kani   2016-10-19  400  			      bio_sectors(bio), &disk->part0);
f0dc089ce Dan Williams 2015-05-16  401  	return true;
f0dc089ce Dan Williams 2015-05-16  402  }
8d7c22ac0 Toshi Kani   2016-10-19  403  static inline void nd_iostat_end(struct bio *bio, unsigned long start)
8d7c22ac0 Toshi Kani   2016-10-19  404  {
8d7c22ac0 Toshi Kani   2016-10-19  405  	struct gendisk *disk = bio->bi_bdev->bd_disk;
8d7c22ac0 Toshi Kani   2016-10-19  406  
8d7c22ac0 Toshi Kani   2016-10-19 @407  	generic_end_io_acct(bio_data_dir(bio), &disk->part0, start);

:::::: The code at line 407 was first introduced by commit
:::::: 8d7c22ac0c036978a072b7e13c607b5402c474e0 libnvdimm: use generic iostat interfaces

:::::: TO: Toshi Kani <toshi.kani@hpe.com>
:::::: CC: Dan Williams <dan.j.williams@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/nvdimm/btt.c b/drivers/nvdimm/btt.c
index 14323fa..e10d330 100644
--- a/drivers/nvdimm/btt.c
+++ b/drivers/nvdimm/btt.c
@@ -1236,20 +1236,6 @@  static blk_qc_t btt_make_request(struct request_queue *q, struct bio *bio)
 	return BLK_QC_T_NONE;
 }
 
-static int btt_rw_page(struct block_device *bdev, sector_t sector,
-		struct page *page, bool is_write)
-{
-	struct btt *btt = bdev->bd_disk->private_data;
-	int rc;
-
-	rc = btt_do_bvec(btt, NULL, page, PAGE_SIZE, 0, is_write, sector);
-	if (rc == 0)
-		page_endio(page, is_write, 0);
-
-	return rc;
-}
-
-
 static int btt_getgeo(struct block_device *bd, struct hd_geometry *geo)
 {
 	/* some standard values */
@@ -1261,7 +1247,6 @@  static int btt_getgeo(struct block_device *bd, struct hd_geometry *geo)
 
 static const struct block_device_operations btt_fops = {
 	.owner =		THIS_MODULE,
-	.rw_page =		btt_rw_page,
 	.getgeo =		btt_getgeo,
 	.revalidate_disk =	nvdimm_revalidate_disk,
 };