Re: [Maria-developers] [Commits] Rev 4346: MDEV-7026 - Occasional hang during startup on Power8 in lp:maria/5.5
Since isync is not a memory barrier and lwsync doesn't guarantee StoreLoad order, the only option we have is full memory barrier. === modified file 'storage/innobase/include/os0sync.h' --- a/storage/innobase/include/os0sync.h 2014-09-08 15:10:48 +0000 +++ b/storage/innobase/include/os0sync.h 2014-11-18 08:07:42 +0000
#ifdef __powerpc__ -# define os_isync __asm __volatile ("isync":::"memory") +# define os_isync __atomic_thread_fence(__ATOMIC_SEQ_CST)
you have to rename to the #define too (e.g to os_mb). having a os_isync which is infact a mb is more obfuscation than anyone should have to put up with. /Jonas
Hi Jonas, good point. In my previous patch I renamed this to os_sync and adjusted this macro to match it's meaning for other OS-es. But since Kristian didin't like previous patch, I attempted to keep this one less intrusive. Thanks, Sergey On Tue, Nov 18, 2014 at 09:43:13AM +0100, Jonas Oreland wrote:
Since isync is not a memory barrier and lwsync doesn't guarantee StoreLoad order, the only option we have is full memory barrier. === modified file 'storage/innobase/include/os0sync.h' --- a/storage/innobase/include/os0sync.h 2014-09-08 15:10:48 +0000 +++ b/storage/innobase/include/os0sync.h 2014-11-18 08:07:42 +0000
#ifdef __powerpc__ -# define os_isync __asm __volatile ("isync":::"memory") +# define os_isync __atomic_thread_fence(__ATOMIC_SEQ_CST)
you have to rename to the #define too (e.g to os_mb). having a os_isync which is infact a mb is more obfuscation than anyone should have to put up with.
/Jonas
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
participants (2)
-
Jonas Oreland
-
Sergey Vojtovich