From: Pete Wyckoff <[EMAIL PROTECTED]>
Subject: [Stgt-devel] [PATCH] iscsi tcp: optimize rx
Date: Sat, 29 Dec 2007 14:01:58 -0500

> Avoid another trip through the event loop in the case of an
> RX with no AHS, by jumping up to the top of the state machine
> directly.  This saves about 500 ns per command on my hardware.
> 
> Signed-off-by: Pete Wyckoff <[EMAIL PROTECTED]>
> ---
>  usr/iscsi/iscsid.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/usr/iscsi/iscsid.c b/usr/iscsi/iscsid.c
> index 8872818..bbab32d 100644
> --- a/usr/iscsi/iscsid.c
> +++ b/usr/iscsi/iscsid.c
> @@ -1845,9 +1845,11 @@ again:
>               if (conn->rx_size) {
>                       conn->rx_buffer = conn->req.ahs;
>                       conn->rx_iostate = IOSTATE_RX_AHS;
> -             } else
> +             } else {
>                       conn->rx_iostate = hdigest ?
>                               IOSTATE_RX_INIT_HDIGEST : IOSTATE_RX_INIT_DATA;
> +                     goto again;
> +             }
>  
>               /*
>                * if the datasize is zero, we must go to

Hmm, here we have:

                if (conn->rx_iostate == IOSTATE_RX_INIT_DATA)
                        goto again;
                else if (conn->rx_iostate != IOSTATE_RX_AHS)
                        break;

conn->rx_iostate == IOSTATE_RX_INIT_DATA case already goes to again?
What case do you try to improve?
_______________________________________________
Stgt-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/stgt-devel

Reply via email to