Hi John,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linux/master]
[also build test WARNING on linus/master v5.8-rc4 next-20200707]
[cannot apply to pmladek/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/John-Ogness/printk-replace-ringbuffer/20200707-230114
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68
config: arm-randconfig-r014-20200707 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 
02946de3802d3bc65bc9f2eb9b8d4969b5a7add8)
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
        # 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 <l...@intel.com>

All warnings (new ones prefixed by >>):

>> kernel/printk/printk.c:1146:10: warning: format specifies type 'unsigned 
>> long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
                          new_descs_size);
                          ^~~~~~~~~~~~~~
   include/linux/printk.h:338:33: note: expanded from macro 'pr_err'
           printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
                                  ~~~     ^~~~~~~~~~~
   1 warning generated.

vim +1146 kernel/printk/printk.c

  1090  
  1091  void __init setup_log_buf(int early)
  1092  {
  1093          unsigned int new_descs_count;
  1094          struct prb_desc *new_descs;
  1095          struct printk_info info;
  1096          struct printk_record r;
  1097          size_t new_descs_size;
  1098          unsigned long flags;
  1099          char *new_dict_buf;
  1100          char *new_log_buf;
  1101          unsigned int free;
  1102          u64 seq;
  1103  
  1104          /*
  1105           * Some archs call setup_log_buf() multiple times - first is 
very
  1106           * early, e.g. from setup_arch(), and second - when percpu_areas
  1107           * are initialised.
  1108           */
  1109          if (!early)
  1110                  set_percpu_data_ready();
  1111  
  1112          if (log_buf != __log_buf)
  1113                  return;
  1114  
  1115          if (!early && !new_log_buf_len)
  1116                  log_buf_add_cpu();
  1117  
  1118          if (!new_log_buf_len)
  1119                  return;
  1120  
  1121          new_descs_count = new_log_buf_len >> PRB_AVGBITS;
  1122          if (new_descs_count == 0) {
  1123                  pr_err("new_log_buf_len: %lu too small\n", 
new_log_buf_len);
  1124                  return;
  1125          }
  1126  
  1127          new_log_buf = memblock_alloc(new_log_buf_len, LOG_ALIGN);
  1128          if (unlikely(!new_log_buf)) {
  1129                  pr_err("log_buf_len: %lu text bytes not available\n",
  1130                         new_log_buf_len);
  1131                  return;
  1132          }
  1133  
  1134          new_dict_buf = memblock_alloc(new_log_buf_len, LOG_ALIGN);
  1135          if (unlikely(!new_dict_buf)) {
  1136                  pr_err("log_buf_len: %lu dict bytes not available\n",
  1137                         new_log_buf_len);
  1138                  memblock_free(__pa(new_log_buf), new_log_buf_len);
  1139                  return;
  1140          }
  1141  
  1142          new_descs_size = new_descs_count * sizeof(struct prb_desc);
  1143          new_descs = memblock_alloc(new_descs_size, LOG_ALIGN);
  1144          if (unlikely(!new_descs)) {
  1145                  pr_err("log_buf_len: %lu desc bytes not available\n",
> 1146                         new_descs_size);
  1147                  memblock_free(__pa(new_dict_buf), new_log_buf_len);
  1148                  memblock_free(__pa(new_log_buf), new_log_buf_len);
  1149                  return;
  1150          }
  1151  
  1152          prb_rec_init_rd(&r, &info,
  1153                          &setup_text_buf[0], sizeof(setup_text_buf),
  1154                          &setup_dict_buf[0], sizeof(setup_dict_buf));
  1155  
  1156          prb_init(&printk_rb_dynamic,
  1157                   new_log_buf, order_base_2(new_log_buf_len),
  1158                   new_dict_buf, order_base_2(new_log_buf_len),
  1159                   new_descs, order_base_2(new_descs_count));
  1160  
  1161          logbuf_lock_irqsave(flags);
  1162  
  1163          log_buf_len = new_log_buf_len;
  1164          log_buf = new_log_buf;
  1165          new_log_buf_len = 0;
  1166  
  1167          free = __LOG_BUF_LEN;
  1168          prb_for_each_record(0, &printk_rb_static, seq, &r)
  1169                  free -= add_to_rb(&printk_rb_dynamic, &r);
  1170  
  1171          /*
  1172           * This is early enough that everything is still running on the
  1173           * boot CPU and interrupts are disabled. So no new messages will
  1174           * appear during the transition to the dynamic buffer.
  1175           */
  1176          prb = &printk_rb_dynamic;
  1177  
  1178          logbuf_unlock_irqrestore(flags);
  1179  
  1180          if (seq != prb_next_seq(&printk_rb_static)) {
  1181                  pr_err("dropped %llu messages\n",
  1182                         prb_next_seq(&printk_rb_static) - seq);
  1183          }
  1184  
  1185          pr_info("log_buf_len: %u bytes\n", log_buf_len);
  1186          pr_info("early log buf free: %u(%u%%)\n",
  1187                  free, (free * 100) / __LOG_BUF_LEN);
  1188  }
  1189  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to