So I have verified that the proposed dpkg no longer hangs. I used the following script to generate heavy load on the system:
#!/bin/bash # # Generate IO load echo "starting load" #dd if=/dev/zero of=zero & sleep 1s dd if=/dev/urandom of=urandom & sleep 1s dd if=/dev/sda1 of=sda1_backup1 & sleep 1s dd if=/dev/sda1 of=sda1_backup2 & sleep 1s dd if=/dev/sda1 of=sda1_backup3 & sleep 1s dd if=/dev/sda1 of=sda1_backup4 & echo "All load running" sleep 10m echo "10 minutes passed" sleep 10m echo "Finishing" killall dd
And then run a couple of apt-get dist-upgrades with some large packages. Although dpkg ran really slowly (due to the load) I was unable to trigger the kernel D state hang.
So I have verified that the proposed dpkg no longer hangs. I used the following script to generate heavy load on the system:
#!/bin/bash
#
# Generate IO load
echo "starting load"
#dd if=/dev/zero of=zero &
sleep 1s
dd if=/dev/urandom of=urandom &
sleep 1s
dd if=/dev/sda1 of=sda1_backup1 &
sleep 1s
dd if=/dev/sda1 of=sda1_backup2 &
sleep 1s
dd if=/dev/sda1 of=sda1_backup3 &
sleep 1s
dd if=/dev/sda1 of=sda1_backup4 &
echo "All load running"
sleep 10m
echo "10 minutes passed"
sleep 10m
echo "Finishing"
killall dd
And then run a couple of apt-get dist-upgrades with some large packages. Although dpkg ran really slowly (due to the load) I was unable to trigger the kernel D state hang.