oe-kbuild-all.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v2] btrfs: remove v0 extent handling
       [not found] <6258b0bf5e41e52ca0e163e34650d186363628c6.1691740017.git.wqu@suse.com>
@ 2023-08-11 10:32 ` kernel test robot
  2023-08-11 10:42   ` Qu Wenruo
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2023-08-11 10:32 UTC (permalink / raw)
  To: Qu Wenruo, linux-btrfs; +Cc: llvm, oe-kbuild-all

Hi Qu,

kernel test robot noticed the following build warnings:

[auto build test WARNING on kdave/for-next]
[also build test WARNING on linus/master v6.5-rc5 next-20230809]
[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/Qu-Wenruo/btrfs-remove-v0-extent-handling/20230811-154905
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
patch link:    https://lore.kernel.org/r/6258b0bf5e41e52ca0e163e34650d186363628c6.1691740017.git.wqu%40suse.com
patch subject: [PATCH v2] btrfs: remove v0 extent handling
config: powerpc-randconfig-r034-20230811 (https://download.01.org/0day-ci/archive/20230811/202308111815.mJwoiury-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230811/202308111815.mJwoiury-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/202308111815.mJwoiury-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> fs/btrfs/print-tree.c:100:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
     100 |                           "unexpected extent item size, has %u expect >= %lu",
         |                                                                          ~~~
         |                                                                          %u
     101 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   1 warning generated.
--
>> fs/btrfs/extent-tree.c:172:18: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
     172 |                         "unexpected extent item size, has %u expect >= %lu",
         |                                                                        ~~~
         |                                                                        %u
     173 |                                   item_size, sizeof(*ei));
         |                                              ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   fs/btrfs/extent-tree.c:867:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
     867 |                           "unexpected extent item size, has %llu expect >= %lu",
         |                                                                            ~~~
         |                                                                            %u
     868 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   fs/btrfs/extent-tree.c:1671:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
    1671 |                           "unexpected extent item size, has %u expect >= %lu",
         |                                                                          ~~~
         |                                                                          %u
    1672 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   fs/btrfs/extent-tree.c:3102:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
    3102 |                           "unexpected extent item size, has %u expect >= %lu",
         |                                                                          ~~~
         |                                                                          %u
    3103 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   4 warnings generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for HOTPLUG_CPU
   Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n])
   Selected by [y]:
   - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y]


