25
PowerSpy: Fine Grained Power Profiler Kutty S Banerjee Emmanuel Agu

PowerSpy: Fine Grained Power Profiler

  • Upload
    rozene

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

PowerSpy: Fine Grained Power Profiler. Kutty S Banerjee Emmanuel Agu. Mobile Devices – Energy Crisis. Rate of Growth of CPU Memory Disk Space Wireless Transfer Speed Far Greater than that of Battery Energy !!. - PowerPoint PPT Presentation

Citation preview

Page 1: PowerSpy: Fine Grained Power Profiler

PowerSpy:Fine Grained Power Profiler

Kutty S BanerjeeEmmanuel Agu

Page 2: PowerSpy: Fine Grained Power Profiler

Mobile Devices – Energy Crisis

Rate of Growth of– CPU– Memory– Disk Space– Wireless Transfer SpeedFar Greater than that of

Battery Energy !!

Powerful Change Part1:Batteries and Possible Alternatives for the Mobile Market. IEEE Pervasive Computing,October-December 2003 (Vol. 2, No. 4)

Page 3: PowerSpy: Fine Grained Power Profiler

PowerSpy

Helps answer the following questions: Which Thread consumes How much power? What procedures in each thread are

invoked? Which I/O Device consumes how much

power?– <Application initiated I/O>

Page 4: PowerSpy: Fine Grained Power Profiler

PowerSpy Features:

Non Intrusive of Kernel Source Non Intrusive of Application Source `Software-Only’ Accurate Billing sans OS activities Windows 2000,XP,Server 2003

Page 5: PowerSpy: Fine Grained Power Profiler

PowerSpy Usage

Installation:– Powerspy.sys (kernel mode driver)

Installation Requires Administrative Privilege– Powerspy.exe (user mode application)– Windows XP (run checked build)

Boot option `/debug’ flag set Usage:

– powerspy devenv.exe (Microsoft Visual Studio)– Produces `report.dat’ . Results next…

Page 6: PowerSpy: Fine Grained Power Profiler

Thread and I/O Profiling

Thread Power Usage

Device Power Usage

Page 7: PowerSpy: Fine Grained Power Profiler

Procedural Profiling

Page 8: PowerSpy: Fine Grained Power Profiler

Application Profiled

OpenVRML – VRML Browser (disk heavy)– Graphics appln.

Mozilla– I/O heavy (Network heavy)

Windows Media Player– I/O heavy (Network heavy)

Page 9: PowerSpy: Fine Grained Power Profiler

Background Work

Work Author School Conference

PowerScope(Application Runtime)

Jason Flinn et al.

CMU Proceedings of the Second IEEE Workshop on Mobile Computer Systems and Applications, 1999

Monitoring System Activity or OS-Directed Dynamic Power Management(Finite Elements)

Luca Benini et al.

Univ of di Bologna, Italy

ISLPED 98, Monterey, CA, USA.

Apple Macintosh’s Energy Consumption(Finite Elements)

Jacob R Lorch et al.

UCBerkeley

IEEE Micro archiveVolume 18, 1998

Page 10: PowerSpy: Fine Grained Power Profiler

Power Measurement Approaches

Measure Power Loss - Application Runtime– Hardware (PowerScope)– Software (PowerSpy)

Break Application Runtime ->Finite Elements– Power Consumption Finitie Elements Known prior– Sum to get total power

Page 11: PowerSpy: Fine Grained Power Profiler

PowerScope Approach

Hardware multimeter measures current, voltage.

Samples PC, PID, ISR Analysis offline

Page 12: PowerSpy: Fine Grained Power Profiler

OS Context Switches

Time of execution of thread=quantum

Need to monitor `current thread of execution’ as often as quantum period

What about preemption? We’ll see next…

System Architecture

Debugger

KTracker

Application

OS Dispatcher

User Mode

Kernel Mode

Page 13: PowerSpy: Fine Grained Power Profiler

Scheduler vs KTracker

ThreadID=1231 ThreadID=315 ThreadID=12 ThreadID=315

Ktracker 1

`Ts’=quantum

Ktracker 2 Ktracker 3 Ktracker 4

ThreadID=79

`Tk’

T1: Power=4500 T2:Power=4200 T3:Power=4000 T4:Power=3910 T5:Power=3810

Ktracker 5

T6:Power=3610

Page 14: PowerSpy: Fine Grained Power Profiler

Pseudo Code Algorithm

