# Development Workstation Configuration Example This example demonstrates WiseTLP configuration for a development workstation optimized for coding, compiling, and development workflows while maintaining energy efficiency. ## System Specifications - **System**: Desktop workstation / High-end laptop - **CPU**: AMD Ryzen 9 5900X (12 cores, 24 threads) - **RAM**: 64GB DDR4-3200 - **Storage**: 2TB NVMe SSD (primary) + 4TB HDD (storage) - **GPU**: NVIDIA RTX 3060 (for CUDA development) - **Power**: 650W PSU / 100Wh battery (if laptop) - **Display**: Dual 27" 4K monitors ## User Preferences ``` Power Profile: Balanced Use Case: Development Battery Priority: Runtime (if applicable) Performance Mode: Adaptive Special Requirements: - Fast system wake/sleep - Minimize fan noise during coding - Optimize for external displays - Maximum performance during compilation ``` ## Generated TLP Configuration ### General Settings ```bash TLP_ENABLE=1 TLP_WARN_LEVEL=3 TLP_DEBUG=0 ``` ### CPU Management ```bash # Adaptive CPU scaling for development workloads CPU_SCALING_GOVERNOR_ON_AC=ondemand CPU_SCALING_GOVERNOR_ON_BAT=powersave # Allow full frequency range for compilation CPU_SCALING_MIN_FREQ_ON_AC=2200000 CPU_SCALING_MAX_FREQ_ON_AC=4950000 # Conservative battery frequencies CPU_SCALING_MIN_FREQ_ON_BAT=2200000 CPU_SCALING_MAX_FREQ_ON_BAT=3600000 # Balanced platform profiles PLATFORM_PROFILE_ON_AC=balanced PLATFORM_PROFILE_ON_BAT=low-power # Responsive energy performance CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power # Turbo boost for compilation workloads CPU_BOOST_ON_AC=1 CPU_BOOST_ON_BAT=0 # Hardware P-states CPU_HWP_DYN_BOOST_ON_AC=1 CPU_HWP_DYN_BOOST_ON_BAT=0 ``` **Rationale**: Development work requires responsive performance for IDE operations and maximum performance for compilation. Ondemand governor provides good balance between responsiveness and power efficiency. ### Memory and Swap Management ```bash # Optimize for large development environments VM_DIRTY_WRITEBACK_CENTISECS_ON_AC=500 VM_DIRTY_WRITEBACK_CENTISECS_ON_BAT=1500 # Laptop mode for battery VM_LAPTOP_MODE_ON_AC=0 VM_LAPTOP_MODE_ON_BAT=5 ``` **Rationale**: Development environments often use significant memory. Balanced writeback settings ensure good I/O performance without excessive disk activity. ### Storage Management ```bash # High performance for development tools and compilation DISK_APM_LEVEL_ON_AC=254 DISK_APM_LEVEL_ON_BAT=192 # No spindown for SSDs, moderate for HDDs DISK_SPINDOWN_TIMEOUT_ON_AC=0 DISK_SPINDOWN_TIMEOUT_ON_BAT=240 # Optimize SATA link power SATA_LINKPWR_ON_AC=max_performance SATA_LINKPWR_ON_BAT=medium_power # NVMe optimization for development AHCI_RUNTIME_PM_ON_AC=on AHCI_RUNTIME_PM_ON_BAT=auto # Disk device IDs for different handling DISK_DEVICES="nvme0n1 sda" DISK_APM_CLASS_DENYLIST="usb ieee1394" ``` **Rationale**: Development requires fast I/O for IDE operations, file indexing, and compilation. SSD performance is prioritized while HDD is allowed moderate power saving. ### Network Configuration ```bash # Reliable networking for remote development WIFI_PWR_ON_AC=off WIFI_PWR_ON_BAT=on # Ethernet optimization WOL_DISABLE=N # Network device power management RUNTIME_PM_DRIVER_DENYLIST="mei_me nouveau nvidia e1000e" ``` **Rationale**: Development often requires reliable network connectivity for git operations, remote debugging, and API calls. Power saving on battery preserves runtime. ### GPU and Graphics ```bash # NVIDIA GPU for CUDA development RUNTIME_PM_ON_AC=auto RUNTIME_PM_ON_BAT=auto # Intel integrated graphics INTEL_GPU_MIN_FREQ_ON_AC=300 INTEL_GPU_MAX_FREQ_ON_AC=1200 INTEL_GPU_MIN_FREQ_ON_BAT=300 INTEL_GPU_MAX_FREQ_ON_BAT=600 # External display optimization RUNTIME_PM_DRIVER_DENYLIST="nvidia nouveau" ``` **Rationale**: CUDA development requires NVIDIA GPU availability. External displays need reliable graphics performance. Power management is balanced for development needs. ### USB and Peripheral Management ```bash # Development peripherals optimization USB_AUTOSUSPEND=1 USB_EXCLUDE_AUDIO=1 USB_EXCLUDE_BTUSB=1 USB_EXCLUDE_PHONE=1 # Exclude development devices USB_ALLOWLIST="0403:6001 10c4:ea60" # FTDI and CP210x USB-to-serial # Runtime PM exclusions USB_EXCLUDE_WWAN=1 USB_EXCLUDE_PRINTER=1 # Autosuspend delays for development tools USB_AUTOSUSPEND_DELAY=2 ``` **Rationale**: Development often involves USB devices like programmers, debuggers, and serial adapters. These need to remain active while other devices can power save. ### Audio and Multimedia ```bash # Audio for development (video calls, notifications) SOUND_POWER_SAVE_ON_AC=1 SOUND_POWER_SAVE_ON_BAT=10 SOUND_POWER_SAVE_CONTROLLER=Y # Timeout for development environment SOUND_POWER_SAVE_TIMEOUT=10 ``` **Rationale**: Audio power saving with reasonable timeout for development notifications and video calls without impacting quality. ### Thermal and Fan Management ```bash # Quiet operation for coding sessions TEMP_LIMITS_ON_AC="75/85" TEMP_LIMITS_ON_BAT="70/80" # Fan speed control for quiet development FAN_SPEED_ON_AC=auto FAN_SPEED_ON_BAT=auto ``` **Rationale**: Lower thermal limits promote quieter fan operation during coding. Higher limits still allow performance during compilation. ### System Sleep and Power ```bash # Fast wake for development workflow RESTORE_DEVICE_STATE_ON_STARTUP=1 # Devices to keep configured DEVICES_TO_DISABLE_ON_STARTUP="" # Runtime PM for development RUNTIME_PM_ALL=1 ``` **Rationale**: Development workflow benefits from fast system wake/sleep cycles and maintaining device states for immediate productivity. ## Development-Specific Optimizations ### IDE and Editor Performance ```bash # Filesystem optimizations for large codebases VM_DIRTY_RATIO=15 VM_DIRTY_BACKGROUND_RATIO=5 # I/O scheduler optimization DISK_IOSCHED="mq-deadline" ``` ### Compilation Workloads ```bash # Temporary CPU boost for compilation CPU_SCALING_GOVERNOR_ON_AC=performance # During make/ninja CPU_SCALING_GOVERNOR_ON_AC=ondemand # Return to balanced ``` ### Container and Virtualization ```bash # Docker/VM optimization VM_SWAPPINESS=10 VM_VFS_CACHE_PRESSURE=50 ``` ## Performance Characteristics ### Development Tasks Performance - **IDE Startup**: Fast application launch with responsive UI - **Code Indexing**: Efficient background processing - **File Operations**: Quick file system operations for large projects - **Git Operations**: Responsive version control operations - **Compilation**: Maximum performance when needed ### Power Efficiency - **Idle Power**: 15-25W desktop, 8-12W laptop - **Coding Power**: 45-65W desktop, 15-25W laptop - **Compilation Power**: 150-200W desktop, 45-65W laptop - **Battery Runtime**: 8-12 hours coding, 3-5 hours compilation ## Workflow Optimization ### Morning Startup Routine ```bash # System wake optimization RESTORE_THINKPAD_BATTERY_THRESHOLDS=1 RESTORE_DEVICE_STATE_ON_STARTUP=1 ``` ### Compilation Sessions ```bash # Temporary performance mode echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor # Compile project make -j$(nproc) # Return to balanced echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ``` ### End-of-day Shutdown ```bash # Clean shutdown with state preservation DEVICES_TO_DISABLE_ON_SHUTDOWN="" USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=0 ``` ## Tool-Specific Configurations ### Docker Development ```bash # Container runtime optimization RUNTIME_PM_DRIVER_DENYLIST="docker0 br-*" USB_EXCLUDE_PRINTER=1 # Prevent conflicts ``` ### Remote Development ```bash # SSH and network optimization WIFI_PWR_ON_AC=off WIFI_PWR_ON_BAT=on WOL_DISABLE=N ``` ### Database Development ```bash # I/O optimization for databases DISK_APM_LEVEL_ON_AC=254 SATA_LINKPWR_ON_AC=max_performance ``` ### Web Development ```bash # Browser testing optimization RUNTIME_PM_DRIVER_DENYLIST="nvidia nouveau" # For GPU acceleration SOUND_POWER_SAVE_ON_AC=0 # For media testing ``` ## Monitoring and Optimization ### Development Metrics ```bash # Monitor compilation performance time make -j$(nproc) # I/O performance for large projects iotop -o # Memory usage for IDEs htop # Network performance for remote work iftop ``` ### Power Monitoring ```bash # Real-time power consumption sudo powertop --time=30 # Battery optimization sudo tlp-stat -b # Thermal monitoring during compilation watch -n 1 sensors ``` ## Troubleshooting ### Performance Issues - **Slow compilation**: Check CPU governor and thermal throttling - **IDE lag**: Monitor memory usage and I/O wait - **Network issues**: Verify WiFi power management settings ### Power Issues - **High idle power**: Check for runaway processes and USB devices - **Poor battery life**: Review active background services - **Thermal throttling**: Monitor temperatures during heavy workloads ### Development Environment Issues - **USB device issues**: Check autosuspend settings for development tools - **Display problems**: Verify graphics power management - **Audio problems**: Check power save timeouts ## Custom Scripts ### Development Mode Toggle ```bash #!/bin/bash # dev-mode.sh - Toggle between development and power-save modes if [ "$1" == "performance" ]; then echo "Enabling development performance mode..." echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor echo 0 | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level elif [ "$1" == "balanced" ]; then echo "Enabling balanced development mode..." echo ondemand | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor echo auto | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level fi ``` ### Compilation Optimizer ```bash #!/bin/bash # compile-optimized.sh - Optimize system for compilation echo "Optimizing for compilation..." echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor echo 254 | sudo tee /sys/class/scsi_host/host*/link_power_management_policy # Run compilation "$@" echo "Returning to balanced mode..." echo ondemand | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor echo med_power_with_dipm | sudo tee /sys/class/scsi_host/host*/link_power_management_policy ``` This configuration provides optimal development performance while maintaining good power efficiency and system responsiveness for professional development workflows.