RE: DCB support for iSCSI

2011-01-06 Thread Shyam_Iyer


 -Original Message-
 From: Mike Christie [mailto:micha...@cs.wisc.edu]
 Sent: Monday, January 03, 2011 3:39 PM
 To: open-iscsi@googlegroups.com
 Cc: Iyer, Shyam; mark.d.rus...@intel.com
 Subject: Re: DCB support for iSCSI
 
 On 12/22/2010 11:22 PM, shyam_i...@dell.com wrote:
  VLAN creation.
   From what I've seen iSCSI support in DCB would work similar
  to FCoE, ie the iSCSI traffic will be sent via a separate
  VLAN. Which we would need to create, eventually.
  So basically we would need something similar to 'fipvlan'
  or integrate this functionality into open-iscsi.
 
  Well there are more methods actually. Separating them into separate
 VLAN's would tag them to the priority of the VLAN(8 in all) however
 sometimes the tag is based on the application type port number.
 
  So, in the iSCSI case the well known port number 3260 becomes the
 priority decider.
 
 
 I actually broke the code to support ports other than 3260 in a rhel
 test release, and so I know people use other ports in real life setups
 :) I would bet the vast majority of times it is 3260, but it is not
 always so I do not think you can count on it if that is what you are
 saying.
 
The spec tries to make it easy by assigning a priority tag based on the 
application's well known port number. As long as the lldp peers know what port 
number to use for priority tagging it should be fine.

 
  Usecase - Tag all iSCSI traffic to a specific port type in a
 virtualized environment. Its very cumbersome to manage vlans in the
 virtualized environments.
 
  Also ETS determines that within the same priority group the bandwidth
 could be split further. Now, this could be per connection.  My hunch is
 that we need more flexible ways of splitting the bandwidth within a
 priority group per connection via the lldpad.
 
 
 What is ETS?
Sorry for the acronym.. It means enhanced transmission selection. This link is 
pretty good.. 
http://www.ieee802.org/1/files/public/docs2008/az-wadekar-ets-proposal-0608-v1.01.pdf

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: on-off periodic hangs in scsi commands

2011-01-06 Thread Vladislav Bolkhovitin
Spelic, on 01/05/2011 09:56 PM wrote:
 I am cc-ing the open-iscsi and scst people to see if they can suggest a 
 way to debug the iscsi one. In particular it would be very interesting 
 to get the number of commands received and replied from target side, and 
 match it to the number of commands submitted from initiator side. (but I 
 suspect these status variables do not exist) If target side says it has 
 already replied, but initiator side sees the reply after 1 second... 
 that would be very meaningful. The bad thing is that I do not have much 
 time to debug this :-(

For SCST you can enable scsi logging. Then you will see all the coming
SCSI commands and responses for them in the kernel log. To deal with the
large volume of logs this facility can produce, you will need to switch
your logging application (syslogd?) into async mode (no fsync after each
logged line).

Vlad

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: [PATCH 06/16] BNX2I: Added code to handle the binding of an existing connection

2011-01-06 Thread Mike Christie

On 01/06/2011 12:54 AM, Or Gerlitz wrote:

Mike Christie wrote:

I went a different way. In the attached patch we detect the problem when
binding and will force a disconnect of the old ep before binding a new one.
Try it out and let me know.



--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -651,8 +651,7 @@ free_addr:

  static int
  iscsi_sw_tcp_conn_bind(struct iscsi_cls_session *cls_session,
-  struct iscsi_cls_conn *cls_conn, uint64_t transport_eph,
-  int is_leading)
+  struct iscsi_cls_conn *cls_conn, uint64_t transport_eph)
  {
struct Scsi_Host *shost = iscsi_session_to_shost(cls_session);
struct iscsi_host *ihost = shost_priv(shost);
@@ -685,7 +684,7 @@ iscsi_sw_tcp_conn_bind(struct iscsi_cls_session 
*cls_session,
if (err)
goto free_socket;

-   err = iscsi_conn_bind(cls_session, cls_conn, is_leading);
+   err = iscsi_conn_bind(cls_session, cls_conn, NULL);


should this be transport_eph instead of NULL?



No. iscsi_tcp does not use the iscsi_endpoint abstraction becuase it 
actually uses normal old sockets that are created in userspace.





--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -3137,16 +3137,18 @@ void iscsi_conn_stop(struct iscsi_cls_conn *cls_conn, 
int flag)
  EXPORT_SYMBOL_GPL(iscsi_conn_stop);

  int iscsi_conn_bind(struct iscsi_cls_session *cls_session,
-   struct iscsi_cls_conn *cls_conn, int is_leading)
+   struct iscsi_cls_conn *cls_conn,
+   struct iscsi_endpoint *ep)
  {
struct iscsi_session *session = cls_session-dd_data;
struct iscsi_conn *conn = cls_conn-dd_data;

spin_lock_bh(session-lock);
-   if (is_leading)
-   session-leadconn = conn;
+   session-leadconn = conn;
spin_unlock_bh(session-lock);

+   ep-conn = cls_conn;
+   cls_conn-ep = ep;


if not, it doesn't look like ep can be null here...


Will fix. Tested offload and did not test software iscsi.





--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -388,7 +388,7 @@ extern void iscsi_conn_teardown(struct iscsi_cls_conn *);
  extern int iscsi_conn_bind(struct iscsi_cls_session *, struct iscsi_cls_conn 
*,
-  int);
+  struct iscsi_endpoint *);



--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -95,7 +95,7 @@ struct iscsi_transport {
uint32_t cid);
int (*bind_conn) (struct iscsi_cls_session *session,
  struct iscsi_cls_conn *cls_conn,
- uint64_t transport_eph, int is_leading);
+ uint64_t transport_eph);


so we're implicitly casting from u64 to ep pointer? I guess this should be fine.



No. The transport-bind_conn takes the u64 id. The driver then looks 
that up and passes iscsi_bind_conn a pointer to the ep struct.


--
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: [PATCH 0/8] Added bug fixes and several features for BNX2I

2011-01-06 Thread Mike Christie

On 01/05/2011 02:44 PM, Eddie Wai wrote:

Hello,

This patch set contains two fixes and added various features as titled.
The two fixes are:
1 - connection cleanup fix which fixes a chip panic issue
2 - nopout LUN field fix which fixes nopout timeouts

The features added includes TCP timestamp, jumbo MTU, text pdu support
for discovery offload, and 57712(E) support.


All patches but [PATCH 5/8] BNX2I: Added TCP timestamps option support 
look ok. I am working on a common way to set tcp settings for 2.6.39, so 
lets wait on that.




   BNX2I: Added TCP timestamps option support



--
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.