public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: chrubis@suse.cz
To: "zenglg.jy" <zenglg.jy@cn.fujitsu.com>
Cc: ltp-list <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH v5 1/2] lib/cloner.c: add more args
Date: Tue, 7 Jan 2014 15:09:11 +0100	[thread overview]
Message-ID: <20140107140910.GD27135@rei.Home> (raw)
In-Reply-To: <1387358991.1664.37.camel@G08JYZSD130126>

Hi!
> add args with ptid and ctid in ltp_clone().
> 
> Signed-off-by: Zeng Linggang <zenglg.jy@cn.fujitsu.com>
> ---
>  include/test.h |  2 +-
>  lib/cloner.c   | 20 ++++++++++++++++----
>  2 files changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/include/test.h b/include/test.h
> index 94fc721..ffc1c8c 100644
> --- a/include/test.h
> +++ b/include/test.h
> @@ -200,7 +200,7 @@ int self_exec(char *argv0, char *fmt, ...);
>  
>  /* Functions from lib/cloner.c */
>  int ltp_clone(unsigned long clone_flags, int (*fn)(void *arg), void *arg,
> -		size_t stack_size, void *stack);
> +		size_t stack_size, void *stack, ...);
>  int ltp_clone_malloc(unsigned long clone_flags, int (*fn)(void *arg),
>  		void *arg, size_t stacksize);
>  int ltp_clone_quick(unsigned long clone_flags, int (*fn)(void *arg),
> diff --git a/lib/cloner.c b/lib/cloner.c
> index a68ff1e..93e3f8c 100644
> --- a/lib/cloner.c
> +++ b/lib/cloner.c
> @@ -27,6 +27,7 @@
>  #include <string.h>
>  #include <stdlib.h>
>  #include <sched.h>
> +#include <stdarg.h>
>  #include "test.h"
>  
>  #undef clone			/* we want to use clone() */
> @@ -50,20 +51,31 @@ extern int __clone2(int (*fn) (void *arg), void *child_stack_base,
>   */
>  int
>  ltp_clone(unsigned long clone_flags, int (*fn) (void *arg), void *arg,
> -	  size_t stack_size, void *stack)
> +	  size_t stack_size, void *stack, ...)
>  {
>  	int ret;
> +	pid_t *parent_tid, *child_tid;
> +	void *tls;
> +	va_list arg_clone;
> +
> +	va_start(arg_clone, stack);
> +	parent_tid = va_arg(arg_clone, pid_t *);
> +	tls = va_arg(arg_clone, void *);
> +	child_tid = va_arg(arg_clone, pid_t *);
> +	va_end(arg_clone);
>  
>  #if defined(__hppa__) || defined(__metag__)
> -	ret = clone(fn, stack, clone_flags, arg);
> +	ret = clone(fn, stack, clone_flags, arg, parent_tid, tls, child_tid);
>  #elif defined(__ia64__)
> -	ret = clone2(fn, stack, stack_size, clone_flags, arg, NULL, NULL, NULL);
> +	ret = clone2(fn, stack, stack_size, clone_flags, arg,
> +		     parent_tid, tls, child_tid);
>  #else
>  	/*
>  	 * For archs where stack grows downwards, stack points to the topmost
>  	 * address of the memory space set up for the child stack.
>  	 */
> -	ret = clone(fn, (stack ? stack + stack_size : NULL), clone_flags, arg);
> +	ret = clone(fn, (stack ? stack + stack_size : NULL), clone_flags, arg,
> +		    parent_tid, tls, child_tid);
>  #endif
>  
>  	return ret;

Looks like this patch breaks compilation on older distributions, I've
got: "Too many arguments to function 'clone'". Has anybody seen this
too?

So this needs an autoconf check and few ifdefs.

And as we are about to create release this needs to be either fixed
ASAP or we will have to revert it for the release.

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  parent reply	other threads:[~2014-01-07 14:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-18  9:29 [LTP] [PATCH v5 1/2] lib/cloner.c: add more args zenglg.jy
2013-12-23  1:11 ` Wanlong Gao
2014-01-07 14:09 ` chrubis [this message]
     [not found]   ` <1389181297.2879.11.camel@G08JYZSD130126>
2014-01-08 13:20     ` chrubis
     [not found]   ` <1389191490.2879.27.camel@G08JYZSD130126>
2014-01-08 15:15     ` [LTP] [PATCH] clone/clone08.c: check whether clone supports 7 arguments chrubis
     [not found]       ` <1389254938.2025.3.camel@G08JYZSD130126>
2014-01-09 11:36         ` chrubis
     [not found]           ` <1389269411.2149.8.camel@G08JYZSD130126>
2014-01-09 13:27             ` [LTP] [PATCH???v3] lib/cloner.c: add function ltp_clone7 when clone supports???7 arguments chrubis
     [not found]             ` <201401090947.12749.vapier@gentoo.org>
2014-01-09 15:04               ` chrubis
2014-01-09 16:37               ` chrubis
     [not found]                 ` <629935924.13499645.1389289589284.JavaMail.root@redhat.com>
2014-01-09 18:08                   ` chrubis
     [not found]                     ` <201401091417.16506.vapier@gentoo.org>
2014-01-13 16:02                       ` chrubis
     [not found]     ` <201401081447.46449.vapier@gentoo.org>
2014-01-09 11:24       ` [LTP] [PATCH] clone/clone08.c: check whether clone supports 7 arguments chrubis
     [not found]     ` <201401090803.39606.vapier@gentoo.org>
2014-01-09 13:09       ` chrubis
     [not found]         ` <201401090900.59568.vapier@gentoo.org>
2014-01-09 14:34           ` chrubis
2014-01-09 13:23       ` Jan Stancek
2014-01-09 13:51         ` Mike Frysinger
2014-01-09 14:10           ` Jan Stancek
2014-01-09 14:30             ` Mike Frysinger
2014-01-09 14:39               ` 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=20140107140910.GD27135@rei.Home \
    --to=chrubis@suse.cz \
    --cc=ltp-list@lists.sourceforge.net \
    --cc=zenglg.jy@cn.fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox