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

liubo
2010-01-21T03:56:29Z

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

Hi,

The hugeshmget01 case is designed for testing standard SYSV shared
memory system calls "shmget", and it do need a few concurrent copies
in order to fulfill a multi-process memory-allocated environment.

IMO, "-c Xnumber" is needed.

Thanks,
Liu Bo

On 01/21/2010 10:14 AM, Crossover Lonely wrote:
> It works!
> But isn't weird? Why just use ./hugeshmget won't work?
> I traced it, and found it calls tsg_sig() in setup():
> tst_sig(NOFORK, DEF_HANDLER, cleanup);
> and in tsg_sig():
> ...
> case SIGCLD:
> if (fork_flag == FORK || STD_COPIES > 1)
> continue;
>
> default:
> if (tst_setup_signal(sig, handler) == SIG_ERR)
> tst_resm(TWARN | TERRNO,
> "signal() failed for signal %d", sig);
> break;
> ...
>
> so here hugeshmget set its action to SIGCLD to handler - here is
> def_handler(), which can
> rise "Unexpected signal %d received." message when recived SIGCLD.
> static void def_handler(int sig)
> {
> /*
> * Break remaining test cases, do any cleanup, then exit
> */
> tst_brkm(TBROK, 0, "Unexpected signal %d received.", sig);
>
> /* now cleanup and exit */
> if (T_cleanup)
> (*T_cleanup) ();
>
> tst_exit();
> }
>
> So I think it's better to correct it!
>
> Thanks and Best Regards,
> shenghui
>
> 2010/1/21 liubo <liubo2009@cn.fujitsu.com>
>
>
>> Hi,
>>
>> In my box, I can add -c Xnumber to avoid the unexpect signal,
>> for example, ./hugeshmget -c 10. Maybe you can try this as well.
>>
>> Thanks,
>> Liu Bo
>>
>>
>> On 01/21/2010 08:50 AM, Crossover Lonely wrote:
>>
>> 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> <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;
>>
>>
>>
>> ------------------------------
>>
>> ------------------------------------------------------------------------------
>> Throughout its 18-year history, RSA Conference consistently attracts the
>> world's best and brightest in the field, creating opportunities for Conference
>> attendees to learn about information security's most important issues through
>> interactions with peers, luminaries and emerging and established companies.http://p.sf.net/sfu/rsaconf-dev2dev
>>
>> ------------------------------
>>
>> _______________________________________________
>> Ltp-list mailing listLtp-list@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/ltp-list
>>
>>
>>
>>
>
>

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