From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Michael Neuling <mikey@neuling.org>
Cc: Waiman Long <Waiman.Long@hp.com>,
ppc-dev <linuxppc-dev@lists.ozlabs.org>,
Peter Zijlstra <peterz@infradead.org>,
George Spelvin <linux@horizon.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"Chandramouleeswaran, Aswin" <aswin@hp.com>,
"Norton, Scott J" <scott.norton@hp.com>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>
Subject: Re: Avoiding the dentry d_lock on final dput(), part deux: transactional memory
Date: Tue, 1 Oct 2013 05:16:54 -0700 [thread overview]
Message-ID: <20131001121654.GX19582@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAEjGV6xuscOh=t6BhbdRKAPcZ1DOJkD6ZcB1wgTf9-AedKSaxA@mail.gmail.com>
On Tue, Oct 01, 2013 at 02:52:28PM +1000, Michael Neuling wrote:
> >> Well we don't have to, I think Mikey wasn't totally clear about that
> >> "making all registers volatile" business :-) This is just something we
> >> need to handle in assembly if we are going to reclaim the suspended
> >> transaction.
>
> Yeah, sorry. The slow path with all registers as volatile is only
> needed if we get pre-empted during the transaction.
>
> >>
> >> So basically, what we need is something along the lines of
> >> enable_kernel_tm() which checks if there's a suspended user transaction
> >> and if yes, kills/reclaims it.
> >>
> >> Then we also need to handle in our interrupt handlers that we have an
> >> active/suspended transaction from a kernel state, which we don't deal
> >> with at this point, and do whatever has to be done to kill it... we
> >> might get away with something simple if we can state that we only allow
> >> kernel transactions at task level and not from interrupt/softirq
> >> contexts, at least initially.
> >
> > Call me a coward, but this is starting to sound a bit scary. ;-)
>
> We are just wanting to prototype it for now to see if we could make it
> go faster. If it's worth it, then we'd consider the additional
> complexity this would bring.
>
> I don't think it'll be that bad, but I'd certainly want to make sure
> it's worth it before trying :-)
OK, fair point. ;-)
Thanx, Paul
WARNING: multiple messages have this Message-ID (diff)
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Michael Neuling <mikey@neuling.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Waiman Long <Waiman.Long@hp.com>,
"Chandramouleeswaran, Aswin" <aswin@hp.com>,
"Norton, Scott J" <scott.norton@hp.com>,
George Spelvin <linux@horizon.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
ppc-dev <linuxppc-dev@lists.ozlabs.org>
Subject: Re: Avoiding the dentry d_lock on final dput(), part deux: transactional memory
Date: Tue, 1 Oct 2013 05:16:54 -0700 [thread overview]
Message-ID: <20131001121654.GX19582@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAEjGV6xuscOh=t6BhbdRKAPcZ1DOJkD6ZcB1wgTf9-AedKSaxA@mail.gmail.com>
On Tue, Oct 01, 2013 at 02:52:28PM +1000, Michael Neuling wrote:
> >> Well we don't have to, I think Mikey wasn't totally clear about that
> >> "making all registers volatile" business :-) This is just something we
> >> need to handle in assembly if we are going to reclaim the suspended
> >> transaction.
>
> Yeah, sorry. The slow path with all registers as volatile is only
> needed if we get pre-empted during the transaction.
>
> >>
> >> So basically, what we need is something along the lines of
> >> enable_kernel_tm() which checks if there's a suspended user transaction
> >> and if yes, kills/reclaims it.
> >>
> >> Then we also need to handle in our interrupt handlers that we have an
> >> active/suspended transaction from a kernel state, which we don't deal
> >> with at this point, and do whatever has to be done to kill it... we
> >> might get away with something simple if we can state that we only allow
> >> kernel transactions at task level and not from interrupt/softirq
> >> contexts, at least initially.
> >
> > Call me a coward, but this is starting to sound a bit scary. ;-)
>
> We are just wanting to prototype it for now to see if we could make it
> go faster. If it's worth it, then we'd consider the additional
> complexity this would bring.
>
> I don't think it'll be that bad, but I'd certainly want to make sure
> it's worth it before trying :-)
OK, fair point. ;-)
Thanx, Paul
next prev parent reply other threads:[~2013-10-01 12:17 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-30 19:29 Avoiding the dentry d_lock on final dput(), part deux: transactional memory Linus Torvalds
2013-09-30 19:29 ` Linus Torvalds
2013-09-30 20:01 ` Waiman Long
2013-09-30 20:01 ` Waiman Long
2013-09-30 20:04 ` Linus Torvalds
2013-09-30 20:04 ` Linus Torvalds
2013-10-02 14:56 ` Andi Kleen
2013-10-02 14:56 ` Andi Kleen
2013-09-30 22:52 ` Benjamin Herrenschmidt
2013-09-30 22:52 ` Benjamin Herrenschmidt
2013-10-01 0:36 ` Michael Neuling
2013-10-01 0:36 ` Michael Neuling
2013-10-01 0:56 ` Linus Torvalds
2013-10-01 0:56 ` Linus Torvalds
2013-10-01 2:05 ` Benjamin Herrenschmidt
2013-10-01 2:05 ` Benjamin Herrenschmidt
2013-10-01 3:13 ` Paul E. McKenney
2013-10-01 3:13 ` Paul E. McKenney
2013-10-01 4:52 ` Michael Neuling
2013-10-01 4:52 ` Michael Neuling
2013-10-01 12:16 ` Paul E. McKenney [this message]
2013-10-01 12:16 ` Paul E. McKenney
2013-10-01 13:42 ` Paul E. McKenney
2013-10-01 13:42 ` Paul E. McKenney
2013-10-01 1:05 ` spinlock contention of files->file_lock Eric Dumazet
2013-10-01 1:44 ` Linus Torvalds
2013-10-01 2:18 ` Eric Dumazet
2013-10-01 21:41 ` Eric Dumazet
2013-10-01 22:04 ` Al Viro
2013-10-01 22:21 ` Eric Dumazet
2013-10-02 5:13 ` Ingo Molnar
2013-10-02 10:20 ` Al Viro
2013-10-02 10:56 ` Ingo Molnar
2013-10-01 1:53 ` Al Viro
2013-10-01 2:02 ` Linus Torvalds
2013-10-01 3:27 ` Al Viro
2013-10-01 3:36 ` Eric Dumazet
2013-10-01 5:12 ` Eric Dumazet
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=20131001121654.GX19582@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=Waiman.Long@hp.com \
--cc=aswin@hp.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@horizon.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mikey@neuling.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=scott.norton@hp.com \
--cc=torvalds@linux-foundation.org \
/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.