Welcome to clock() and lbolt Testing
This page provides documentation for the various components to testing the decoupling of lbolt from clock(). This includes the Test Plan and a list of noteworthy issues identified during testing.
1 clock() and lbolt Test Plan
2 Introduction
2.1 Author(s):
Patrick Bredenberg, Rafael Vanoni
2.2 Test Sponsor:
Jim Walker
2.3 Test Plan Approvals
| Title | Name | Version | Date |
|---|---|---|---|
| Test Sponsor | Jim Walker | 0.4 | 2009-07-23 |
| Development Lead | Rafael Vanoni | 0.4 | 2009-07-23 |
| Development Manager | Darrin Johnson | 0.4 | 2009-07-23 |
2.4 External Open Source Test Software
- Does this project use any external open source test software? No.
2.5 Revision History
| Date (yyyy-mm-dd) | Revision | Comments | Status |
|---|---|---|---|
| 2009-06-23 | 0.1 | Initial draft | Complete |
| 2009-07-13 | 0.2 | Adding glossary and filling out various test sections. | Complete |
| 2009-07-20 | 0.3 | Adding test areas and device information. | Complete |
| 2009-07-23 | 0.4 | Adjust Test Plan format. | Complete |
2.6 References
2.7 Staffing
2.8 Glossary
- clock() - a function executed a hundred times/second by the kernel to perform various tasks. The tickless project overall goal is to only execute these when needed, as opposed to a fixed number of times over a period.
- cyclic - a kernel timeout, the mechanism by which tasks can be executed after a given period of time.
- lbolt - a kernel variable used to track 'clock ticks', incremented every time the clock() cyclic fires.
3 Test Program Summary
The decoupling of lbolt from clock() involves the transition of lbolt/lbolt64 to function calls to a platform's hardware timing mechanisms. No new test development is required, but heavy regression testing and performance benchmarks are necessary to ensure no problems are introduced.
4 Operational Factors
4.1 Project Dependencies
Access to a variety of SPARC and x86-based systems. This project also requires access to devices whose driver is being touched. Current list of devices:
- 1394
- e1000g0
- iwk
- ipw
- iwi
- nxge
- llc
- pcmcia
- sbp2
- scsi (including ifp)
- SD cards
- tpm
4.2 Risks
The project being testing impacts both platform independent and platform dependent. Thus, comprehensive testing will require access to a wide range of systems and hardware.
4.3 Assumptions
This project is basically changing references to the lbolt and lbolt64 variables in favor of the get_lbolt() and get_lbolt64() routines. Since the two variables are referenced in many different places, testing should verify all of the affected code paths.
5 Test Development Information
5.1 Test Development
No test development is necessary.
6 Areas of Testing
6.1 Functional Testing
No new functionality is introduced, so no functional test will be developed or executed.
6.2 Regression Testing
Validation that any code currently using direct or indirect calls to lbolt still function as expected.
- ZFS
- BrandZ
- Dispatcher (CPUcaps, classes)
- NFS
- Samba
- Sockets
- UFS
- IP
- SSL
- sctp
- SCSI and fiber-channel
- vscan
- rpc
- VM
- avs
- crypto
- comstar
- OPL (VM)
- IB
6.3 Conformance Testing
None.
6.4 Stress Testing
Stress testing, along with regression testing, will be performed to guarantee that the changes do not affect the systems ability to perform under heavy utilization.
- vmstress
- zfs
- ufs
- NFS
- tcp
- DRstress
- psrset stress
- togproc (online/offline) stress
6.5 Performance Testing
Performance benchmark testing will include:
- A standard PerfPIT run.
- boottime
- specjvm
- specjbb
- x11bench
- specweb
- netbench
- OLTP
- SPECcpu2006 (speed and rate)
- SPECpower (run in isolation and also concurrent with other benchmarks)
- filebench
- uperf
6.6 Memory Leak Testing
The use of the ::findleaks utility within mdb(1) will be used.
6.7 Required Solaris Feature Testing
- ==== Zones Testing
- ==== ZFS Testing
- ==== Trusted Extensions Testing
- ==== xVM and LDOM Guest OS Testing
6.8 Interoperability Testing None.
6.9 Documentation Testing None.
6.10 Internationalization Testing
None.
6.11 Additional Testing
The following devices will need to be tested:
- 1394
- e1000g0
- iwk
- ipw
- iwi
- nxge
- llc
- pcmcia
- sbp2
- scsi (including ifp)
- sd card
- tpm
6.12 Testing Not Covered
None.
7 Test Execution
7.1 Hardware Test Configurations
Both SPARC and x86/x64 will be tested.
7.2 Software Test Configurations
snv_121 or later in 32/64 modes will be tested.
7.3 Extrapolation Strategy
None.
7.4 Pre-Integration (PIT) Run
A Project PIT run will be performed.
7.5 Test Execution Matrices
| # | Type | Name | Arch | CPU/Memory | IPV | Kernel/Library |
|---|---|---|---|---|---|---|
| 1 | M3000 | m3k-brm-01.central | SPARC | SPARC64-VII/16 GB | IPV | 64/64 |
| 2 | T5120 | t5120-bdr-02.central | SPARC | UltraSPARC-T2/16 GB | IPV | 64/64 |
| 3 | 4200 | x4200m2-sfb-09 | amd64 | AMD Opteron(tm) Processor 2220/7.7 GB | IPV | 64/64, 32/64 |
| 4 | v60x | netrep2x | i86pc | Intel(r) Xeon(tm)/2 GB | IPV | 32/32 |
| Test | SPARC | x86({32,64}-bit) | Non-global Zones | xVM dom0 | xVM domU | |
| Regression Testing | Project PIT | Project PIT | Project PIT | Project PIT | Project PIT | |
| togproc | m3k-brm-01 | x4200m2-sfb-09 | N/A | x4200m2-sfb-09 | zone-brm-10-10-46-24 | |
| psrset stress | m3k-brm-01 | x4200m2-sfb-09 | N/A | x4200m2-sfb-09 | zone-brm-10-10-46-24 | |
| vmstress | m3k-brm-01 | x4200m2-sfb-09 | x4200m2-sfb-09 (local zone) | x4200m2-sfb-09 | zone-brm-10-10-46-242 |
8 Schedules and Milestones
9 Post-Integration Testing Information
The existing test suites already running in automation will suffice.
10 Solaris 10 Update Release (if applicable)
None.