From: Chris Metcalf <cmetcalf@tilera.com>
To: Cypher Wu <cypher.w@gmail.com>
Cc: David Miller <davem@davemloft.net>, <xiyou.wangcong@gmail.com>,
<linux-kernel@vger.kernel.org>, <eric.dumazet@gmail.com>,
<netdev@vger.kernel.org>
Subject: Re: IGMP and rwlock: Dead ocurred again on TILEPro
Date: Sun, 20 Feb 2011 08:33:02 -0500 [thread overview]
Message-ID: <4D61180E.4090608@tilera.com> (raw)
In-Reply-To: <AANLkTi=uQTQjrXn4_w-YwKCutpENFdFrxQed5kVKXTDF@mail.gmail.com>
On 2/18/2011 11:07 PM, Cypher Wu wrote:
> On Sat, Feb 19, 2011 at 5:51 AM, Chris Metcalf <cmetcalf@tilera.com> wrote:
>> I heard from one of our support folks that you were asking through that
>> channel, so I asked him to go ahead and give you the spinlock sources
>> directly. I will be spending time next week syncing up our internal tree
>> with the public git repository so you'll see it on LKML at that time.
> I've got your source code, thank you very much.
>
> There is still two more question:
> 1. Why we merge the inlined code and the *_slow into none inlined functions?
Those functions were always borderline in terms of being sensible inlined
functions. In my opinion, adding the SPR writes as well pushed them over
the edge, so I made them just straight function calls instead, for code
density reasons. It also makes the code simpler, which is a plus. And
since I was changing the read_lock versions I changed the write_lock
versions as well for consistency.
> 2. I've seen the use of 'mb()' in unlock operation, but we don't use
> that in the lock operation.
You don't need a memory barrier when acquiring a lock. (Well, some
architectures require a read barrier, but Tile doesn't speculate loads past
control dependencies at the moment.)
> I've released a temporary version with that modification under our
> customer' demand, since they want to do a long time test though this
> weekend. I'll appreciate that if you gave some comment on my
> modifications:
It seems OK functionally, and has the advantage of addressing the deadlock
without changing the module API, so it's appropriate if you're trying to
maintain binary compatibility.
--
Chris Metcalf, Tilera Corp.
http://www.tilera.com
next prev parent reply other threads:[~2011-02-20 13:33 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-17 3:39 Fwd: IGMP and rwlock: Dead ocurred again on TILEPro Cypher Wu
2011-02-17 4:49 ` Américo Wang
2011-02-17 5:04 ` Cypher Wu
2011-02-17 5:42 ` Américo Wang
2011-02-17 5:46 ` David Miller
2011-02-17 6:39 ` Eric Dumazet
2011-02-17 22:49 ` Chris Metcalf
2011-02-17 22:53 ` David Miller
2011-02-17 23:04 ` Chris Metcalf
2011-02-17 23:11 ` David Miller
2011-02-17 23:18 ` Chris Metcalf
2011-02-18 3:16 ` Cypher Wu
2011-02-18 3:19 ` Cypher Wu
2011-02-18 7:08 ` Cypher Wu
2011-02-18 21:51 ` Chris Metcalf
2011-02-19 4:07 ` Cypher Wu
2011-02-20 13:33 ` Chris Metcalf [this message]
2011-03-01 18:30 ` [PATCH] arch/tile: fix deadlock bugs in rwlock implementation Chris Metcalf
2011-02-17 6:42 ` Fwd: IGMP and rwlock: Dead ocurred again on TILEPro Cypher Wu
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=4D61180E.4090608@tilera.com \
--to=cmetcalf@tilera.com \
--cc=cypher.w@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=xiyou.wangcong@gmail.com \
/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.