All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Liang, RenXiu" <RenXiu.Liang@windriver.com>
To: ltp-list@lists.sf.net
Subject: [LTP] [Patch] Fix mtest06 failure: caught unexpected signal - 11 --- exiting
Date: Tue, 17 Aug 2010 07:57:00 +0200	[thread overview]
Message-ID: <52CF90264091A14888078A031D780F4305936FA5@ism-mail03.corp.ad.wrs.com> (raw)
In-Reply-To: 52CF90264091A14888078A031D780F4305936FA4@ism-mail03.corp.ad.wrs.com


[-- Attachment #1.1: Type: text/plain, Size: 1342 bytes --]

In mtest06/mmap1.c, when handling the signal 11 in sig_handler, it doesn't cover another two race conditions:
one is si_code equals "SEGV_MAPERR" but si_address does not equal to map_address;
and one is si_code equals to "SEGV_ACCERR"; see below error log:

<<<test_start>>>
tag=mtest06 stime=1270902396
cmdline="  mmap1 -x 0.05"
contacts=""
analysis=exit
initiation_status="ok"
<<<test_output>>>
mmap1       0  INFO  :  pid[5456]: map, change contents, unmap files
1000 times
mmap1       0  INFO  :  created thread[1216369840]
mmap1       0  INFO  :  pid[5456] - read contents of memory 0x48002000
1000 times
mmap1       0  INFO  :  page fault occurred at 0x48002000
mmap1       0  INFO  :  page fault occurred at 0x48002000
mmap1       0  INFO  :  page fault occurred at 0x48002000
mmap1       0  INFO  :  page fault occurred at 0x48002000
......
mmap1       0  INFO  :  page fault occurred at 0x48002000
mmap1       0  INFO  :  page fault occurred at 0x48002000
caught unexpected signal - 11 --- exiting
<<<execution_status>>>
duration=1 termination_type=exited termination_id=255 corefile=no
cutime=0 cstime=4
<<<test_end>>>

After cover all the three race conditions in one case in sig_handler(), run mtest06 repeatedly, test will not fail by catching signal 11.

See attached patch.

Thanks,
Renxiu


[-- Attachment #1.2: Type: text/html, Size: 2431 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-sig_handler-for-SIGSEGV-in-mmap1.c.patch --]
[-- Type: text/x-patch; name="0001-Fix-sig_handler-for-SIGSEGV-in-mmap1.c.patch", Size: 1697 bytes --]

From cb3a3032acf818a69e6d7bd028d4b0c927b0fac4 Mon Sep 17 00:00:00 2001
From: Renxiu Liang <renxiu.liang@windriver.com>
Date: Mon, 16 Aug 2010 19:57:54 -0700
Subject: [PATCH 1/1] Fix sig_handler() for SIGSEGV in mmap1.c

"mtest06" is aimed at stressing the memory manager by simultanious
map/unmap/read by light weight processes; it tries to handle
SIGSEGV signal in sig_handler instead of doing synchronizations
between read and write threads; two more race conditions are
not covered: one is si_code equals "SEGV_MAPERR" but si_address
does not equal to map_address; the other is si_code equals to
"SEGV_ACCERR"; try to cover the three conditions in one case
to reduce the complexity.

Signed-off-by: Renxiu Liang <renxiu.liang@windriver.com>
---
 testcases/kernel/mem/mtest06/mmap1.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/testcases/kernel/mem/mtest06/mmap1.c b/testcases/kernel/mem/mtest06/mmap1.c
index 47ab49a..7eb3547 100644
--- a/testcases/kernel/mem/mtest06/mmap1.c
+++ b/testcases/kernel/mem/mtest06/mmap1.c
@@ -168,14 +168,10 @@ sig_handler(int signal,		/* signal number, set to handle SIGALRM       */
              _exit(0);
 
         case SIGSEGV:
-             if (info->si_code == SEGV_MAPERR &&
-                      info->si_addr == map_address)
-             {
-                  tst_resm(TINFO,
+             tst_resm(TINFO,
                     "page fault occurred at %p",
                     map_address);
-                  longjmp(jmpbuf, 1);
-             }
+             longjmp(jmpbuf, 1);
         default:
             fprintf(stderr, "caught unexpected signal - %d --- exiting\n",
                      signal);
-- 
1.6.1


[-- Attachment #3: Type: text/plain, Size: 224 bytes --]

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]

_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

       reply	other threads:[~2010-08-17  5:58 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <52CF90264091A14888078A031D780F4305936FA4@ism-mail03.corp.ad.wrs.com>
2010-08-17  5:57 ` Liang, RenXiu [this message]
2010-09-06 16:17   ` [LTP] [Patch] Fix mtest06 failure: caught unexpected signal - 11 --- exiting Subrata Modak
2010-08-18  7:33 renxiu liang
2010-08-18  8:35 ` Garrett Cooper
2010-08-26  3:36 ` Garrett Cooper
2010-08-31  1:51   ` renxiu liang
2010-09-01  7:26     ` Garrett Cooper
2010-09-01  7:27       ` Garrett Cooper
     [not found]         ` <1284874992.12271.5.camel@PEK-RLIANG-D1>
     [not found]           ` <4C95AF8A.8000803@in.ibm.com>
     [not found]             ` <1284878205.12271.9.camel@PEK-RLIANG-D1>
     [not found]               ` <4C95B7D9.5060801@in.ibm.com>
2010-09-19  7:17                 ` Suzuki Poulose
2010-09-25  3:43                   ` renxiu liang
2010-09-06 16:16 Subrata Modak

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=52CF90264091A14888078A031D780F4305936FA5@ism-mail03.corp.ad.wrs.com \
    --to=renxiu.liang@windriver.com \
    --cc=ltp-list@lists.sf.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.