On Mon, Sep 27, 2010 at 4:58 AM, Jan Tluka <[email protected]> wrote:
> Sat, Sep 25, 2010 at 06:56:44AM CEST, [email protected] wrote:
>>On Fri, Sep 24, 2010 at 6:21 AM, Jan Tluka <[email protected]> wrote:
>>> Resending ...
>>>
>>> I've noticed that in some cases the hugeshmget05 testcase is not
>>> cleaning up properly after itself. It leaves hugepages reserved and
>>> does not free them. This could break further test runs.
>>>
>>> I think the problem is with signal handling. The testcase will do
>>> rm_shm() only if it ends up properly. In case it's being killed by
>>> SIGTERM signal (as seen from the testlog) the cleanup() function does
>>> not return shared memory.
>>>
>>> Without the patch I have to use ipcrm to remove all hugepages reserved
>>> and not returned.
>>>
>>> # grep -i unexpected RHEL-hugepage.run.log
>>> hugeshmget05 1 TBROK : Unexpected signal 15 received.
>>> # ipcs -m
>>> ------ Shared Memory Segments --------
>>> key shmid owner perms bytes nattch status
>>> 0x7400ee08 3932160 root 600 4 0
>>> 0x7400edde 4620289 root 600 4 0
>>> 0x00000000 4980738 gdm 600 393216 2 dest
>>> 0x7400eddd 4587523 root 600 4 0
>>> 0x78002a3b 64552964 root 600 209715200 0
>>> 0x78002a38 64520197 root 600 209715200 0
>>> # ipcrm -m 64552964 -m 64520197
>>>
>>> With the patch the test returns hugepages back to the system even if it
>>> gets signal 15.
>>>
>>> Checked on RHEL5.5.
>>>
>>> Thanks, Jan
>>>
>>>
>>> The patch follows,
>>>
>>>
>>> ---
>>> ltp-full-20100831/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c
>>> 2010-09-14 13:04:33.000000000 +0200
>>> +++
>>> ltp-full-20100831.new/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c
>>> 2010-09-24 13:47:19.413177300 +0200
>>> @@ -105,7 +105,6 @@
>>>
>>> do_child();
>>>
>>> - cleanup();
>>>
>>> /*NOTREACHED*/
>>> } else { /* parent */
>>> @@ -114,11 +113,10 @@
>>> tst_brkm(TBROK, cleanup, "waitpid failed");
>>> }
>>>
>>> - /* if it exists, remove the shared memory resource */
>>> - rm_shm(shm_id_1);
>>> -
>>> /* Remove the temporary directory */
>>> tst_rmdir();
>>> +
>>> + cleanup();
>>> }
>>> return 0;
>>> }
>>> @@ -209,6 +207,9 @@
>>> void
>>> cleanup(void)
>>> {
>>> + /* if it exists, remove the shared memory resource */
>>> + rm_shm(shm_id_1);
>>> +
>>> /*
>>> * print timing stats if that option was specified.
>>> * print errno log if that option was specified.
>>
>>Hi Jan,
>> I spotted some other potential issues with the test. Please try
>>this patch and let me know whether or not it works for you .
>>Cheers,
>>-Garrett
>
> Hi Garrett, I ran the hugeshmget05 test with your patch applied and
> it works fine. Did 100 loops with no issues observed.
>
> Thanks.
Sorry it took so long for me to commit this change (been a bit
preoccupied this week). I'll look into all of the other issues
identified within the past couple of weeks starting tomorrow.
Thanks,
-Garrett
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list