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

TitleNameVersionDate
Test SponsorJim Walker0.42009-07-23
Development LeadRafael Vanoni0.42009-07-23
Development ManagerDarrin Johnson0.42009-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)RevisionCommentsStatus
2009-06-230.1Initial draftComplete
2009-07-130.2Adding glossary and filling out various test sections.Complete
2009-07-200.3Adding test areas and device information.Complete
2009-07-230.4Adjust Test Plan format.Complete

2.6 References

lbolt 

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

#TypeNameArchCPU/MemoryIPVKernel/Library
1M3000m3k-brm-01.centralSPARCSPARC64-VII/16 GBIPV64/64
2T5120t5120-bdr-02.centralSPARCUltraSPARC-T2/16 GBIPV64/64
34200x4200m2-sfb-09amd64AMD Opteron(tm) Processor 2220/7.7 GBIPV64/64, 32/64
4v60xnetrep2xi86pcIntel(r) Xeon(tm)/2 GBIPV32/32
TestSPARCx86({32,64}-bit)Non-global ZonesxVM dom0xVM domU
Regression TestingProject PITProject PITProject PITProject PITProject PIT
togprocm3k-brm-01x4200m2-sfb-09N/Ax4200m2-sfb-09zone-brm-10-10-46-24
psrset stressm3k-brm-01x4200m2-sfb-09N/Ax4200m2-sfb-09zone-brm-10-10-46-24
vmstressm3k-brm-01x4200m2-sfb-09x4200m2-sfb-09 (local zone)x4200m2-sfb-09zone-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.

Back to Top

Issues

Back to Top

last modified by admin on 2009/10/26 12:17

© Sun Microsystems Inc. 2009
XWiki Enterprise 1.8.2.19075 - Documentation
Terms Of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines | Site map | Help
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.