[PATCH 0/4] x86-32: improve atomic64_t functions (v3, for tip/x86/asm)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Luca Barbieri
Date: Wednesday, February 24, 2010 - 2:54 am

Changes in v3:
- Dropped alternatives CALL patch because tip/x86/asm already had that
  functionality
- Patch atomic64_32.h instead of atomic_32.h

Changes in v2:
- 386/486 is supported with a custom assembly implementation, the generic
  implementation is no longer used/modified
- dropped SSE code
- changed CALL alternative code to use a custom alternative type:
  insn parser no longer used
- several implementation improvements
- several formatting/style improvements
- merged 386 support into main patch

This patchset improves the atomic64_t functions on x86-32.
It also includes a testsuite that has been used to test this functionality
and can test any atomic64_t implementation.

It offers the following improvements:
1. Better code due to hand-written assembly (e.g. use of the ZF flag)
2. All atomic64 functions implemented
3. Support for 386/486 due to the ability to alternatively use either
   the cmpxchg8b assembly implementation or the 386 cli/popf assembly one

The first patch adds functionality to the alternatives system to support
the new atomic64_t code.
A patch that improves cmpxchg64() using that functionality is also included.

To test this code, enable CONFIG_ATOMIC64_SELFTEST, compile for 386 and
boot normally and with "clearcpuid=8".

You should receive a message stating that the atomic64 test passed,
along with the selected configuration.

386/486 SMP is not supported, following existing practice, but the code
is structured to allow to very easily add such support.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/4] x86-32: improve atomic64_t functions (v3, for ..., Luca Barbieri, (Wed Feb 24, 2:54 am)
[PATCH 3/4] lib: add self-test for atomic64_t, Luca Barbieri, (Wed Feb 24, 2:54 am)
[tip:x86/atomic] x86: Add support for lock prefix in alter ..., tip-bot for Luca Bar ..., (Thu Feb 25, 10:12 pm)
[tip:x86/atomic] x86-32: Allow UP/SMP lock replacement in ..., tip-bot for Luca Bar ..., (Thu Feb 25, 10:12 pm)
[tip:x86/atomic] lib: Add self-test for atomic64_t, tip-bot for Luca Bar ..., (Thu Feb 25, 10:13 pm)
[tip:x86/atomic] x86-32: Rewrite 32-bit atomic64 functions ..., tip-bot for Luca Bar ..., (Thu Feb 25, 10:13 pm)
[tip:x86/atomic] x86, atomic64: In selftest, distinguish x ..., tip-bot for H. Peter ..., (Mon Mar 1, 12:59 pm)
[tip:x86/atomic] x86: Fix LOCK_PREFIX_HERE for uniprocesso ..., tip-bot for H. Peter ..., (Thu Apr 29, 4:24 pm)