* [LTP] [PATCH] getrusage04: add opportunity to increase the max [us]time increment
@ 2012-02-23 8:23 Filippo ARCIDIACONO
2012-02-23 9:42 ` Wanlong Gao
0 siblings, 1 reply; 4+ messages in thread
From: Filippo ARCIDIACONO @ 2012-02-23 8:23 UTC (permalink / raw)
To: ltp-list
From: Filippo Arcidiacono <filippo.arcidiacono@st.com>
On slow systems it could be needed to increase the max value [us]time
increment beetween two getrusage calls.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Salvatore Cro <salvatore.cro@st.com>
---
testcases/kernel/syscalls/getrusage/getrusage04.c | 42 +++++++++++++++++---
1 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/testcases/kernel/syscalls/getrusage/getrusage04.c b/testcases/kernel/syscalls/getrusage/getrusage04.c
index 3bdd3b0..92f8361 100644
--- a/testcases/kernel/syscalls/getrusage/getrusage04.c
+++ b/testcases/kernel/syscalls/getrusage/getrusage04.c
@@ -54,11 +54,22 @@ int TST_TOTAL = 1;
#define BIAS_MAX 1000
#define RECORD_MAX 20
+#define FACTOR_MAX 10
#ifndef RUSAGE_THREAD
#define RUSAGE_THREAD 1
#endif
+static int opt_factor;
+static char *factor_str;
+static long factor_nr = 1;
+
+option_t child_options[] = {
+ { "m:", &opt_factor, &factor_str },
+ { NULL, NULL, NULL }
+};
+
+static void fusage(void);
static void busyloop(long wait);
static void setup(void);
static void cleanup(void);
@@ -69,8 +80,9 @@ int main(int argc, char *argv[])
unsigned long ulast, udelta, slast, sdelta;
int i, lc;
char *msg;
+ char msg_string[BUFSIZ];
- msg = parse_opts(argc, argv, NULL, NULL);
+ msg = parse_opts(argc, argv, child_options, fusage);
if (msg != NULL)
tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -80,6 +92,11 @@ int main(int argc, char *argv[])
setup();
+ if (opt_factor)
+ factor_nr = SAFE_STRTOL(cleanup, factor_str, 0, FACTOR_MAX);
+
+ tst_resm(TINFO, "Using %ld as multiply factor for max [us]time increment (1000+%ldus)!", factor_nr, BIAS_MAX * factor_nr);
+
for (lc = 0; TEST_LOOPING(lc); lc++) {
Tst_count = 0; i = 0;
ulast = 0, slast = 0;
@@ -95,14 +112,20 @@ int main(int argc, char *argv[])
tst_resm(TINFO, "utime:%12luus; stime:%12luus",
usage.ru_utime.tv_usec,
usage.ru_stime.tv_usec);
- if (udelta > 1000+BIAS_MAX)
- tst_brkm(TFAIL, cleanup,
- "utime increased > 1000us:"
+ if (udelta > 1000+(BIAS_MAX * factor_nr)) {
+ sprintf(msg_string,
+ "utime increased > %ldus:",
+ 1000 + BIAS_MAX * factor_nr);
+ tst_brkm(TFAIL, cleanup, msg_string,
" delta = %luus", udelta);
- if (sdelta > 1000+BIAS_MAX)
- tst_brkm(TFAIL, cleanup,
- "stime increased > 1000us:"
+ }
+ if (sdelta > 1000+(BIAS_MAX * factor_nr)) {
+ sprintf(msg_string,
+ "stime increased > %ldus:",
+ 1000 + BIAS_MAX * factor_nr);
+ tst_brkm(TFAIL, cleanup, msg_string,
" delta = %luus", sdelta);
+ }
}
ulast = usage.ru_utime.tv_usec;
slast = usage.ru_stime.tv_usec;
@@ -113,6 +136,11 @@ int main(int argc, char *argv[])
tst_exit();
}
+static void fusage(void)
+{
+ printf(" -m n use n as multiply factor for max [us]time increment (1000+(1000*n)us), default value is 1\n");
+}
+
static void busyloop(long wait)
{
while (wait--)
--
1.5.5.6
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [LTP] [PATCH] getrusage04: add opportunity to increase the max [us]time increment
2012-02-23 8:23 [LTP] [PATCH] getrusage04: add opportunity to increase the max [us]time increment Filippo ARCIDIACONO
@ 2012-02-23 9:42 ` Wanlong Gao
2012-02-23 10:21 ` Filippo ARCIDIACONO
0 siblings, 1 reply; 4+ messages in thread
From: Wanlong Gao @ 2012-02-23 9:42 UTC (permalink / raw)
To: Filippo ARCIDIACONO; +Cc: ltp-list
On 02/23/2012 04:23 PM, Filippo ARCIDIACONO wrote:
> From: Filippo Arcidiacono <filippo.arcidiacono@st.com>
>
> On slow systems it could be needed to increase the max value [us]time
> increment beetween two getrusage calls.
>
> Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
> Signed-off-by: Salvatore Cro <salvatore.cro@st.com>
> ---
> testcases/kernel/syscalls/getrusage/getrusage04.c | 42 +++++++++++++++++---
> 1 files changed, 35 insertions(+), 7 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/getrusage/getrusage04.c b/testcases/kernel/syscalls/getrusage/getrusage04.c
> index 3bdd3b0..92f8361 100644
> --- a/testcases/kernel/syscalls/getrusage/getrusage04.c
> +++ b/testcases/kernel/syscalls/getrusage/getrusage04.c
> @@ -54,11 +54,22 @@ int TST_TOTAL = 1;
>
> #define BIAS_MAX 1000
> #define RECORD_MAX 20
> +#define FACTOR_MAX 10
>
> #ifndef RUSAGE_THREAD
> #define RUSAGE_THREAD 1
> #endif
>
> +static int opt_factor;
> +static char *factor_str;
> +static long factor_nr = 1;
> +
> +option_t child_options[] = {
> + { "m:", &opt_factor, &factor_str },
> + { NULL, NULL, NULL }
> +};
> +
> +static void fusage(void);
> static void busyloop(long wait);
> static void setup(void);
> static void cleanup(void);
> @@ -69,8 +80,9 @@ int main(int argc, char *argv[])
> unsigned long ulast, udelta, slast, sdelta;
> int i, lc;
> char *msg;
> + char msg_string[BUFSIZ];
>
> - msg = parse_opts(argc, argv, NULL, NULL);
> + msg = parse_opts(argc, argv, child_options, fusage);
> if (msg != NULL)
> tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
>
> @@ -80,6 +92,11 @@ int main(int argc, char *argv[])
>
> setup();
>
> + if (opt_factor)
> + factor_nr = SAFE_STRTOL(cleanup, factor_str, 0, FACTOR_MAX);
> +
> + tst_resm(TINFO, "Using %ld as multiply factor for max [us]time increment (1000+%ldus)!", factor_nr, BIAS_MAX * factor_nr);
Could you please fix the over 80 characters warning?
> +
> for (lc = 0; TEST_LOOPING(lc); lc++) {
> Tst_count = 0; i = 0;
> ulast = 0, slast = 0;
> @@ -95,14 +112,20 @@ int main(int argc, char *argv[])
> tst_resm(TINFO, "utime:%12luus; stime:%12luus",
> usage.ru_utime.tv_usec,
> usage.ru_stime.tv_usec);
> - if (udelta > 1000+BIAS_MAX)
> - tst_brkm(TFAIL, cleanup,
> - "utime increased > 1000us:"
> + if (udelta > 1000+(BIAS_MAX * factor_nr)) {
> + sprintf(msg_string,
> + "utime increased > %ldus:",
> + 1000 + BIAS_MAX * factor_nr);
> + tst_brkm(TFAIL, cleanup, msg_string,
> " delta = %luus", udelta);
> - if (sdelta > 1000+BIAS_MAX)
> - tst_brkm(TFAIL, cleanup,
> - "stime increased > 1000us:"
> + }
> + if (sdelta > 1000+(BIAS_MAX * factor_nr)) {
> + sprintf(msg_string,
> + "stime increased > %ldus:",
> + 1000 + BIAS_MAX * factor_nr);
> + tst_brkm(TFAIL, cleanup, msg_string,
> " delta = %luus", sdelta);
> + }
> }
> ulast = usage.ru_utime.tv_usec;
> slast = usage.ru_stime.tv_usec;
> @@ -113,6 +136,11 @@ int main(int argc, char *argv[])
> tst_exit();
> }
>
> +static void fusage(void)
> +{
> + printf(" -m n use n as multiply factor for max [us]time increment (1000+(1000*n)us), default value is 1\n");
ditto
Thanks
-Wanlong Gao
> +}
> +
> static void busyloop(long wait)
> {
> while (wait--)
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [LTP] [PATCH] getrusage04: add opportunity to increase the max [us]time increment
2012-02-23 9:42 ` Wanlong Gao
@ 2012-02-23 10:21 ` Filippo ARCIDIACONO
0 siblings, 0 replies; 4+ messages in thread
From: Filippo ARCIDIACONO @ 2012-02-23 10:21 UTC (permalink / raw)
To: gaowanlong; +Cc: ltp-list
> -----Original Message-----
> From: Wanlong Gao [mailto:gaowanlong@cn.fujitsu.com]
> Sent: Thursday, February 23, 2012 10:42 AM
> To: Filippo ARCIDIACONO
> Cc: ltp-list@lists.sourceforge.net
> Subject: Re: [LTP] [PATCH] getrusage04: add opportunity to increase the
> max [us]time increment
>
> On 02/23/2012 04:23 PM, Filippo ARCIDIACONO wrote:
>
> > From: Filippo Arcidiacono <filippo.arcidiacono@st.com>
> >
> > On slow systems it could be needed to increase the max value [us]time
> > increment beetween two getrusage calls.
> >
> > Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
> > Signed-off-by: Salvatore Cro <salvatore.cro@st.com>
> > ---
> > testcases/kernel/syscalls/getrusage/getrusage04.c | 42
> +++++++++++++++++---
> > 1 files changed, 35 insertions(+), 7 deletions(-)
> >
> > diff --git a/testcases/kernel/syscalls/getrusage/getrusage04.c
> b/testcases/kernel/syscalls/getrusage/getrusage04.c
> > index 3bdd3b0..92f8361 100644
> > --- a/testcases/kernel/syscalls/getrusage/getrusage04.c
> > +++ b/testcases/kernel/syscalls/getrusage/getrusage04.c
> > @@ -54,11 +54,22 @@ int TST_TOTAL = 1;
> >
> > #define BIAS_MAX 1000
> > #define RECORD_MAX 20
> > +#define FACTOR_MAX 10
> >
> > #ifndef RUSAGE_THREAD
> > #define RUSAGE_THREAD 1
> > #endif
> >
> > +static int opt_factor;
> > +static char *factor_str;
> > +static long factor_nr = 1;
> > +
> > +option_t child_options[] = {
> > + { "m:", &opt_factor, &factor_str },
> > + { NULL, NULL, NULL }
> > +};
> > +
> > +static void fusage(void);
> > static void busyloop(long wait);
> > static void setup(void);
> > static void cleanup(void);
> > @@ -69,8 +80,9 @@ int main(int argc, char *argv[])
> > unsigned long ulast, udelta, slast, sdelta;
> > int i, lc;
> > char *msg;
> > + char msg_string[BUFSIZ];
> >
> > - msg = parse_opts(argc, argv, NULL, NULL);
> > + msg = parse_opts(argc, argv, child_options, fusage);
> > if (msg != NULL)
> > tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
> >
> > @@ -80,6 +92,11 @@ int main(int argc, char *argv[])
> >
> > setup();
> >
> > + if (opt_factor)
> > + factor_nr = SAFE_STRTOL(cleanup, factor_str, 0,
> FACTOR_MAX);
> > +
> > + tst_resm(TINFO, "Using %ld as multiply factor for max [us]time
> increment (1000+%ldus)!", factor_nr, BIAS_MAX * factor_nr);
>
>
> Could you please fix the over 80 characters warning?
Ok.
>
> > +
> > for (lc = 0; TEST_LOOPING(lc); lc++) {
> > Tst_count = 0; i = 0;
> > ulast = 0, slast = 0;
> > @@ -95,14 +112,20 @@ int main(int argc, char *argv[])
> > tst_resm(TINFO, "utime:%12luus;
stime:%12luus",
> > usage.ru_utime.tv_usec,
> > usage.ru_stime.tv_usec);
> > - if (udelta > 1000+BIAS_MAX)
> > - tst_brkm(TFAIL, cleanup,
> > - "utime increased >
1000us:"
> > + if (udelta > 1000+(BIAS_MAX * factor_nr)) {
> > + sprintf(msg_string,
> > + "utime increased > %ldus:",
> > + 1000 + BIAS_MAX *
factor_nr);
> > + tst_brkm(TFAIL, cleanup, msg_string,
> > " delta = %luus",
udelta);
> > - if (sdelta > 1000+BIAS_MAX)
> > - tst_brkm(TFAIL, cleanup,
> > - "stime increased >
1000us:"
> > + }
> > + if (sdelta > 1000+(BIAS_MAX * factor_nr)) {
> > + sprintf(msg_string,
> > + "stime increased > %ldus:",
> > + 1000 + BIAS_MAX *
factor_nr);
> > + tst_brkm(TFAIL, cleanup, msg_string,
> > " delta = %luus",
sdelta);
> > + }
> > }
> > ulast = usage.ru_utime.tv_usec;
> > slast = usage.ru_stime.tv_usec;
> > @@ -113,6 +136,11 @@ int main(int argc, char *argv[])
> > tst_exit();
> > }
> >
> > +static void fusage(void)
> > +{
> > + printf(" -m n use n as multiply factor for max [us]time
> increment (1000+(1000*n)us), default value is 1\n");
>
>
> ditto
>
>
> Thanks
> -Wanlong Gao
I'll post a new version.
Thanks for the review.
Filippo.
>
> > +}
> > +
> > static void busyloop(long wait)
> > {
> > while (wait--)
>
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [LTP] [PATCH] getrusage04: add opportunity to increase the max [us]time increment
[not found] <4f45f838.8aa82a0a.6cc7.334fSMTPIN_ADDED@mx.google.com>
@ 2012-06-18 8:50 ` Andrew Yan-Pai Chen
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Yan-Pai Chen @ 2012-06-18 8:50 UTC (permalink / raw)
To: Filippo ARCIDIACONO; +Cc: ltp-list
On Thu, Feb 23, 2012 at 4:23 PM, Filippo ARCIDIACONO
<filippo.arcidiacono@st.com> wrote:
> From: Filippo Arcidiacono <filippo.arcidiacono@st.com>
>
> On slow systems it could be needed to increase the max value [us]time
> increment beetween two getrusage calls.
>
> Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
> Signed-off-by: Salvatore Cro <salvatore.cro@st.com>
> ---
> testcases/kernel/syscalls/getrusage/getrusage04.c | 42 +++++++++++++++++---
> 1 files changed, 35 insertions(+), 7 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/getrusage/getrusage04.c b/testcases/kernel/syscalls/getrusage/getrusage04.c
> index 3bdd3b0..92f8361 100644
> --- a/testcases/kernel/syscalls/getrusage/getrusage04.c
> +++ b/testcases/kernel/syscalls/getrusage/getrusage04.c
> @@ -54,11 +54,22 @@ int TST_TOTAL = 1;
>
> #define BIAS_MAX 1000
> #define RECORD_MAX 20
> +#define FACTOR_MAX 10
>
> #ifndef RUSAGE_THREAD
> #define RUSAGE_THREAD 1
> #endif
>
> +static int opt_factor;
> +static char *factor_str;
> +static long factor_nr = 1;
> +
> +option_t child_options[] = {
> + { "m:", &opt_factor, &factor_str },
> + { NULL, NULL, NULL }
> +};
> +
> +static void fusage(void);
> static void busyloop(long wait);
> static void setup(void);
> static void cleanup(void);
> @@ -69,8 +80,9 @@ int main(int argc, char *argv[])
> unsigned long ulast, udelta, slast, sdelta;
> int i, lc;
> char *msg;
> + char msg_string[BUFSIZ];
>
> - msg = parse_opts(argc, argv, NULL, NULL);
> + msg = parse_opts(argc, argv, child_options, fusage);
> if (msg != NULL)
> tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
>
> @@ -80,6 +92,11 @@ int main(int argc, char *argv[])
>
> setup();
>
> + if (opt_factor)
> + factor_nr = SAFE_STRTOL(cleanup, factor_str, 0, FACTOR_MAX);
> +
> + tst_resm(TINFO, "Using %ld as multiply factor for max [us]time increment (1000+%ldus)!", factor_nr, BIAS_MAX * factor_nr);
> +
> for (lc = 0; TEST_LOOPING(lc); lc++) {
> Tst_count = 0; i = 0;
> ulast = 0, slast = 0;
> @@ -95,14 +112,20 @@ int main(int argc, char *argv[])
> tst_resm(TINFO, "utime:%12luus; stime:%12luus",
> usage.ru_utime.tv_usec,
> usage.ru_stime.tv_usec);
> - if (udelta > 1000+BIAS_MAX)
> - tst_brkm(TFAIL, cleanup,
> - "utime increased > 1000us:"
> + if (udelta > 1000+(BIAS_MAX * factor_nr)) {
> + sprintf(msg_string,
> + "utime increased > %ldus:",
> + 1000 + BIAS_MAX * factor_nr);
> + tst_brkm(TFAIL, cleanup, msg_string,
> " delta = %luus", udelta);
> - if (sdelta > 1000+BIAS_MAX)
> - tst_brkm(TFAIL, cleanup,
> - "stime increased > 1000us:"
> + }
> + if (sdelta > 1000+(BIAS_MAX * factor_nr)) {
> + sprintf(msg_string,
> + "stime increased > %ldus:",
> + 1000 + BIAS_MAX * factor_nr);
> + tst_brkm(TFAIL, cleanup, msg_string,
> " delta = %luus", sdelta);
> + }
> }
> ulast = usage.ru_utime.tv_usec;
> slast = usage.ru_stime.tv_usec;
> @@ -113,6 +136,11 @@ int main(int argc, char *argv[])
> tst_exit();
> }
>
> +static void fusage(void)
> +{
> + printf(" -m n use n as multiply factor for max [us]time increment (1000+(1000*n)us), default value is 1\n");
> +}
> +
> static void busyloop(long wait)
> {
> while (wait--)
> --
> 1.5.5.6
>
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Ltp-list mailing list
> Ltp-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ltp-list
Hi folks,
How to determine the value of factor_nr?
We are running the test on a very slow system (ARMv5, 33MHz)
Even factor_nr is set to 10, the test still get failed with the
following message:
getrusage04 0 TINFO : utime: 60000us; stime: 360000us
getrusage04 0 TINFO : utime: 60000us; stime: 370000us
getrusage04 0 TINFO : utime: 60000us; stime: 390000us
getrusage04 1 TFAIL : stime increased > 11000us:
BTW, how can we guarantee that s/udelta is always less than
1000+(BIAS_MAX * factor_nr)us?
What if the kernel is busy handling interrupts?
Thanks.
--
Regards,
Andrew
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-06-18 8:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-23 8:23 [LTP] [PATCH] getrusage04: add opportunity to increase the max [us]time increment Filippo ARCIDIACONO
2012-02-23 9:42 ` Wanlong Gao
2012-02-23 10:21 ` Filippo ARCIDIACONO
[not found] <4f45f838.8aa82a0a.6cc7.334fSMTPIN_ADDED@mx.google.com>
2012-06-18 8:50 ` Andrew Yan-Pai Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox