Re: [LTP] [patch]ltp-intermediate-20100119/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c

Crossover Lonely
2010-01-21T00:51:01Z

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

For your convenience, I just made to patches against the signle file, not
the whole directory.

solution 1=======================
--- hugeshmget01.c 2009-11-20 00:05:21.000000000 +0800
+++ hugeshmget01_2.c 2010-01-21 08:43:11.790533086 +0800
@@ -78,14 +78,14 @@
tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
}

- setup(); /* global setup */
-
/* The following loop checks looping state if -i option given */
if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
tst_brkm(TBROK, cleanup, "Test cannot be continued owning to
sufficient availability of Hugepages on the system");
else
huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() *
hugepages_size() * 1024) / 2 ;

+ setup(); /* global setup */
+
for (lc = 0; TEST_LOOPING(lc); lc++) {
/* reset Tst_count in case we are looping */
Tst_count = 0;

solution 2==============================
--- hugeshmget01.c 2009-11-20 00:05:21.000000000 +0800
+++ hugeshmget01_1.c 2010-01-21 08:41:56.350057513 +0800
@@ -160,7 +160,7 @@
setup(void)
{
/* capture signals */
- tst_sig(NOFORK, DEF_HANDLER, cleanup);
+ tst_sig(FORK, DEF_HANDLER, cleanup);

/* Pause if that option was specified */
TEST_PAUSE;

2010/1/21 Crossover Lonely <crosslonelyover@gmail.com>

> Hi all,
>
> When the hugeshmget01 runs, it gets unexpected signal SIGCHLD/SIGCLD,
> and thus stops immediately.
> I found two ways to resolve this problem. Please refer to the
> following for two kinds of patch.
> Well, according to other code structures of hugeshmget0*.c, solution 1
> is preferred. But for get_no_of_hugepages
> will call popen(), so I think the second solution is the right one.
> Will you please choose the right one to apply to
> ltp-intermediate-20100119 package?
> Looking forward to your confirmation!
>
> Thanks and Best Regards,
> shenghui
>
> Solution 1===============================================================
>
> diff -Nur
> ltp-intermediate-20100119-origin/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> ltp-intermediate-20100119/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> ---
> ltp-intermediate-20100119-origin/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> 2010-01-21 07:51:55.926035076 +0800
> +++
> ltp-intermediate-20100119/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> 2010-01-21 08:14:05.470032624 +0800
> @@ -78,14 +78,14 @@
> tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
> }
>
> - setup(); /* global setup */
> -
> /* The following loop checks looping state if -i option given */
> if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
> tst_brkm(TBROK, cleanup, "Test cannot be continued owning to
> sufficient availability of Hugepages on the system");
> else
> - huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() *
> hugepages_size() * 1024) / 2 ;
> -
> + huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() *
> hugepages_size() * 1024) / 2 ;
> +
> + setup(); /* global setup */
> +
> for (lc = 0; TEST_LOOPING(lc); lc++) {
> /* reset Tst_count in case we are looping */
> Tst_count = 0;
>
>
> Solution
> 2=========================================================================================
> diff -Nur
> ltp-intermediate-20100119-origin/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> ltp-intermediate-20100119/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> ---
> ltp-intermediate-20100119-origin/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> 2010-01-21 07:51:55.926035076 +0800
> +++
> ltp-intermediate-20100119/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
> 2010-01-21 08:16:46.122032889 +0800
> @@ -160,7 +160,7 @@
> setup(void)
> {
> /* capture signals */
> - tst_sig(NOFORK, DEF_HANDLER, cleanup);
> + tst_sig(FORK, DEF_HANDLER, cleanup);
>
> /* Pause if that option was specified */
> TEST_PAUSE;
>

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