# Gaming Laptop Configuration Example

This example demonstrates WiseTLP configuration for a gaming laptop optimized for performance while maintaining reasonable battery life during non-gaming use.

## System Specifications

- **Laptop**: Gaming laptop with dedicated GPU
- **CPU**: Intel Core i7-12700H (14 cores)
- **RAM**: 32GB DDR4
- **Storage**: 1TB NVMe SSD
- **GPU**: NVIDIA RTX 3070 Mobile
- **Battery**: 90Wh Li-ion
- **Display**: 15.6" 144Hz

## User Preferences

```
Power Profile: Performance
Use Case: Gaming
Battery Priority: Balanced
Performance Mode: Maximum
Special Requirements: 
  - Gaming performance priority
  - Prevent thermal throttling
  - Fast system wake/sleep
```

## Generated TLP Configuration

### General Settings
```bash
TLP_ENABLE=1
TLP_WARN_LEVEL=3
TLP_DEBUG=0
```

### CPU Management
```bash
# Performance-oriented CPU scaling
CPU_SCALING_GOVERNOR_ON_AC=performance
CPU_SCALING_GOVERNOR_ON_BAT=ondemand

# Aggressive frequency scaling on AC
CPU_SCALING_MIN_FREQ_ON_AC=800000
CPU_SCALING_MAX_FREQ_ON_AC=4700000

# Conservative on battery to preserve power
CPU_SCALING_MIN_FREQ_ON_BAT=800000
CPU_SCALING_MAX_FREQ_ON_BAT=3200000

# Platform profiles for gaming performance
PLATFORM_PROFILE_ON_AC=performance
PLATFORM_PROFILE_ON_BAT=balanced

# CPU energy performance preference
CPU_ENERGY_PERF_POLICY_ON_AC=performance
CPU_ENERGY_PERF_POLICY_ON_BAT=balance_performance

# Turbo boost settings
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=1

# HWP (Hardware P-states) settings
CPU_HWP_DYN_BOOST_ON_AC=1
CPU_HWP_DYN_BOOST_ON_BAT=0
```

**Rationale**: Gaming requires maximum CPU performance on AC power. On battery, we use ondemand governor to balance performance with battery life while still allowing turbo boost for responsiveness.

### GPU Power Management
```bash
# NVIDIA GPU settings
RUNTIME_PM_ON_AC=auto
RUNTIME_PM_ON_BAT=auto

# Radeon DPM (if applicable)
RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=balanced

# Intel GPU settings
INTEL_GPU_MIN_FREQ_ON_AC=300
INTEL_GPU_MAX_FREQ_ON_AC=1300
INTEL_GPU_MIN_FREQ_ON_BAT=300
INTEL_GPU_MAX_FREQ_ON_BAT=800
```

**Rationale**: Dedicated GPU performance is prioritized on AC power for gaming. Battery mode reduces GPU frequency to conserve power.

### Disk Management
```bash
# Aggressive disk performance on AC
DISK_APM_LEVEL_ON_AC=254
DISK_APM_LEVEL_ON_BAT=128

# No spindown timeout for SSD
DISK_SPINDOWN_TIMEOUT_ON_AC=0
DISK_SPINDOWN_TIMEOUT_ON_BAT=0

# SATA link power management
SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=med_power_with_dipm

# NVMe power management
AHCI_RUNTIME_PM_ON_AC=on
AHCI_RUNTIME_PM_ON_BAT=auto
```

**Rationale**: Fast game loading requires maximum disk performance on AC. SSD doesn't need spindown timeout. Battery mode uses moderate power saving.

### Network Management
```bash
# WiFi power management
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=on

# Ethernet wake-on-LAN
WOL_DISABLE=Y

# Network device power management
RUNTIME_PM_DRIVER_DENYLIST="mei_me nouveau nvidia"
```

**Rationale**: Gaming requires reliable, low-latency network connectivity. WiFi power saving is disabled on AC but enabled on battery to conserve power.

### USB and Peripheral Management
```bash
# USB autosuspend for power saving
USB_AUTOSUSPEND=1
USB_EXCLUDE_AUDIO=1
USB_EXCLUDE_BTUSB=1
USB_EXCLUDE_PHONE=1

# Exclude gaming peripherals from autosuspend
USB_ALLOWLIST="046d:c52b 1532:0037"  # Gaming mouse and keyboard

# Runtime PM for USB devices
USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1
```

