Messages in this thread |  | | Subject | Re: [PATCH -v10 0/4] Lock-less list | | From | Huang Ying <> | | Date | Thu, 20 Jan 2011 09:09:56 +0800 |
| |
On Thu, 2011-01-20 at 08:52 +0800, Andrew Morton wrote: > On Thu, 20 Jan 2011 08:45:58 +0800 > Huang Ying <ying.huang@intel.com> wrote: > > > On Thu, 2011-01-20 at 05:55 +0800, Andrew Morton wrote: > > > I'm trying to remember why we're talking about this. > > > > > > You had an ACPI-based "hardware error reporting" thing. And that > > > required an nmi-context memory allocator. And that required a > > > "lockless" list implementation. > > > > > > Yes? > > > > Yes. But the "lockless" list implementation is general, it can be used > > by other part of kernel too, such as irq_work and xlist in > > net/rds/xlist.h in the patchset. > > Well. Lots of things are general but that doesn't mean we toss them > into the kernel when we already have plenty of infrastructure to handle > that sort of thing. > > otoh, hoisting xlist.h out of net/rds and making it generally available > is a good thing. > > otooh, net/rds/ probably didn't need xlist at all and could have used > existing general code.
From commit description of xlist, it seems that xlist is created for some performance issue.
commit 6fa70da6081bbcf948801fd5ee0be4d222298a43 Author: Chris Mason <chris.mason@oracle.com> Date: Fri Jun 11 11:17:59 2010 -0700
rds: recycle FMRs through lockless lists FRM allocation and recycling is performance critical and fairly lock intensive. The current code has a per connection lock that all processes bang on and it becomes a major bottleneck on large systems. This changes things to use a number of cmpxchg based lists instead, allowing us to go through the whole FMR lifecycle without locking inside RDS.
[snip]
So general list may be not good for them.
> So... I'd say that unless and until the NMI-context allocator is > merged, the case for merging the lockless list code is a bit marginal?
In fact, lockless allocator is not really depends on llist, it just depends on the ARCH_HAVE_NMI_SAFE_CMPXCHG patch in the patchset.
> Or have you identified other code sites which could use llist and which > would gain some benefit from migrating?
The llist will be used by APEI (ACPI Platform Error Interface, that is, an ACPI-based "hardware error reporting" thing). It may be used by other hardware error reporting mechanisms too, which involves NMI or NMI-like notification method.
Best Regards, Huang Ying
|  |