[Stgt-devel] iSER patches, second release

FUJITA Tomonori tomof
Mon Sep 10 19:38:02 CEST 2007


On Thu, 6 Sep 2007 16:10:28 -0400
Pete Wyckoff <pw at osc.edu> wrote:

> nezhinsky at gmail.com wrote on Thu, 06 Sep 2007 15:22 +0300:
> > I have a few questions regarding the code. I'll post them in different mails.
> 
> Thanks for looking this over.
> 
> > In handle_wc() in case of IBV_WC_RECV, iscsi_rx_handler() gets called and
> > the received pdu is passed as an implicit parameter, through
> > ci->rcv_comm_event.
> > Only then it gets reposted.
> > 
> > First, the parameter passing method somewhat bothers me because it seems
> > that on a SMP system two RECV completions may arrive through different
> > CPUs and then we end up with garbage in ci->rcv_comm_event.
> > Do I miss anything on this? Are all completions handled by the same CPU?
> > Is there an implicit guard somewhere?
> 
> Yes, it bothers me a bit too.  There is some mismatch in how iscsi
> wants to read bytes when it needs them:  48 first, then look for AHS
> and possible read those, then maybe some immediate data.  Three
> separate read(fd, ...) for one control PDU.  On the other hand, RDMA
> gets all the data in one go.  So we compromise by feeding the bytes
> into iscsi via memcpy for each of its small do_recv operations.
> 
> It would be possible to have a separate RX state machine just for
> RDMA, but we didn't want to diverge the code so much.  I think this
> way works, although Robin points out that there are bugs somewhere.

iSER guys, please try not to be away from the iSCSI tcp code (that is,
don't invent something like RDMA RX state machine). We need stable
iSER code first. After that is merged, then you can talk about the
performance.



More information about the stgt mailing list