Mike Christie wrote:
> I have uploaded a new bug fix release to:
> http://kernel.org/pub/linux/kernel/people/mnc/open-iscsi/releases/open-iscsi-2.0-871.3.tar.gz
> This fixes two bugs:
> 2. Instead of failover taking node.session.timeo.replacement_timeout
> seconds, it takes scsi_cmd->timeout * scsi_cmd->retries seconds (with
> default settings this is about 60 secs * 5 = 3 minutes).
> Both of these bugs are iscsi kernel modules bugs. #2 is a regression
> that was added in the iscsi kernel modules in open-iscsi-2.0-871.0 and
> the iscsi kernel modules in upstream kernels 2.6.28 and newer.
Mike,
Looking on the 2.0.871.2 to .3 diff (below), I don't see where is the relation
to using the
scsi cmd timeout/retries vs the session replacement_timeout.
More over, this patch has two out of three-four element present in the patch
posted on your
"Re: Failover time of iSCSI multipath devices" march 3rd response, where there
you have said that
"There is a race where the session->state can get reset due to the xmit thread
throwing an error after we have set the session->state but before we have set
the stop_stage".
Can you clarify this please? maybe there is some error here. I didn't hit the
problem with the replacement_timeout... also when you say "failover taking" do
you mean for the multi-path to go and use a different device when working in
failover configuration (e.g not multibus)?
Or.
diff -r -u -p open-iscsi-2.0-871.2/Changelog open-iscsi-2.0.871.3/Changelog
--- open-iscsi-2.0-871.2/Changelog 2010-01-13 07:53:13.000000000 +0200
+++ open-iscsi-2.0.871.3/Changelog 2010-03-06 00:32:44.000000000 +0200
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+open-iscsi-2.0-871.2 - open-iscsi-2.0.871.3
+
+Mike Christie (2):
+ iscsi modules: Fix recovery slowdown
+ iscsi modules: iscsi_tcp: wake xmit thread when killing session
+
+
+-------------------------------------------------------------------
open-iscsi-2.0-871.1 - open-iscsi-2.0.871.2
Mike Christie (1):
diff -r -u -p open-iscsi-2.0-871.2/kernel/iscsi_tcp.c
open-iscsi-2.0.871.3/kernel/iscsi_tcp.c
--- open-iscsi-2.0-871.2/kernel/iscsi_tcp.c 2010-01-13 07:53:13.000000000
+0200
+++ open-iscsi-2.0.871.3/kernel/iscsi_tcp.c 2010-03-06 00:32:44.000000000
+0200
@@ -568,9 +568,10 @@ static void iscsi_sw_tcp_conn_stop(struc
struct iscsi_conn *conn = cls_conn->dd_data;
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
struct iscsi_sw_tcp_conn *tcp_sw_conn = tcp_conn->dd_data;
+ struct socket *sock = tcp_sw_conn->sock;
/* userspace may have goofed up and not bound us */
- if (!tcp_sw_conn->sock)
+ if (!sock)
return;
/*
* Make sure our recv side is stopped.
@@ -581,6 +582,11 @@ static void iscsi_sw_tcp_conn_stop(struc
set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx);
write_unlock_bh(&tcp_sw_conn->sock->sk->sk_callback_lock);
+ if (sock->sk->sk_sleep && waitqueue_active(sock->sk->sk_sleep)) {
+ sock->sk->sk_err = EIO;
+ wake_up_interruptible(sock->sk->sk_sleep);
+ }
+
iscsi_conn_stop(cls_conn, flag);
iscsi_sw_tcp_release_conn(conn);
}
diff -r -u -p open-iscsi-2.0-871.2/kernel/libiscsi.c
open-iscsi-2.0.871.3/kernel/libiscsi.c
--- open-iscsi-2.0-871.2/kernel/libiscsi.c 2010-01-13 07:53:13.000000000
+0200
+++ open-iscsi-2.0.871.3/kernel/libiscsi.c 2010-03-06 00:32:44.000000000
+0200
@@ -2692,14 +2692,15 @@ static void iscsi_start_session_recovery
session->state = ISCSI_STATE_TERMINATE;
else if (conn->stop_stage != STOP_CONN_RECOVER)
session->state = ISCSI_STATE_IN_RECOVERY;
+
+ old_stop_stage = conn->stop_stage;
+ conn->stop_stage = flag;
spin_unlock_bh(&session->lock);
del_timer_sync(&conn->transport_timer);
iscsi_suspend_tx(conn);
spin_lock_bh(&session->lock);
- old_stop_stage = conn->stop_stage;
- conn->stop_stage = flag;
conn->c_stage = ISCSI_CONN_STOPPED;
spin_unlock_bh(&session->lock);
--
You received this message because you are subscribed to the Google Groups
"open-iscsi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/open-iscsi?hl=en.