All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
To: ltp-list@lists.sourceforge.net
Cc: Dave Kleikamp <dave.kleikamp@oracle.com>
Subject: Re: [LTP] [PATCH] ltp: Fix races in mmap1
Date: Wed, 28 Aug 2013 17:48:09 +0400	[thread overview]
Message-ID: <521DFF99.4050000@oracle.com> (raw)
In-Reply-To: <521DF60B.9010401@oracle.com>


On 08/28/2013 05:07 PM, Dave Kleikamp wrote:
> Make map_address a volatile pointer so that it is dereferenced in
> read_mem() after read_lock is set.
>
> Also read_lock must protect the verbose printf that reads from map_address
> as well.
>
> Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
>
> diff --git a/testcases/kernel/mem/mtest06/mmap1.c b/testcases/kernel/mem/mtest06/mmap1.c
> index 7c80bb4..cd1127f 100644
> --- a/testcases/kernel/mem/mtest06/mmap1.c
> +++ b/testcases/kernel/mem/mtest06/mmap1.c
> @@ -62,7 +62,7 @@
>   } while (0)
>   
>   static int verbose_print = 0;
> -static char *map_address;
> +static char *volatile map_address;
>   static jmp_buf jmpbuf;
>   static volatile char read_lock = 0;
>   
> @@ -228,11 +228,13 @@ void *read_mem(void *ptr)
>   				tst_resm(TINFO, "page fault occurred due to "
>   					 "a read after an unmap");
>   		} else {
> -			if (verbose_print)
> +			if (verbose_print) {
> +				read_lock = 1;
>   				tst_resm(TINFO,
>   					 "read_mem(): content of memory: %s",
>   					 (char *)map_address);
> -
> +				read_lock = 0;
> +			}
>   			for (j = 0; j < args[1]; j++) {
>   				read_lock = 1;
>   				if (map_address[j] != 'a')
>
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
> _______________________________________________
> Ltp-list mailing list
> Ltp-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ltp-list

Just in case.. To reproduce failures we need to invoke the test this 
way, for example:

   ./mmap1 -v -s 10

and then wait few minutes (it depends...)


------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  reply	other threads:[~2013-08-28 13:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-28 13:07 [LTP] [PATCH] ltp: Fix races in mmap1 Dave Kleikamp
2013-08-28 13:48 ` Stanislav Kholmanskikh [this message]
2013-08-28 14:33 ` chrubis

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=521DFF99.4050000@oracle.com \
    --to=stanislav.kholmanskikh@oracle.com \
    --cc=dave.kleikamp@oracle.com \
    --cc=ltp-list@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 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.