Files
mirror_zfs/module/zfs
Brian Behlendorf 57f5a2008e Fix txg_quiesce thread deadlock
A deadlock was accidentally introduced by commit e95853a which
can occur when the system is under memory pressure.  What happens
is that while the txg_quiesce thread is holding the tx->tx_cpu
locks it enters memory reclaim.  In the context of this memory
reclaim it then issues synchronous I/O to a ZVOL swap device.
Because the txg_quiesce thread is holding the tx->tx_cpu locks
a new txg cannot be opened to handle the I/O.  Deadlock.

The fix is straight forward.  Move the memory allocation outside
the critical region where the tx->tx_cpu locks are held.  And for
good measure change the offending allocation to KM_PUSHPAGE to
ensure it never attempts to issue I/O during reclaim.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1274
2013-04-26 14:42:36 -07:00
..
2012-08-27 12:01:37 -07:00
2013-01-08 10:35:43 -08:00
2013-01-08 10:35:35 -08:00
2013-01-08 10:35:44 -08:00
2010-08-26 14:24:34 -07:00
2010-08-31 13:41:58 -07:00
2013-02-06 11:19:58 -08:00
2013-02-04 16:39:08 -08:00
2013-01-08 10:35:35 -08:00
2013-04-12 09:01:36 -07:00
2012-08-27 12:01:37 -07:00
2013-01-08 10:35:35 -08:00
2013-01-08 10:35:35 -08:00
2013-01-25 15:07:40 -08:00
2013-01-08 10:35:35 -08:00
2013-02-06 11:19:58 -08:00
2013-04-26 14:42:36 -07:00
2012-09-17 11:22:23 -07:00
2013-01-08 10:35:35 -08:00
2010-08-31 13:41:58 -07:00
2012-10-15 16:01:54 -07:00
2010-08-31 08:38:46 -07:00
2013-03-06 15:48:48 -08:00
2012-08-27 12:01:37 -07:00
2013-03-18 16:47:43 -07:00
2012-08-27 12:01:37 -07:00
2010-12-07 16:05:25 -08:00
2010-08-31 13:41:59 -07:00
2010-08-31 13:41:58 -07:00
2013-01-08 10:35:35 -08:00
2010-08-31 13:41:58 -07:00
2012-08-27 12:01:37 -07:00
2013-01-08 10:35:42 -08:00
2012-08-27 12:01:37 -07:00
2013-04-26 14:42:36 -07:00
2012-08-27 12:01:37 -07:00
2012-08-27 12:01:37 -07:00
2013-01-08 10:35:42 -08:00
2012-09-05 08:44:58 -07:00
2013-01-08 10:35:35 -08:00
2010-08-31 13:41:58 -07:00
2013-01-25 15:07:40 -08:00
2012-02-09 16:37:48 -08:00
2013-04-19 15:43:16 -07:00
2011-03-02 11:44:34 -08:00
2012-12-20 09:56:28 -08:00
2010-08-31 13:41:50 -07:00
2012-12-10 09:44:45 -08:00
2011-05-04 10:02:37 -07:00
2013-01-23 16:33:29 -08:00
2013-02-12 10:27:39 -08:00
2010-09-17 16:24:15 -07:00