Another good article on atomicty and data sizes: http://www.ibm.com/developerworks/library/pa-atom/ On Sun, Feb 24, 2013 at 8:50 PM, Peter Teoh <htmldeveloper@gmail.com> wrote:
in simple terms, any operation, in terms assembly instructions, which can be executed in ONE instruction, is "atomic", because, just like an atom, it cannot be broken up into parts. any instructions that is longer than one, for eg, TWO instruction, is NOT atomic, because in BETWEEN the first and 2nd instruction, something like an interrupt can come in, and affect the values of the operand when it is passed from instruction one to second instruction. To save me from reiteration:
http://www.ibm.com/developerworks/library/pa-dalign/ (search for "atomicity").
http://stackoverflow.com/questions/381244/purpose-of-memory-alignment
http://lwn.net/Articles/260832/
http://www.songho.ca/misc/alignment/dataalign.html
http://www.cis.upenn.edu/~palsetia/cit595s08/Lectures08/alignmentOrdering.pd...
Essentially, atomicity and non-alignment become problematic when u tried to to read using non-byte addressing mode with non-aligned address.
On Sun, Feb 24, 2013 at 5:42 PM, Shraddha Kamat <sh2008ka@gmail.com>wrote:
what is the relation between atomic operations and memory alignment ?
I read from UTLK that "an unaligned memory access is not atomic"
please explain me , I am not able to get the relationship between memory alignment and atomicity of the operation.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
-- Regards, Peter Teoh
On Sun, Feb 24, 2013 at 08:53:20PM +0800, Peter Teoh wrote: > Another good article on atomicty and data sizes: > > http://www.ibm.com/developerworks/library/pa-atom/ > > On Sun, Feb 24, 2013 at 8:50 PM, Peter Teoh <htmldeveloper@gmail.com> wrote: > > > in simple terms, any operation, in terms assembly instructions, which can > > be executed in ONE instruction, is "atomic", because, just like an atom, it > > cannot be broken up into parts. any instructions that is longer than one, > > for eg, TWO instruction, is NOT atomic, because in BETWEEN the first and > > 2nd instruction, something like an interrupt can come in, and affect the > > values of the operand when it is passed from instruction one to second > > instruction. To save me from reiteration: > > > > http://www.ibm.com/developerworks/library/pa-dalign/ (search for > > "atomicity"). > > > > http://stackoverflow.com/questions/381244/purpose-of-memory-alignment > > > > http://lwn.net/Articles/260832/ > > > > http://www.songho.ca/misc/alignment/dataalign.html > > > > > > http://www.cis.upenn.edu/~palsetia/cit595s08/Lectures08/alignmentOrdering.pdf > > > > Essentially, atomicity and non-alignment become problematic when u tried > > to to read using non-byte addressing mode with non-aligned address. > > > > On Sun, Feb 24, 2013 at 5:42 PM, Shraddha Kamat <sh2008ka@gmail.com>wrote: > > > >> what is the relation between atomic operations and memory alignment ? > >> > >> I read from UTLK that "an unaligned memory access is not atomic" > >> > >> please explain me , I am not able to get the relationship between > >> memory alignment and atomicity of the operation. It seems for this same reason, every objects of a struct page is organized as double word. <snip from linux/mm_types.h> * The objects in struct page are organized in double word blocks in * order to allows us to use atomic double word operations on portions * of struct page. That is currently only used by slub but the arrangement * allows the use of atomic double word operations on the flags/mapping * and lru list pointers also. <snip from linux/mm_types.h> -Amit
participants (2)
-
Kumar amit mehta -
Peter Teoh