* Re: [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make [not found] <1474277037-15200-7-git-send-email-xinhui.pan@linux.vnet.ibm.com> @ 2016-09-19 8:58 ` kbuild test robot 2016-09-22 5:54 ` xinhui 0 siblings, 1 reply; 4+ messages in thread From: kbuild test robot @ 2016-09-19 8:58 UTC (permalink / raw) Cc: xinhui.pan, peterz, mpe, linux-kernel, waiman.long, virtualization, mingo, paulus, kbuild-all, benh, paulmck, linuxppc-dev [-- Attachment #1: Type: text/plain, Size: 10966 bytes --] Hi Pan, [auto build test ERROR on powerpc/next] [also build test ERROR on v4.8-rc7 next-20160916] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] [Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information] url: https://github.com/0day-ci/linux/commits/Pan-Xinhui/Implement-qspinlock-pv-qspinlock-on-ppc/20160919-133130 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-allyesconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=powerpc All errors (new ones prefixed by >>): include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^~~~~~~~~~~~~~~~ In function '__cmpxchg', inlined from 'pv_wait_node' at kernel/locking/qspinlock_paravirt.h:328:3, inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:538:3: include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^~~~~~ include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^~~~~~~~~~~~~~~~ In function '__cmpxchg', inlined from 'pv_wait_head_or_lock' at kernel/locking/qspinlock_paravirt.h:109:10, inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:573:5: include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^~~~~~ include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^~~~~~~~~~~~~~~~ In function '__xchg_relaxed', inlined from 'pv_wait_head_or_lock' at kernel/locking/qspinlock_paravirt.h:442:8, inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:573:5: include/linux/compiler.h:491:38: error: call to '__compiletime_assert_113' declared with attribute error: Unsupported size for __xchg_local _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^~~~~~ include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/cmpxchg.h:113:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); ^~~~~~~~~~~~~~~~ In function '__cmpxchg', inlined from 'pv_kick_node' at kernel/locking/qspinlock_paravirt.h:366:6, inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:616:2: include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^~~~~~ include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^~~~~~~~~~~~~~~~ In function '__xchg_relaxed', inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:184:14: include/linux/compiler.h:491:38: error: call to '__compiletime_assert_113' declared with attribute error: Unsupported size for __xchg_local _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^~~~~~ include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/cmpxchg.h:113:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); ^~~~~~~~~~~~~~~~ In function '__cmpxchg_relaxed', inlined from '__pv_queued_spin_unlock' at kernel/locking/qspinlock_paravirt.h:547:11: >> include/linux/compiler.h:491:38: error: call to '__compiletime_assert_358' declared with attribute error: Unsupported size for __cmpxchg_relaxed _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^~~~~~ include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/cmpxchg.h:358:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed"); ^~~~~~~~~~~~~~~~ vim +/__compiletime_assert_358 +491 include/linux/compiler.h 9a8ab1c3 Daniel Santos 2013-02-21 475 __compiletime_error_fallback(__cond); \ 9a8ab1c3 Daniel Santos 2013-02-21 476 } while (0) 9a8ab1c3 Daniel Santos 2013-02-21 477 9a8ab1c3 Daniel Santos 2013-02-21 478 #define _compiletime_assert(condition, msg, prefix, suffix) \ 9a8ab1c3 Daniel Santos 2013-02-21 479 __compiletime_assert(condition, msg, prefix, suffix) 9a8ab1c3 Daniel Santos 2013-02-21 480 9a8ab1c3 Daniel Santos 2013-02-21 481 /** 9a8ab1c3 Daniel Santos 2013-02-21 482 * compiletime_assert - break build and emit msg if condition is false 9a8ab1c3 Daniel Santos 2013-02-21 483 * @condition: a compile-time constant condition to check 9a8ab1c3 Daniel Santos 2013-02-21 484 * @msg: a message to emit if condition is false 9a8ab1c3 Daniel Santos 2013-02-21 485 * 9a8ab1c3 Daniel Santos 2013-02-21 486 * In tradition of POSIX assert, this macro will break the build if the 9a8ab1c3 Daniel Santos 2013-02-21 487 * supplied condition is *false*, emitting the supplied error message if the 9a8ab1c3 Daniel Santos 2013-02-21 488 * compiler has support to do so. 9a8ab1c3 Daniel Santos 2013-02-21 489 */ 9a8ab1c3 Daniel Santos 2013-02-21 490 #define compiletime_assert(condition, msg) \ 9a8ab1c3 Daniel Santos 2013-02-21 @491 _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) 9a8ab1c3 Daniel Santos 2013-02-21 492 47933ad4 Peter Zijlstra 2013-11-06 493 #define compiletime_assert_atomic_type(t) \ 47933ad4 Peter Zijlstra 2013-11-06 494 compiletime_assert(__native_word(t), \ 47933ad4 Peter Zijlstra 2013-11-06 495 "Need native word sized stores/loads for atomicity.") 47933ad4 Peter Zijlstra 2013-11-06 496 9c3cdc1f Linus Torvalds 2008-05-10 497 /* 9c3cdc1f Linus Torvalds 2008-05-10 498 * Prevent the compiler from merging or refetching accesses. The compiler 9c3cdc1f Linus Torvalds 2008-05-10 499 * is also forbidden from reordering successive instances of ACCESS_ONCE(), :::::: The code at line 491 was first introduced by commit :::::: 9a8ab1c39970a4938a72d94e6fd13be88a797590 bug.h, compiler.h: introduce compiletime_assert & BUILD_BUG_ON_MSG :::::: TO: Daniel Santos <daniel.santos@pobox.com> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 49942 bytes --] [-- Attachment #3: Type: text/plain, Size: 183 bytes --] _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make 2016-09-19 8:58 ` [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make kbuild test robot @ 2016-09-22 5:54 ` xinhui 2016-09-22 10:31 ` Michael Ellerman 0 siblings, 1 reply; 4+ messages in thread From: xinhui @ 2016-09-22 5:54 UTC (permalink / raw) To: kbuild test robot Cc: peterz, mpe, linux-kernel, waiman.long, virtualization, mingo, paulus, kbuild-all, benh, paulmck, linuxppc-dev hi, all ok, this patch set depends on https://patchwork.kernel.org/patch/8953981/ [V4] powerpc: Implement {cmp}xchg for u8 and u16 sorry. On 2016年09月19日 16:58, kbuild test robot wrote: > Hi Pan, > > [auto build test ERROR on powerpc/next] > [also build test ERROR on v4.8-rc7 next-20160916] > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] > [Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] > [Check https://git-scm.com/docs/git-format-patch for more information] > > url: https://github.com/0day-ci/linux/commits/Pan-Xinhui/Implement-qspinlock-pv-qspinlock-on-ppc/20160919-133130 > base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next > config: powerpc-allyesconfig (attached as .config) > compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 > reproduce: > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # save the attached .config to linux build tree > make.cross ARCH=powerpc > > All errors (new ones prefixed by >>): > > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg', > inlined from 'pv_wait_node' at kernel/locking/qspinlock_paravirt.h:328:3, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:538:3: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg', > inlined from 'pv_wait_head_or_lock' at kernel/locking/qspinlock_paravirt.h:109:10, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:573:5: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__xchg_relaxed', > inlined from 'pv_wait_head_or_lock' at kernel/locking/qspinlock_paravirt.h:442:8, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:573:5: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_113' declared with attribute error: Unsupported size for __xchg_local > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:113:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg', > inlined from 'pv_kick_node' at kernel/locking/qspinlock_paravirt.h:366:6, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:616:2: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__xchg_relaxed', > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:184:14: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_113' declared with attribute error: Unsupported size for __xchg_local > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:113:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg_relaxed', > inlined from '__pv_queued_spin_unlock' at kernel/locking/qspinlock_paravirt.h:547:11: >>> include/linux/compiler.h:491:38: error: call to '__compiletime_assert_358' declared with attribute error: Unsupported size for __cmpxchg_relaxed > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:358:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed"); > ^~~~~~~~~~~~~~~~ > > vim +/__compiletime_assert_358 +491 include/linux/compiler.h > > 9a8ab1c3 Daniel Santos 2013-02-21 475 __compiletime_error_fallback(__cond); \ > 9a8ab1c3 Daniel Santos 2013-02-21 476 } while (0) > 9a8ab1c3 Daniel Santos 2013-02-21 477 > 9a8ab1c3 Daniel Santos 2013-02-21 478 #define _compiletime_assert(condition, msg, prefix, suffix) \ > 9a8ab1c3 Daniel Santos 2013-02-21 479 __compiletime_assert(condition, msg, prefix, suffix) > 9a8ab1c3 Daniel Santos 2013-02-21 480 > 9a8ab1c3 Daniel Santos 2013-02-21 481 /** > 9a8ab1c3 Daniel Santos 2013-02-21 482 * compiletime_assert - break build and emit msg if condition is false > 9a8ab1c3 Daniel Santos 2013-02-21 483 * @condition: a compile-time constant condition to check > 9a8ab1c3 Daniel Santos 2013-02-21 484 * @msg: a message to emit if condition is false > 9a8ab1c3 Daniel Santos 2013-02-21 485 * > 9a8ab1c3 Daniel Santos 2013-02-21 486 * In tradition of POSIX assert, this macro will break the build if the > 9a8ab1c3 Daniel Santos 2013-02-21 487 * supplied condition is *false*, emitting the supplied error message if the > 9a8ab1c3 Daniel Santos 2013-02-21 488 * compiler has support to do so. > 9a8ab1c3 Daniel Santos 2013-02-21 489 */ > 9a8ab1c3 Daniel Santos 2013-02-21 490 #define compiletime_assert(condition, msg) \ > 9a8ab1c3 Daniel Santos 2013-02-21 @491 _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > 9a8ab1c3 Daniel Santos 2013-02-21 492 > 47933ad4 Peter Zijlstra 2013-11-06 493 #define compiletime_assert_atomic_type(t) \ > 47933ad4 Peter Zijlstra 2013-11-06 494 compiletime_assert(__native_word(t), \ > 47933ad4 Peter Zijlstra 2013-11-06 495 "Need native word sized stores/loads for atomicity.") > 47933ad4 Peter Zijlstra 2013-11-06 496 > 9c3cdc1f Linus Torvalds 2008-05-10 497 /* > 9c3cdc1f Linus Torvalds 2008-05-10 498 * Prevent the compiler from merging or refetching accesses. The compiler > 9c3cdc1f Linus Torvalds 2008-05-10 499 * is also forbidden from reordering successive instances of ACCESS_ONCE(), > > :::::: The code at line 491 was first introduced by commit > :::::: 9a8ab1c39970a4938a72d94e6fd13be88a797590 bug.h, compiler.h: introduce compiletime_assert & BUILD_BUG_ON_MSG > > :::::: TO: Daniel Santos <daniel.santos@pobox.com> > :::::: CC: Linus Torvalds <torvalds@linux-foundation.org> > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation > _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make 2016-09-22 5:54 ` xinhui @ 2016-09-22 10:31 ` Michael Ellerman 0 siblings, 0 replies; 4+ messages in thread From: Michael Ellerman @ 2016-09-22 10:31 UTC (permalink / raw) To: xinhui, kbuild test robot Cc: peterz, benh, linux-kernel, waiman.long, virtualization, mingo, paulus, kbuild-all, paulmck, linuxppc-dev xinhui <xinhui.pan@linux.vnet.ibm.com> writes: > hi, all > ok, this patch set depends on > https://patchwork.kernel.org/patch/8953981/ [V4] powerpc: Implement {cmp}xchg for u8 and u16 AKA: https://patchwork.ozlabs.org/patch/615480/ Sorry I saw the discussion on that and thought there'd be a new version. But now I read the whole thread it looks like it was OK in the end. I'll try and get it merged. cheers ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v7 0/6] Implement qspinlock/pv-qspinlock on ppc
@ 2016-09-19 9:23 Pan Xinhui
2016-09-19 9:23 ` [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make Pan Xinhui
0 siblings, 1 reply; 4+ messages in thread
From: Pan Xinhui @ 2016-09-19 9:23 UTC (permalink / raw)
To: linux-kernel, linuxppc-dev
Cc: xinhui.pan, peterz, benh, waiman.long, virtualization, mingo,
paulus, mpe, paulmck
Hi All,
this is the fairlock patchset. You can apply them and build successfully.
patches are based on 4.8-rc4.
qspinlock can avoid waiter starved issue. It has about the same speed in
single-thread and it can be much faster in high contention situations
especially when the spinlock is embedded within the data structure to be
protected.
v6 -> v7:
rebase onto 4.8-rc4
no changelog anymore, sorry for that. I hope there is a very careful review.
Todo:
we can save one function call overhead. As we can use feature-fixup to patch
the binary code. Currently there is pv_lock_ops->lock(lock) and ->unlock(lock) to acquire/release the lock.
some benchmark result below
perf bench
these numbers are ops per sec, So the higher the better.
*******************************************
on pSeries with 32 vcpus, 32Gb memory, pHyp.
------------------------------------------------------------------------------------
test case | pv-qspinlock | qspinlock | current-spinlock
------------------------------------------------------------------------------------
futex hash | 618572 | 552332 | 553788
futex lock-pi | 364 | 364 | 364
sched pipe | 78984 | 76060 | 81454
------------------------------------------------------------------------------------
unix bench:
these numbers are scores, So the higher the better.
************************************************
on PowerNV with 16 cores(cpus) (smt off), 32Gb memory:
-------------
pv-qspinlock and qspinlock have very similar results because pv-qspinlock use native version
which is only having one callback overhead
------------------------------------------------------------------------------------
test case | pv-qspinlock and qspinlock | current-spinlock
------------------------------------------------------------------------------------
Execl Throughput 761.1 761.4
File Copy 1024 bufsize 2000 maxblocks 1259.8 1286.6
File Copy 256 bufsize 500 maxblocks 782.2 790.3
File Copy 4096 bufsize 8000 maxblocks 2741.5 2817.4
Pipe Throughput 1063.2 1036.7
Pipe-based Context Switching 284.7 281.1
Process Creation 679.6 649.1
Shell Scripts (1 concurrent) 1933.2 1922.9
Shell Scripts (8 concurrent) 5003.3 4899.8
System Call Overhead 900.6 896.8
==========================
System Benchmarks Index Score 1139.3 1133.0
--------------------------------------------------------------------------- ---------
*******************************************
on pSeries with 32 vcpus, 32Gb memory, pHyp.
------------------------------------------------------------------------------------
test case | pv-qspinlock | qspinlock | current-spinlock
------------------------------------------------------------------------------------
Execl Throughput 877.1 891.2 872.8
File Copy 1024 bufsize 2000 maxblocks 1390.4 1399.2 1395.0
File Copy 256 bufsize 500 maxblocks 882.4 889.5 881.8
File Copy 4096 bufsize 8000 maxblocks 3112.3 3113.4 3121.7
Pipe Throughput 1095.8 1162.6 1158.5
Pipe-based Context Switching 194.9 192.7 200.7
Process Creation 518.4 526.4 509.1
Shell Scripts (1 concurrent) 1401.9 1413.9 1402.2
Shell Scripts (8 concurrent) 3215.6 3246.6 3229.1
System Call Overhead 833.2 892.4 888.1
====================================
System Benchmarks Index Score 1033.7 1052.5 1047.8
------------------------------------------------------------------------------------
******************************************
on pSeries with 32 vcpus, 16Gb memory, KVM.
------------------------------------------------------------------------------------
test case | pv-qspinlock | qspinlock | current-spinlock
------------------------------------------------------------------------------------
Execl Throughput 497.4 518.7 497.8
File Copy 1024 bufsize 2000 maxblocks 1368.8 1390.1 1343.3
File Copy 256 bufsize 500 maxblocks 857.7 859.8 831.4
File Copy 4096 bufsize 8000 maxblocks 2851.7 2838.1 2785.5
Pipe Throughput 1221.9 1265.3 1250.4
Pipe-based Context Switching 529.8 578.1 564.2
Process Creation 408.4 421.6 287.6
Shell Scripts (1 concurrent) 1201.8 1215.3 1185.8
Shell Scripts (8 concurrent) 3758.4 3799.3 3878.9
System Call Overhead 1008.3 1122.6 1134.2
=====================================
System Benchmarks Index Score 1072.0 1108.9 1050.6
------------------------------------------------------------------------------------
Pan Xinhui (6):
pv-qspinlock: use cmpxchg_release in __pv_queued_spin_unlock
powerpc/qspinlock: powerpc support qspinlock
powerpc: pseries/Kconfig: Add qspinlock build config
powerpc: lib/locks.c: Add cpu yield/wake helper function
powerpc/pv-qspinlock: powerpc support pv-qspinlock
powerpc: pSeries: Add pv-qspinlock build config/make
arch/powerpc/include/asm/qspinlock.h | 93 +++++++++++++
arch/powerpc/include/asm/qspinlock_paravirt.h | 36 +++++
.../powerpc/include/asm/qspinlock_paravirt_types.h | 13 ++
arch/powerpc/include/asm/spinlock.h | 35 +++--
arch/powerpc/include/asm/spinlock_types.h | 4 +
arch/powerpc/kernel/Makefile | 1 +
arch/powerpc/kernel/paravirt.c | 153 +++++++++++++++++++++
arch/powerpc/lib/locks.c | 122 ++++++++++++++++
arch/powerpc/platforms/pseries/Kconfig | 9 ++
arch/powerpc/platforms/pseries/setup.c | 5 +
kernel/locking/qspinlock_paravirt.h | 2 +-
11 files changed, 459 insertions(+), 14 deletions(-)
create mode 100644 arch/powerpc/include/asm/qspinlock.h
create mode 100644 arch/powerpc/include/asm/qspinlock_paravirt.h
create mode 100644 arch/powerpc/include/asm/qspinlock_paravirt_types.h
create mode 100644 arch/powerpc/kernel/paravirt.c
--
2.4.11
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make 2016-09-19 9:23 [PATCH v7 0/6] Implement qspinlock/pv-qspinlock on ppc Pan Xinhui @ 2016-09-19 9:23 ` Pan Xinhui 0 siblings, 0 replies; 4+ messages in thread From: Pan Xinhui @ 2016-09-19 9:23 UTC (permalink / raw) To: linux-kernel, linuxppc-dev Cc: xinhui.pan, peterz, benh, waiman.long, virtualization, mingo, paulus, mpe, paulmck pSeries run as a guest and might need pv-qspinlock. Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> --- arch/powerpc/kernel/Makefile | 1 + arch/powerpc/platforms/pseries/Kconfig | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index fe4c075..efd2f3d 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile @@ -49,6 +49,7 @@ obj-$(CONFIG_PPC_970_NAP) += idle_power4.o obj-$(CONFIG_PPC_P7_NAP) += idle_book3s.o procfs-y := proc_powerpc.o obj-$(CONFIG_PROC_FS) += $(procfs-y) +obj-$(CONFIG_PARAVIRT_SPINLOCKS) += paravirt.o rtaspci-$(CONFIG_PPC64)-$(CONFIG_PCI) := rtas_pci.o obj-$(CONFIG_PPC_RTAS) += rtas.o rtas-rtc.o $(rtaspci-y-y) obj-$(CONFIG_PPC_RTAS_DAEMON) += rtasd.o diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig index f669323..46632e4 100644 --- a/arch/powerpc/platforms/pseries/Kconfig +++ b/arch/powerpc/platforms/pseries/Kconfig @@ -128,3 +128,11 @@ config HV_PERF_CTRS systems. 24x7 is available on Power 8 systems. If unsure, select Y. + +config PARAVIRT_SPINLOCKS + bool "Paravirtialization support for qspinlock" + depends on PPC_SPLPAR && QUEUED_SPINLOCKS + default y + help + If platform supports virtualization, for example PowerVM, this option + can let guest have a better performace. -- 2.4.11 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-09-22 10:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1474277037-15200-7-git-send-email-xinhui.pan@linux.vnet.ibm.com>
2016-09-19 8:58 ` [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make kbuild test robot
2016-09-22 5:54 ` xinhui
2016-09-22 10:31 ` Michael Ellerman
2016-09-19 9:23 [PATCH v7 0/6] Implement qspinlock/pv-qspinlock on ppc Pan Xinhui
2016-09-19 9:23 ` [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make Pan Xinhui
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox