I've also identified that my test NFS mount was using UDP, and performs several times *better* in terms of IO throughput when switched to TCP operation. This lack of performance (and responsiveness) may have been masking some other issues, so I'll use TCP for future testing.
And, indeed, if the umount process is stuck for long enough, the following kernel stack-trace is emitted:
Jul 26 21:38:49 illustrious kernel: [ 838.729063] INFO: task umount.nfs:2570 blocked for more than 120 seconds. kernel/ hung_task_ timeout_ secs" disables this message. 0d0>] ? bdi_sched_ wait+0x0/ 0x20 0de>] bdi_sched_ wait+0xe/ 0x20 3af>] __wait_ on_bit+ 0x5f/0x90 0d0>] ? bdi_sched_ wait+0x0/ 0x20 458>] out_of_ line_wait_ on_bit+ 0x78/0x90 360>] ? wake_bit_ function+ 0x0/0x40 094>] ? bdi_queue_ work+0xa4/ 0xe0 40f>] bdi_sync_ writeback+ 0x6f/0x80 440>] sync_inodes_ sb+0x20/ 0x30 f12>] __sync_ filesystem+ 0x82/0x90 ff9>] sync_filesystem s+0xd9/ 0x130 ce1>] sys_umount+ 0xb1/0xd0 1b2>] system_ call_fastpath+ 0x16/0x1b
Jul 26 21:38:49 illustrious kernel: [ 838.729069] "echo 0 > /proc/sys/
Jul 26 21:38:49 illustrious kernel: [ 838.729073] umount.nfs D 0000000000000000 0 2570 1 0x00000000
Jul 26 21:38:49 illustrious kernel: [ 838.729080] ffff8801d5747d98 0000000000000086 0000000000015bc0 0000000000015bc0
Jul 26 21:38:49 illustrious kernel: [ 838.729087] ffff880210ec03c0 ffff8801d5747fd8 0000000000015bc0 ffff880210ec0000
Jul 26 21:38:49 illustrious kernel: [ 838.729092] 0000000000015bc0 ffff8801d5747fd8 0000000000015bc0 ffff880210ec03c0
Jul 26 21:38:49 illustrious kernel: [ 838.729098] Call Trace:
Jul 26 21:38:49 illustrious kernel: [ 838.729110] [<ffffffff81165
Jul 26 21:38:49 illustrious kernel: [ 838.729115] [<ffffffff81165
Jul 26 21:38:49 illustrious kernel: [ 838.729123] [<ffffffff8153f
Jul 26 21:38:49 illustrious kernel: [ 838.729127] [<ffffffff81165
Jul 26 21:38:49 illustrious kernel: [ 838.729132] [<ffffffff8153f
Jul 26 21:38:49 illustrious kernel: [ 838.729140] [<ffffffff81085
Jul 26 21:38:49 illustrious kernel: [ 838.729144] [<ffffffff81165
Jul 26 21:38:49 illustrious kernel: [ 838.729149] [<ffffffff81166
Jul 26 21:38:49 illustrious kernel: [ 838.729154] [<ffffffff81166
Jul 26 21:38:49 illustrious kernel: [ 838.729160] [<ffffffff81169
Jul 26 21:38:49 illustrious kernel: [ 838.729164] [<ffffffff81169
Jul 26 21:38:49 illustrious kernel: [ 838.729171] [<ffffffff8115e
Jul 26 21:38:49 illustrious kernel: [ 838.729178] [<ffffffff81013
I've also identified that my test NFS mount was using UDP, and performs several times *better* in terms of IO throughput when switched to TCP operation. This lack of performance (and responsiveness) may have been masking some other issues, so I'll use TCP for future testing.