vim +100 fs/btrfs/print-tree.c

    82	
    83	static void print_extent_item(const struct extent_buffer *eb, int slot, int type)
    84	{
    85		struct btrfs_extent_item *ei;
    86		struct btrfs_extent_inline_ref *iref;
    87		struct btrfs_extent_data_ref *dref;
    88		struct btrfs_shared_data_ref *sref;
    89		struct btrfs_disk_key key;
    90		unsigned long end;
    91		unsigned long ptr;
    92		u32 item_size = btrfs_item_size(eb, slot);
    93		u64 flags;
    94		u64 offset;
    95		int ref_index = 0;
    96	
    97		if (unlikely(item_size < sizeof(*ei))) {
    98			btrfs_err(eb->fs_info,
    99				  "unexpected extent item size, has %u expect >= %lu",
 > 100				  item_size, sizeof(*ei));
   101			btrfs_handle_fs_error(eb->fs_info, -EUCLEAN, NULL);
   102		}
   103	
   104		ei = btrfs_item_ptr(eb, slot, struct btrfs_extent_item);
   105		flags = btrfs_extent_flags(eb, ei);
   106	
   107		pr_info("\t\textent refs %llu gen %llu flags %llu\n",
   108		       btrfs_extent_refs(eb, ei), btrfs_extent_generation(eb, ei),
   109		       flags);
   110	
   111		if ((type == BTRFS_EXTENT_ITEM_KEY) &&
   112		    flags & BTRFS_EXTENT_FLAG_TREE_BLOCK) {
   113			struct btrfs_tree_block_info *info;
   114			info = (struct btrfs_tree_block_info *)(ei + 1);
   115			btrfs_tree_block_key(eb, info, &key);
   116			pr_info("\t\ttree block key (%llu %u %llu) level %d\n",
   117			       btrfs_disk_key_objectid(&key), key.type,
   118			       btrfs_disk_key_offset(&key),
   119			       btrfs_tree_block_level(eb, info));
   120			iref = (struct btrfs_extent_inline_ref *)(info + 1);
   121		} else {
   122			iref = (struct btrfs_extent_inline_ref *)(ei + 1);
   123		}
   124	
   125		ptr = (unsigned long)iref;
   126		end = (unsigned long)ei + item_size;
   127		while (ptr < end) {
   128			iref = (struct btrfs_extent_inline_ref *)ptr;
   129			type = btrfs_extent_inline_ref_type(eb, iref);
   130			offset = btrfs_extent_inline_ref_offset(eb, iref);
   131			pr_info("\t\tref#%d: ", ref_index++);
   132			switch (type) {
   133			case BTRFS_TREE_BLOCK_REF_KEY:
   134				pr_cont("tree block backref root %llu\n", offset);
   135				break;
   136			case BTRFS_SHARED_BLOCK_REF_KEY:
   137				pr_cont("shared block backref parent %llu\n", offset);
   138				/*
   139				 * offset is supposed to be a tree block which
   140				 * must be aligned to nodesize.
   141				 */
   142				if (!IS_ALIGNED(offset, eb->fs_info->sectorsize))
   143					pr_info(
   144				"\t\t\t(parent %llu not aligned to sectorsize %u)\n",
   145						offset, eb->fs_info->sectorsize);
   146				break;
   147			case BTRFS_EXTENT_DATA_REF_KEY:
   148				dref = (struct btrfs_extent_data_ref *)(&iref->offset);
   149				print_extent_data_ref(eb, dref);
   150				break;
   151			case BTRFS_SHARED_DATA_REF_KEY:
   152				sref = (struct btrfs_shared_data_ref *)(iref + 1);
   153				pr_cont("shared data backref parent %llu count %u\n",
   154				       offset, btrfs_shared_data_ref_count(eb, sref));
   155				/*
   156				 * Offset is supposed to be a tree block which must be
   157				 * aligned to sectorsize.
   158				 */
   159				if (!IS_ALIGNED(offset, eb->fs_info->sectorsize))
   160					pr_info(
   161				"\t\t\t(parent %llu not aligned to sectorsize %u)\n",
   162					     offset, eb->fs_info->sectorsize);
   163				break;
   164			default:
   165				pr_cont("(extent %llu has INVALID ref type %d)\n",
   166					  eb->start, type);
   167				return;
   168			}
   169			ptr += btrfs_extent_inline_ref_size(type);
   170		}
   171		WARN_ON(ptr > end);
   172	}
   173	

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

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

* Re: [PATCH v2] btrfs: remove v0 extent handling
  2023-08-11 10:32 ` [PATCH v2] btrfs: remove v0 extent handling kernel test robot
@ 2023-08-11 10:42   ` Qu Wenruo
  0 siblings, 0 replies; 2+ messages in thread
From: Qu Wenruo @ 2023-08-11 10:42 UTC (permalink / raw)
  To: kernel test robot, Qu Wenruo, linux-btrfs; +Cc: llvm, oe-kbuild-all



