← Back to list

Linux Freeze Fix: “workqueue hogged CPU for >10000us” Error Server Unresponsive but Still Pingable

Recently I encountered a critical Linux server issue that caused repeated system freezes without any obvious resource exhaustion. The…

Hitesh Gupta · 2026-02-18 12:32 · 0 claps · 2.1 min read
#linux-kernel-bug #workqueue-hogged-cpu #server-error #switching-to-wq-unbound #kernel-workqueue
Open on Medium ↗
Wiki topics: 🔓 · Open Source

Linux Freeze Fix: “workqueue hogged CPU for >10000us” Error Server Unresponsive but Still Pingable

Recently I encountered a critical Linux server issue that caused repeated system freezes without any obvious resource exhaustion. The behavior was confusing because traditional monitoring indicators showed everything was normal.

This article explains:

✅ Symptoms observed ✅ Investigation process ✅ Root cause discovery ✅ Workaround that fixed the issue ✅ Lessons learned for production systems

🔥 The Problem

The server randomly became unresponsive after running normally for a few hours.

Kernel logs showed:

kernel: workqueue: blk_mq_requeue_work hogged CPU for >10000us 7 times, consider switching to WQ_UNBOUND

⚠️ Symptoms

The system behavior was unusual:

  • Machine freezes completely
  • Services stop responding
  • SSH login fails
  • Server remains pingable
  • CPU usage stays below 50%
  • Disk space available
  • Inodes available
  • No Out-Of-Memory (OOM) events

Essentially:

👉 The server appeared alive from a network perspective but was internally unusable.

🔁 Temporary Recovery

After reboot:

✅ Everything returned to normal

But:

❌ The issue reappeared again after several hours.

This indicated a deeper kernel or system-level problem rather than resource exhaustion.

🧪 Investigation Process

Since no obvious bottleneck existed, I focused on kernel logs and known bug reports.

Further research revealed similar errors:

workqueue: pm_runtime_work hogged CPU for 10000us

These reports were linked to kernel behavior after updates.

🧠 Key Insight

Many discussions suggested:

👉 Certain kernel/firmware combinations can cause workqueue tasks to stall.

This results in:

  • System freeze symptoms
  • Services stopping
  • SSH becoming unavailable
  • No visible CPU spike

🛠️ What I Tried

Instead of modifying the existing system directly, I took a safer approach:

  1. Created a snapshot of the droplet.
  2. Built a new server from that snapshot.

Surprisingly:

✅ The issue disappeared completely on the new instance.

This suggests the problem may be related to:

  • Kernel state
  • Driver conflicts
  • Runtime environment inconsistencies

📌 Additional Findings

During further research, I found reports describing similar freezes tied to:

pm_runtime_work hogged CPU

A known workaround mentioned:

👉 Disable IPv6 networking (kernel-level workaround).

🧩 Workaround: Disable IPv6

⚠️ This is a workaround — not necessarily the root fix.

Method 1 — GRUB Parameter

Edit:

/etc/default/gru

Add:

GRUB_CMDLINE_LINUX="ipv6.disable=1"

Update bootloader:

update-grub

Reboot.

Verify:

cat /proc/cmdline

Method 2 — Blacklist IPv6 Kernel Module

Edit:

/etc/modprobe.d/blacklist.conf

Add:

blacklist ipv6

Reboot system.

✅ Results

After:

  • Moving to a new droplet (snapshot-based rebuild)
  • Applying IPv6 workaround (optional validation step)

The system became stable and freezes stopped.

📚 Lessons Learned

1️⃣ Not all freezes are resource-related

Even with:

  • Low CPU usage
  • Available memory
  • Free disk space

Kernel-level issues can still break system usability.

2️⃣ Pingability does NOT mean health

Network ICMP response alone doesn’t guarantee system responsiveness.

3️⃣ Snapshots are powerful debugging tools

Recreating infrastructure from snapshots can isolate:

  • Kernel state issues
  • Hidden configuration corruption
  • Runtime anomalies

4️⃣ Kernel workqueue warnings should not be ignored

Messages like:

workqueue hogged CPU

can indicate deeper scheduler or driver issues.

🎯 Final Thoughts

Linux is extremely stable, but kernel updates or firmware interactions can sometimes introduce unpredictable behavior.

When facing unexplained freezes:

✅ Check kernel logs (dmesg, journalctl) ✅ Compare environments ✅ Try rebuilding from snapshot ✅ Investigate known kernel bugs

If you encounter similar behavior, rebuilding from snapshot or investigating kernel network modules may save hours of debugging.

If this helped you, feel free to share or discuss your findings.


메타데이터
post_id
d65ec6200fee
slug
linux-freeze-fix-workqueue-hogged-cpu-for-10000us-error-server-unresponsive-but-still-pingable-d65ec6200fee
url
https://medium.com/@hitcrazy634/linux-freeze-fix-workqueue-hogged-cpu-for-10000us-error-server-unresponsive-but-still-pingable-d65ec6200fee
canonical_url
https://medium.com/@hitcrazy634/linux-freeze-fix-workqueue-hogged-cpu-for-10000us-error-server-unresponsive-but-still-pingable-d65ec6200fee
author_url
https://medium.com/@hitcrazy634
status
ok
fetched_at
2026-06-26 21:52:29