Next Generation Posix Threads
Verification Summary Report
Introduction
This document describes the methods used by the IBM Linux Technology Center Test Team to perform verification on Next Generation Posix Threads. For more information about the LTC Test Team, see http://ltp.sourceforge.net. For More information about NGPT, see http://oss.software.ibm.com/pthreads.
Test Environment
This section describes the hardware and software environments used in testing NGPT.
Hardware
| Name |
Processor |
Memory |
| Up1 |
PIII-866 |
256Mb |
| Up2 |
PIII-866 |
256Mb |
| Smp1 |
(4)PIII-700 |
2Gb |
Distributions
- Redhat 7.1
- Turbolinux 6.5 Server
Unresolved Issues
There is a load balancing issue that randomly appears in SMP environments. In some situations, load may not be evenly balanced among kernel threads, or a hang may occur with all threads stuck in do_select. This issue is being addressed by the NGPT development team.
Further Testing
- NGPT would benefit from additional testing on 8-way and higher machines, as well as on other supported hardware platforms such as IA64 and S/390.
- Standards testing should be performed with VSTHlite.
- A more complete regression suite for the pth functions should be written and executed against NGPT.
Test Cases
- Test_sig
| Description: | Pth test with signal handling |
| Duration: | Basic regression |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_select
| Description: | Pth test using select |
| Duration: | Basic regression |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_pthread_segv
| Description: | Pthreads signal handling test |
| Duration: | Basic regression |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_mp
| Description: | Pth test for message port handling |
| Duration: | Basic regression |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_misc
| Description: | Tests miscellaneous pth functions |
| Duration: | Basic regression |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_httpd
| Description: | Simulated httpd daemon using pth |
| Duration: | Basic regression |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Pth_str01
| Description: | Creates a large tree of threads |
| Duration: | 72 Hours |
| Hardware: | All |
| Distributions: | All |
- Pth_str02
| Description: | Creates a large number of threads sequentially |
| Duration: | 72 Hours |
| Hardware: | All |
| Distributions: | All |
- Pth_str03
| Description: | Creates a tree of threads, each child performs calculations and returns the result to the parent |
| Duration: | 72 Hours |
| Hardware: | All |
| Distributions: | All |
- Test_std
| Description: | Pth standard test program |
| Duration: | 72 Hours |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_pthread
| Description: | General test of Pthread API |
| Duration: | 72 Hours |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_pthread_cancel
| Description: | Test for pthread_cancel() |
| Duration: | 72 Hours |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_pthread_sig
| Description: | Test signal handling in pthreads |
| Duration: | 72 Hours |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Test_philo
| Description: | Pth test application showing the 5 philosophers problem |
| Duration: | 72 Hours |
| Hardware: | Up1, Up2 |
| Distributions: | All |
- Ltp
| Description: | The LTP project testsuite |
| Duration: | 72 Hours |
| Hardware: | Smp1 |
| Distributions: | Smp1 |
Observations
NGPT was very stable on single processor machines. A problem was found in early testing where any test that used pthread_create() would generate a segmentation fault when a call to exit() was made. This issue has already been corrected before the 1.0 release. A minor problem was discovered with Test_mp that prevented the test from running. In this test, and many others, pth_init() was used, but in Test_mp, the return value was checked. The pth_init() function is no longer needed and returns a failed value. This function was removed from all the testcases that used it without any loss of function. This change was also made prior to the final 1.0 release. There is still an unresolved issue where tests will hang in do_select on smp. This issue is being addressed by the NGPT development team.
Test team:
Paul Larson plars@austin.ibm.com