if(measurePowerOn_==true){

if(currentThread_!=SchedulerThread())measurePowerOn_=false;

tempPower_=instPower_;instPower_=measurePower();totalPower_=tempPower_-instPower_;

}else{

if(currentThread_==SchedulerThread()){

measurePowerOn_=true;instPower_=measurePower();

}}

Page 15: PowerSpy: Fine Grained Power Profiler

I/O Devices (Overlap with CPU)

ThreadID=1231 ThreadID=315 ThreadID=12 ThreadID=315

AGP

`Ts’=quantum

ThreadID=79

Network Card

Hard Disk

T1 T2

Overlapped I/O, CPU

Page 16: PowerSpy: Fine Grained Power Profiler

I/O Device Monitor

ThreadID=1231 ThreadID=315 ThreadID=12 ThreadID=315

`Ts’=quantum

ThreadID=79

Ktracker 1 Ktracker 2 Ktracker 3 Ktracker 4

`Tk’

Ktracker 5

Disk ThreadID=219 Disk ThreadID=315 Disk ThreadID=219

T1 T2

Page 17: PowerSpy: Fine Grained Power Profiler

I/O Device Monitor

Question ->Do you check all I/O Devices live in system ?– Push on stack question until Implementation!!

Question -> What if thread does overlapped I/O with `n’ devices?– Limitation of PowerSpy. We cannot distinguish

b/w them!!

Page 18: PowerSpy: Fine Grained Power Profiler

Overlapped I/O

ThreadID=1231 ThreadID=315 ThreadID=12 ThreadID=315

`Ts’=quantum

ThreadID=79

Ktracker 1 Ktracker 2 Ktracker 3 Ktracker 4

`Tk’

Ktracker 5

Disk ThreadID=219 ThreadID=315 ThreadID=219

T1 T2

AGP ThreadID=121 ThreadID=118ThreadID=315

Disk & AGPOVERLAP!!

Page 19: PowerSpy: Fine Grained Power Profiler

What about Procedures?

Two Approaches?– Invasive – Add stub of code in executable in

each procedure for all modules Stub merely records itself!!

– NonInvasive – Simply check PC at sampled intervals. (POWERSPY APPROACH)

Use Module Export/Import Table Base Loading AddressFor address to module,procedure translation!!

Page 20: PowerSpy: Fine Grained Power Profiler

Implementation Overview

ApplicationProfiled

DebuggerMonitor Database

User Mode

Kernel Mode

IO Work Item PowerSpyDriver DPC Routine

OSScheduler/Dispatcher

ETHREADdata block

Page 21: PowerSpy: Fine Grained Power Profiler

Windows Scheduling Policy

Preemptive Priority driven. Get current thread running (last running)

PsGetCurrentThreadId (kernel mode call) To monitor Scheduler

– Need to be at same priority– Must be non preemptable by Scheduler– DPC (Deferred Procedure Calls) execute at same priority as

Windows Scheduler called `Dispatcher’– Timed DPC running at 10ms=roughly equal to Windows standard

quantum.– Every 10ms, DPC preempts Scheduler and executes algorithm.– 10ms NOT GUARANTEED EXACT!!Windows is NOT REAL

TIME!!

Page 22: PowerSpy: Fine Grained Power Profiler

Monitor I/O Operations

All user mode appln do I/O by Win32 API Win32 API forwards request to I/O Manager I/O Manager creates IRP (I/O Request Packet) and forwards to

appropriate Device Driver. For every thread( user mode or kernel mode), internal OS data

structure (undocumented) -> ETHREAD. ETHREAD contains list of IRPs thread currently blocked on. IRP contains name of I/O Devices. Therefore, thread to I/O Device located!! ETHREAD maintained in `ntoskrnl.exe’. Not Exported!! Therefore need

`debug symbols’. Hence need to run `checked build of Windows’. Have access to Internet!! Symbol Server of Microsoft at http://msdl.microsoft.com

Page 23: PowerSpy: Fine Grained Power Profiler

Limitations

Thread Blocked on I/O Device DOES NOT mean I/O Device currently executing its order!!

I/O Device has internal queue.

Thread 4 blocked and billed but not actually serviced!! Excess Power billed!!

Procedures NOT CALL GRAPH!!

I/O DeviceThread 1

Thread 3

Thread 2

Thread 4

Order of P

rocess

Page 24: PowerSpy: Fine Grained Power Profiler

Reference

Inside Windows 2000 Programming Applications for MS Windows Windows Loader – Matt Pietrik www.sysinternals.com www.osronline.com Powerscope Windows DDK

Page 25: PowerSpy: Fine Grained Power Profiler

Questions