All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Eric Wong <normalperson@yhbt.net>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>,
	linux-kernel@vger.kernel.org,
	Davide Libenzi <davidel@xmailserver.org>
Subject: Re: wfcqueue (in Userspace RCU) for Linux kernel (for epoll)
Date: Mon, 11 Mar 2013 17:25:10 -0400	[thread overview]
Message-ID: <20130311212510.GA9829@Krystal> (raw)
In-Reply-To: <20130311193541.GA11149@dcvr.yhbt.net>

* Eric Wong (normalperson@yhbt.net) wrote:
> Hi, I'm looking to reduce contention for the ep->lock spin lock in epoll.
> 
> I came across wfcqueue in Userspace RCU and am wondering if there's any
> reason (other that lack of developer time/users) it hasn't been adapted
> for the Linux kernel.
> 
> I'd be happy to do the work if it's suitable (and omit parts which
> may not be, such as busy wait).

Hi Eric,

I'm glad you're interested in our data structure!

I actually have a port ready, I just lacked the time for thorough
testing and also lacked users of the API at kernel-level. It looks like
now would be a good time to send the patch your way as a RFC!

> Using a mutex lock (while in process context) for dequeue works for
> epoll.  I mainly want a lock-free enqueue for ep_poll_callback since
> that may be called in IRQ context.

You'd get even better than this: wait-free enqueue, with a simple xchg
and store.

> 
> I suppose I can also use the llist LIFO in ep_poll_callback and
> reverse that while in process context, too...

Yeah, but that seems more expensive than just having the list in the
right order already. ;)

Patch incoming in a separate post,

Thanks,

Mathieu

> 
> 
> ref: http://git.lttng.org/userspace-rcu.git

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

      reply	other threads:[~2013-03-11 21:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-11 19:35 wfcqueue (in Userspace RCU) for Linux kernel (for epoll) Eric Wong
2013-03-11 21:25 ` Mathieu Desnoyers [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130311212510.GA9829@Krystal \
    --to=mathieu.desnoyers@efficios.com \
    --cc=davidel@xmailserver.org \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=normalperson@yhbt.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.