In file ...../opengfs-0.0.91/src/include/osi_user.h
Could someone explain how these operations can be called 'atomic' ?
The test_and_set macro is only a set. How can it fail?
Even with IPL set at the highest, these will fail 'atomicity'
on SMP platforms.
Other atomic macros for test&set and test&clearhave been
implemented in platform specific assembly instructions
(sometimes after purging a specific cache line).
Anyone running opengfs with DMEP on SMP Linux with at least 2 cpus?
In file ...../opengfs-0.0.91/src/include/osi_user.h
Could someone explain how these operations can be called 'atomic' ?
The test_and_set macro is only a set. How can it fail?
Even with IPL set at the highest, these will fail 'atomicity'
on SMP platforms.
Other atomic macros for test&set and test&clearhave been
implemented in platform specific assembly instructions
(sometimes after purging a specific cache line).
Anyone running opengfs with DMEP on SMP Linux with at least 2 cpus?
.
.
.
.
/* Atomic Bit Manipulation interface */
#define test_bit(nr, bitfield) (*bitfield & (1 << nr))
#define set_bit(nr, bitfield) (*bitfield |= (1 << nr))
#define clear_bit(nr, bitfield) (*bitfield &= ~(1 << nr))
#define test_and_set_bit(nr, bitfield) (*bitfield |= (1 << nr))
#define test_and_clear_bit(nr, bitfield) (*bitfield &= ~(1 << nr))