Midterm evaluation of atomic operation support for rtems

yangwei weiyang wei.a.yang at gmail.com
Tue Jul 10 10:54:54 UTC 2012


Hi all,

This is the status report about my project "atomic operation support
for RTEMS".

Done:
1. Atomic operation API design for RTEMS.
2. Atomic operation implementation for i386 architecture on RTEMS.
3. Seven test cases have been added and run successfully. These test
cases include:
   (1).Atomic load generic function with memory_order_relaxed option test case.
   (2).Atomic store generic function with memory_order_relaxed option
test case.
   (3).Atomic_fetch-and-add generic function with memory_order_relaxed
option test case.
   (4).Atomic_fetch-and-sub generic function with memory_order_relaxed
option test case.
   (5).Atomic_fetch-and-and generic function with memory_order_relaxed
option test case.
   (6).Atomic_fetch-and-or generic function with memory_order_relaxed
option test case.
   (7).Atomic_compare_exchange generic function with
memory_order_relaxed option test case.

Todo:
1. Add test cases for all atomic operations with other two memory
barrier types option
   (memory_order_acquire and memory_order_release).

Source code repository:
https://github.com/WeiY/rtems.git
branch:atomic

How to build the RTEMS to test atomic operation:
1. cd ~/
2. git clone https://github.com/WeiY/rtems.git
3. git checkout  -b atomic origin/atomic
4. mkdir ~/rtems-build
5. mkdir ~/rtems-install
6. cd ~/rtems-build
7. ./build-atomic-rtems
The test cases will be install the rtems-install directory.

How to run atomic test cases on qemu:
./run-atomic-rtems.sh PATH/EXENAME.exe
Before you run the script you must have rtems boot image under
${HOME}/qemu/pc386_fda and you must create a directory ${HOME}/qemu/hd
to store your test case execute file.


PS:
1. There are three types of memory barrier option in the atomic
operation API definition.
   (memory_order_acquire, memory_order_release and memory_order_relaxed)

-- 
Wei Yang
Best Regards

wei.a.yang at gmail.com



More information about the devel mailing list