**Rationale**: Gaming peripherals need to remain active for immediate response. Audio and Bluetooth devices are excluded from autosuspend to prevent interruptions.

### Thermal Management
```bash
# Thermal zone trip points (prevent throttling)
TEMP_LIMITS_ON_AC="85/95"
TEMP_LIMITS_ON_BAT="80/90"

# Fan control (if supported)
FAN_SPEED_ON_AC=auto
FAN_SPEED_ON_BAT=auto
```

**Rationale**: Higher thermal limits on AC power allow for sustained gaming performance. Battery limits are lower to prevent overheating during mobile use.

### Audio and Multimedia
```bash
# Audio power management
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1
SOUND_POWER_SAVE_CONTROLLER=Y
```

**Rationale**: Audio power saving disabled on AC for gaming audio quality. Enabled on battery for power conservation.

### System Sleep and Wake
```bash
# Fast resume for gaming
RESTORE_DEVICE_STATE_ON_STARTUP=1
DEVICES_TO_DISABLE_ON_STARTUP=""

# USB device handling during sleep
USB_EXCLUDE_WWAN=1
USB_EXCLUDE_PRINTER=1
```

**Rationale**: Fast wake/sleep cycle for gaming sessions. Critical devices remain configured for immediate use.

## Performance Impact

### Gaming Performance (AC Power)
- **CPU**: Maximum performance with all cores available
- **GPU**: Full performance mode for dedicated graphics
- **Storage**: Maximum I/O performance for fast game loading
- **Network**: Low-latency connectivity for online gaming
- **Thermal**: Higher limits to prevent throttling during intensive gaming

### Battery Life (Battery Power)
- **Runtime**: 4-6 hours for general use, 1.5-2.5 hours for gaming
- **Standby**: Optimized sleep/wake for extended standby time
- **Balanced**: Performance available when needed, power saving when idle

## Warnings and Considerations

1. **Thermal Management**: Higher performance settings may increase heat generation. Ensure adequate cooling.

2. **Battery Health**: Gaming on battery will reduce battery lifespan. Consider AC power for extended gaming sessions.

3. **Fan Noise**: Performance mode may result in more aggressive fan curves for thermal management.

4. **Power Consumption**: AC power consumption will be higher during gaming sessions (150-200W typical).

5. **Component Longevity**: Sustained high performance may impact long-term component reliability.

## Customization Options

### For Competitive Gaming
```bash
# Even more aggressive performance
CPU_SCALING_GOVERNOR_ON_BAT=performance
PLATFORM_PROFILE_ON_BAT=performance
WIFI_PWR_ON_BAT=off
```

### For Extended Battery Gaming
```bash
# More conservative battery settings
CPU_SCALING_MAX_FREQ_ON_BAT=2400000
CPU_BOOST_ON_BAT=0
PLATFORM_PROFILE_ON_BAT=low-power
```

### For Content Creation
```bash
# Optimize for rendering workloads
CPU_ENERGY_PERF_POLICY_ON_AC=performance
CPU_ENERGY_PERF_POLICY_ON_BAT=performance
SOUND_POWER_SAVE_ON_AC=0
```

## Monitoring and Validation

### Performance Monitoring
```bash
# CPU frequency monitoring
watch -n 1 'cat /proc/cpuinfo | grep MHz'

# Thermal monitoring
watch -n 1 'sensors'

# Power consumption
sudo powertop --time=60
```

### Gaming Benchmarks
- **3DMark**: Graphics performance validation
- **Unigine Heaven**: Thermal stability testing
- **CPU-Z**: CPU performance verification
- **CrystalDiskMark**: Storage performance testing

### Battery Testing
- **PowerTOP**: Power consumption analysis
- **Battery runtime**: Real-world usage testing
- **Standby drain**: Sleep power consumption

## Troubleshooting

### Performance Issues
- Verify CPU governor is set correctly: `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`
- Check thermal throttling: `dmesg | grep -i thermal`
- Monitor GPU performance: `nvidia-smi` (for NVIDIA)

### Battery Issues
- Check power consumption: `sudo powertop`
- Verify power profiles: `system76-power profile`
- Monitor charging behavior: `upower -i /org/freedesktop/UPower/devices/battery_BAT0`

### Thermal Issues
- Monitor temperatures: `sensors`
- Check fan operation: `pwmconfig` (if supported)
- Verify thermal limits: Check BIOS/UEFI settings

This configuration provides optimal gaming performance while maintaining reasonable power management for non-gaming use cases.
