| From: |
| Huang Ying <ying.huang@intel.com> |
| To: |
| Andrew Morton <akpm@linux-foundation.org> |
| Subject: |
| [PATCH -mm -v8 0/3] Lockless memory allocator and list |
| Date: |
| Thu, 16 Dec 2010 14:59:01 +0800 |
| Message-ID: |
| <1292482744-12953-1-git-send-email-ying.huang@intel.com> |
| Cc: |
| linux-kernel@vger.kernel.org, Andi Kleen <andi@firstfloor.org>,
ying.huang@intel.com, Peter Zijlstra <peterz@infradead.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu> |
| Archive-link: |
| Article, Thread
|
This patchset adds a lockless memory allocator and a lock-less
list.
v8:
- Rebased on mmotm 2010-12-02
v7:
- Revise ARCH_HAVE_NMI_SAFE_CMPXCHG definition for some architectures
according to architecture maitainers' comments.
- Remove spin_trylock_irqsave based fallback for lockless memory allocator,
because it does not work for !CONFIG_SMP and is not likely to be used.
- Make lockless memory allocator and list does not depend on
ARCH_HAVE_NMI_SAFE_CMPXCHG. Instead, require the user to depend on it
when needed. And BUG_ON(in_nmi()) is added in necessary place to prevent
silent race.
v6:
- Revise ARCH_HAVE_NMI_SAFE_CMPXCHG definition for some architectures
according to architecture maitainers' comments.
v5:
- Add ARCH_HAVE_NMI_SAFE_CMPXCHG
- Add spin_trylock_irqsave based fallback in lockless memory allocator
if ARCH_HAVE_NMI_SAFE_CMPXCHG=n
- Make lockless list depends on ARCH_HAVE_NMI_SAFE_CMPXCHG
v4:
- Split from APEI patchset
- Update patch description and comments according to ML comments
v3:
- Rework lockless memory allocator and list according to ML comments
[PATCH -mm -v8 1/3] Add Kconfig option ARCH_HAVE_NMI_SAFE_CMPXCHG
[PATCH -mm -v8 2/3] lib, Make gen_pool memory allocator lockless
[PATCH -mm -v8 3/3] lib, Add lock-less NULL terminated single list
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/