From: Pavel Emelianov <xemul@sw.ru>
To: Ingo Molnar <mingo@redhat.com>,
Arjan van de Ven <arjan@linux.intel.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [RFC] Lockdep VS rw-semaphores strangeness
Date: Fri, 06 Apr 2007 14:14:28 +0400 [thread overview]
Message-ID: <46161D84.9030706@sw.ru> (raw)
[-- Attachment #1: Type: text/plain, Size: 837 bytes --]
Hello Ingo, Arjan.
I'm playing with lockdep and have a question about rw-sems.
down_read_trylock() looks like
int down_read_trylock(struct rw_semaphore *sem)
{
int ret = __down_read_trylock(sem);
if (ret == 1)
rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_);
return ret;
}
i.e. it calls rwsem_acquire_read() with trylock == 1.
But down_write_trylock() -
int down_write_trylock(struct rw_semaphore *sem)
{
int ret = __down_write_trylock(sem);
if (ret == 1)
rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);
return ret;
}
- calls lockdep with trylock set to 0. Why?
I've already caught a fake warning when trying to write-lock
an mm->mmap_sem with another mm's mmap_sem write-locked. With the
patch attached everything works, fine.
Did I miss something?
[-- Attachment #2: diff-lockdep-rwsem-trylock --]
[-- Type: text/plain, Size: 356 bytes --]
--- ./kernel/rwsem.c.pbonrem 2007-03-06 19:09:50.000000000 +0300
+++ ./kernel/rwsem.c 2007-04-06 14:02:18.000000000 +0400
@@ -60,7 +60,7 @@ int down_write_trylock(struct rw_semapho
int ret = __down_write_trylock(sem);
if (ret == 1)
- rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);
+ rwsem_acquire(&sem->dep_map, 0, 1, _RET_IP_);
return ret;
}
next reply other threads:[~2007-04-06 10:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-06 10:14 Pavel Emelianov [this message]
2007-04-06 14:04 ` [RFC] Lockdep VS rw-semaphores strangeness Arjan van de Ven
2007-04-06 14:19 ` Pavel Emelianov
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=46161D84.9030706@sw.ru \
--to=xemul@sw.ru \
--cc=arjan@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.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.