From mboxrd@z Thu Jan 1 00:00:00 1970 From: laijs@cn.fujitsu.com (Lai Jiangshan) Date: Mon, 15 Oct 2012 11:00:17 +0800 Subject: [lttng-dev] [RFC] Feedback on 2 development branches: wfstack and lfstack In-Reply-To: <20121013181231.GA32276@Krystal> References: <20121013181231.GA32276@Krystal> Message-ID: <507B7C41.60208@cn.fujitsu.com> On 10/14/2012 02:12 AM, Mathieu Desnoyers wrote: > Hi! > > I started modifying the stack APIs to reflect the changes we did for > wfcqueue, and also add pop_all() and iterators. > > The volatile dev branches are available at: > > http://git.dorsal.polymtl.ca/~compudj?p=userspace-rcu;a=shortlog;h=refs/heads/urcu/lfstack I don't see the value of introducing struct cds_lfs_head. It can force the users to use for_each() for the return value of pop_all(). Is it its purpose? thr_dequeuer() of a8edcc02a25328647f91b4bbe8207e8cdfd317d3 is too complicated. ( I don't see the value of @counter) do { ... if (test_pop) { test_lfs_pop; } if (test_pop_all) { test_lfs_pop_all; } ... } while(); > or > git://git.dorsal.polymtl.ca/~compudj/userspace-rcu > branch: urcu/lfstack > > http://git.dorsal.polymtl.ca/~compudj?p=userspace-rcu;a=shortlog;h=refs/heads/urcu/wfstack > or > git://git.dorsal.polymtl.ca/~compudj/userspace-rcu > branch: urcu/wfstack > > Sorry for not sending patches, I'm a bit time-constrained this weekend. > I am sending these links right away for review, because I think it might > be good to pull these commits into the master branch before we proceed > to other changes. And I want to minimize the amount of duplicated effort > between Lai and myself. > > One of my next step will be to document the wfstack and lfstack APIs > more thoroughly (similarly to what we did for wfcqueue). > > Then, my following step will be to see if I can implement a lfcqueue > API, derived from wfcqueue, but with lock-free enqueue semantic (a mix > of wfcqueue and rculfqueue). > > Feedback is welcome! > > Thanks, > > Mathieu > >