On 2023/8/11 18:32, kernel test robot wrote:
> Hi Qu,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on kdave/for-next]
> [also build test WARNING on linus/master v6.5-rc5 next-20230809]
> [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/Qu-Wenruo/btrfs-remove-v0-extent-handling/20230811-154905
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
> patch link:    https://lore.kernel.org/r/6258b0bf5e41e52ca0e163e34650d186363628c6.1691740017.git.wqu%40suse.com
> patch subject: [PATCH v2] btrfs: remove v0 extent handling
> config: powerpc-randconfig-r034-20230811 (https://download.01.org/0day-ci/archive/20230811/202308111815.mJwoiury-lkp@intel.com/config)

OK, ppc, that's why we need a different format for sizeof() return values.

> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> reproduce: (https://download.01.org/0day-ci/archive/20230811/202308111815.mJwoiury-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/202308111815.mJwoiury-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
>>> fs/btrfs/print-tree.c:100:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
>       100 |                           "unexpected extent item size, has %u expect >= %lu",
>           |                                                                          ~~~
>           |                                                                          %u

The more proper format would be %zu.

Would be updated soon.

Thanks for the report as usual,
Qu

>       101 |                           item_size, sizeof(*ei));
>           |                                      ^~~~~~~~~~~
>     fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
>        46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
>           |                                        ~~~    ^~~~
>     fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
>        27 |         _btrfs_printk(fs_info, fmt, ##args)
>           |                                ~~~    ^~~~
>     1 warning generated.
> --
>>> fs/btrfs/extent-tree.c:172:18: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
>       172 |                         "unexpected extent item size, has %u expect >= %lu",
>           |                                                                        ~~~
>           |                                                                        %u
>       173 |                                   item_size, sizeof(*ei));
>           |                                              ^~~~~~~~~~~
>     fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
>        46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
>           |                                        ~~~    ^~~~
>     fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
>        27 |         _btrfs_printk(fs_info, fmt, ##args)
>           |                                ~~~    ^~~~
>     fs/btrfs/extent-tree.c:867:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
>       867 |                           "unexpected extent item size, has %llu expect >= %lu",
>           |                                                                            ~~~
>           |                                                                            %u
>       868 |                           item_size, sizeof(*ei));
>           |                                      ^~~~~~~~~~~
>     fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
>        46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
>           |                                        ~~~    ^~~~
>     fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
>        27 |         _btrfs_printk(fs_info, fmt, ##args)
>           |                                ~~~    ^~~~
>     fs/btrfs/extent-tree.c:1671:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
>      1671 |                           "unexpected extent item size, has %u expect >= %lu",
>           |                                                                          ~~~
>           |                                                                          %u
>      1672 |                           item_size, sizeof(*ei));
>           |                                      ^~~~~~~~~~~
>     fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
>        46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
>           |                                        ~~~    ^~~~
>     fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
>        27 |         _btrfs_printk(fs_info, fmt, ##args)
>           |                                ~~~    ^~~~
>     fs/btrfs/extent-tree.c:3102:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
>      3102 |                           "unexpected extent item size, has %u expect >= %lu",
>           |                                                                          ~~~
>           |                                                                          %u
>      3103 |                           item_size, sizeof(*ei));
>           |                                      ^~~~~~~~~~~
>     fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
>        46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
>           |                                        ~~~    ^~~~
>     fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
>        27 |         _btrfs_printk(fs_info, fmt, ##args)
>           |                                ~~~    ^~~~
>     4 warnings generated.
>
> Kconfig warnings: (for reference only)
>     WARNING: unmet direct dependencies detected for HOTPLUG_CPU
>     Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n])
>     Selected by [y]:
>     - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y]
>
>
> vim +100 fs/btrfs/print-tree.c
>
>      82
>      83	static void print_extent_item(const struct extent_buffer *eb, int slot, int type)
>      84	{
>      85		struct btrfs_extent_item *ei;
>      86		struct btrfs_extent_inline_ref *iref;
>      87		struct btrfs_extent_data_ref *dref;
>      88		struct btrfs_shared_data_ref *sref;
>      89		struct btrfs_disk_key key;
>      90		unsigned long end;
>      91		unsigned long ptr;
>      92		u32 item_size = btrfs_item_size(eb, slot);
>      93		u64 flags;
>      94		u64 offset;
>      95		int ref_index = 0;
>      96
>      97		if (unlikely(item_size < sizeof(*ei))) {
>      98			btrfs_err(eb->fs_info,
>      99				  "unexpected extent item size, has %u expect >= %lu",
>   > 100				  item_size, sizeof(*ei));
>     101			btrfs_handle_fs_error(eb->fs_info, -EUCLEAN, NULL);
>     102		}
>     103
>     104		ei = btrfs_item_ptr(eb, slot, struct btrfs_extent_item);
>     105		flags = btrfs_extent_flags(eb, ei);
>     106
>     107		pr_info("\t\textent refs %llu gen %llu flags %llu\n",
>     108		       btrfs_extent_refs(eb, ei), btrfs_extent_generation(eb, ei),
>     109		       flags);
>     110
>     111		if ((type == BTRFS_EXTENT_ITEM_KEY) &&
>     112		    flags & BTRFS_EXTENT_FLAG_TREE_BLOCK) {
>     113			struct btrfs_tree_block_info *info;
>     114			info = (struct btrfs_tree_block_info *)(ei + 1);
>     115			btrfs_tree_block_key(eb, info, &key);
>     116			pr_info("\t\ttree block key (%llu %u %llu) level %d\n",
>     117			       btrfs_disk_key_objectid(&key), key.type,
>     118			       btrfs_disk_key_offset(&key),
>     119			       btrfs_tree_block_level(eb, info));
>     120			iref = (struct btrfs_extent_inline_ref *)(info + 1);
>     121		} else {
>     122			iref = (struct btrfs_extent_inline_ref *)(ei + 1);
>     123		}
>     124
>     125		ptr = (unsigned long)iref;
>     126		end = (unsigned long)ei + item_size;
>     127		while (ptr < end) {
>     128			iref = (struct btrfs_extent_inline_ref *)ptr;
>     129			type = btrfs_extent_inline_ref_type(eb, iref);
>     130			offset = btrfs_extent_inline_ref_offset(eb, iref);
>     131			pr_info("\t\tref#%d: ", ref_index++);
>     132			switch (type) {
>     133			case BTRFS_TREE_BLOCK_REF_KEY:
>     134				pr_cont("tree block backref root %llu\n", offset);
>     135				break;
>     136			case BTRFS_SHARED_BLOCK_REF_KEY:
>     137				pr_cont("shared block backref parent %llu\n", offset);
>     138				/*
>     139				 * offset is supposed to be a tree block which
>     140				 * must be aligned to nodesize.
>     141				 */
>     142				if (!IS_ALIGNED(offset, eb->fs_info->sectorsize))
>     143					pr_info(
>     144				"\t\t\t(parent %llu not aligned to sectorsize %u)\n",
>     145						offset, eb->fs_info->sectorsize);
>     146				break;
>     147			case BTRFS_EXTENT_DATA_REF_KEY:
>     148				dref = (struct btrfs_extent_data_ref *)(&iref->offset);
>     149				print_extent_data_ref(eb, dref);
>     150				break;
>     151			case BTRFS_SHARED_DATA_REF_KEY:
>     152				sref = (struct btrfs_shared_data_ref *)(iref + 1);
>     153				pr_cont("shared data backref parent %llu count %u\n",
>     154				       offset, btrfs_shared_data_ref_count(eb, sref));
>     155				/*
>     156				 * Offset is supposed to be a tree block which must be
>     157				 * aligned to sectorsize.
>     158				 */
>     159				if (!IS_ALIGNED(offset, eb->fs_info->sectorsize))
>     160					pr_info(
>     161				"\t\t\t(parent %llu not aligned to sectorsize %u)\n",
>     162					     offset, eb->fs_info->sectorsize);
>     163				break;
>     164			default:
>     165				pr_cont("(extent %llu has INVALID ref type %d)\n",
>     166					  eb->start, type);
>     167				return;
>     168			}
>     169			ptr += btrfs_extent_inline_ref_size(type);
>     170		}
>     171		WARN_ON(ptr > end);
>     172	}
>     173
>

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

end of thread, other threads:[~2023-08-11 10:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <6258b0bf5e41e52ca0e163e34650d186363628c6.1691740017.git.wqu@suse.com>
2023-08-11 10:32 ` [PATCH v2] btrfs: remove v0 extent handling kernel test robot
2023-08-11 10:42   ` Qu Wenruo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).