Hi Waiman,

[auto build test ERROR on next-20170323]
[also build test ERROR on v4.11-rc3]
[cannot apply to linus/master linux/master tip/perf/core v4.9-rc8 v4.9-rc7 
v4.9-rc6]
[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/Waiman-Long/perf-bench-New-microbenchmark-for-userspace-mutex-performance/20170324-135043
config: m32r-usrv_defconfig (attached as .config)
compiler: m32r-linux-gcc (GCC) 6.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=m32r 

All errors (new ones prefixed by >>):

   kernel/built-in.o: In function `futex_spin_on_reader':
>> kernel/futex.c:4003: undefined reference to `osq_lock'
   kernel/futex.c:4003:(.text+0x5cc98): relocation truncated to fit: 
R_M32R_26_PCREL_RELA against undefined symbol `osq_lock'
>> kernel/futex.c:4040: undefined reference to `osq_unlock'
   kernel/futex.c:4040:(.text+0x5cd2c): relocation truncated to fit: 
R_M32R_26_PCREL_RELA against undefined symbol `osq_unlock'
   kernel/futex.c:4033: undefined reference to `osq_unlock'
   kernel/futex.c:4033:(.text+0x5d0d4): relocation truncated to fit: 
R_M32R_26_PCREL_RELA against undefined symbol `osq_unlock'

vim +4003 kernel/futex.c

  3997          first_reader = READ_ONCE(state->first_reader);
  3998          if (!first_reader)
  3999                  first_reader = cmpxchg(&state->first_reader, NULL, 
current);
  4000          if (!first_reader)
  4001                  goto out;       /* Became the first reader */
  4002  
> 4003          if (!osq_lock(&state->reader_osq))
  4004                  goto reschedule;
  4005  
  4006          rcu_read_lock();
  4007          for (;;) {
  4008                  u32 uval;
  4009  
  4010                  if (!state->handoff_pid && (prefer_reader ||
  4011                     (first_reader == READ_ONCE(state->mutex_owner)))) {
  4012                          ret = futex_trylock_preempt_disabled(uaddr,
  4013                                                  FUTEX_SHARED, &uval, 
false);
  4014                          /*
  4015                           * Return if lock acquired or an error happened
  4016                           */
  4017                          if (ret)
  4018                                  break;
  4019                  }
  4020  
  4021                  /*
  4022                   * Reread the first reader value again.
  4023                   */
  4024                  first_reader = READ_ONCE(state->first_reader);
  4025                  if (!first_reader)
  4026                          first_reader = cmpxchg(&state->first_reader, 
NULL,
  4027                                                  current);
  4028                  if (!first_reader || !first_reader->on_cpu)
  4029                          break;
  4030  
  4031                  if (need_resched()) {
  4032                          rcu_read_unlock();
  4033                          osq_unlock(&state->reader_osq);
  4034                          goto reschedule;
  4035                  }
  4036  
  4037                  cpu_relax();
  4038          }
  4039          rcu_read_unlock();
> 4040          osq_unlock(&state->reader_osq);
  4041  out:
  4042          *pfirst = first_reader;
  4043          preempt_enable();

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

Attachment: .config.gz
Description: application/gzip

Reply via email to