From: "Jiaying Zhang" <jiayingz@google.com>
To: Jeff Dike <jdike@addtoit.com>
Cc: user-mode-linux-devel@lists.sourceforge.net
Subject: Re: [uml-devel] 2.6.25 uml kernel crashes when it calls down() on a semaphore with zero counter
Date: Wed, 16 Jul 2008 17:52:32 +0800 [thread overview]
Message-ID: <5df78e1d0807160252j1b610c41la1a2f5092ae04be7@mail.gmail.com> (raw)
In-Reply-To: <20080714144612.GA5751@c2.user-mode-linux.org>
[-- Attachment #1.1: Type: text/plain, Size: 2076 bytes --]
On Mon, Jul 14, 2008 at 10:46 PM, Jeff Dike <jdike@addtoit.com> wrote:
> On Mon, Jul 14, 2008 at 05:06:49PM +0800, Jiaying Zhang wrote:
> > The 2.6.24 kernels are OK, but I have seen this problem with all of the
> > 2.6.25 kernels I have tried. There have been a lot of changes between
> > 2.6.24 kernels and 2.6.25 kernels. I am not sure which one may lead
> > to this problem.
>
> So bisect it.
The problem seems to be related to the getting rid of fastcall changes
introduced in 2.6.25 kernels. I found the problem started to happen from
commit 82f74e7159749cc511ebf5954a7b9ea6ad634949: x86: unify
include/asm-x86/linkage_[32|64].h.
After that, several commits related to __down_interruptible had been
checked in, but they did not solve the crashing problem I saw.
In particular, I thought the d50efc6c40620b2e11648cac64ebf4a824e40382
x86: fix UML and -regparm=3 commit would solve the problem because it
adds the asmregparm macro that is the same as fastcall and uses the macro
for __down_failed_interruptible declaration. Unfortunately, I tried that
version
of git code and saw the same problem happened.
> > Looks like the problem happens when __down_interruptible is called.
> > I checked the semaphore passed to __down_interruptible under gdb
> > and found it was corrupted:
> > (gdb) f 18
> > #18 __down_interruptible (sem=0x9f68d08) at include/linux/list.h:50
> > 50 prev->next = new;
> > (gdb) p sem
> > $15 = (struct semaphore *) 0x9f68d08
> > (gdb) p *sem
> > $16 = {count = {counter = -268435295}, sleepers = 4, wait = {lock =
> > {raw_lock = {<No data fields>}}, task_list = {
> > next = 0x9f68d5c, prev = 0x18124}}}
> >
> > But the semaphore looks correct before calling down_interruptible:
>
> What's the problem with debugging this, then? You step through the
> code starting when the semaphore is good and see exactly when it gets
> corrupted.
>
Yes. Looks like the corruption happens when __down_failed_interruptible()
calls __down_interruptible() and it has something to do with the 2.6.25's
x86
gcc attribute changes.
Jiaying
[-- Attachment #1.2: Type: text/html, Size: 2814 bytes --]
[-- Attachment #2: Type: text/plain, Size: 363 bytes --]
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
[-- Attachment #3: Type: text/plain, Size: 194 bytes --]
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
next prev parent reply other threads:[~2008-07-16 9:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-03 7:53 [SPAM] [uml-devel] 2.6.25 uml kernel crashes when it calls down() on a semaphore with zero counter Jiaying Zhang
2008-07-03 13:56 ` [SPAM] " Jeff Dike
2008-07-04 1:06 ` Jiaying Zhang
2008-07-10 2:25 ` Jiaying Zhang
2008-07-10 17:02 ` Jeff Dike
2008-07-14 9:06 ` Jiaying Zhang
2008-07-14 14:46 ` Jeff Dike
2008-07-16 9:52 ` Jiaying Zhang [this message]
2008-07-17 4:55 ` Jiaying Zhang
2008-07-18 20:53 ` Jeff Dike
2008-07-20 15:20 ` Mattia Dongili
2008-07-20 15:44 ` Jeff Dike
2008-07-21 12:54 ` Mattia Dongili
2008-08-02 5:54 ` Mattia Dongili
2008-08-04 16:44 ` Jeff Dike
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=5df78e1d0807160252j1b610c41la1a2f5092ae04be7@mail.gmail.com \
--to=jiayingz@google.com \
--cc=jdike@addtoit.com \
--cc=user-mode-linux-devel@lists.sourceforge.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox