On Mon, May 7, 2018 at 3:59 PM, Alexander Duyck <alexander.du...@gmail.com> wrote: > On Mon, May 7, 2018 at 12:54 PM, Willem de Bruijn > <willemdebruijn.ker...@gmail.com> wrote: >> On Mon, May 7, 2018 at 2:57 PM, Willem de Bruijn >> <willemdebruijn.ker...@gmail.com> wrote: >>> On Mon, May 7, 2018 at 2:08 PM, Alexander Duyck >>> <alexander.du...@gmail.com> wrote: >>>> From: Alexander Duyck <alexander.h.du...@intel.com> >>>> >>>> This patch allows us to take care of unrolling the first segment and the >>>> last segment of the loop for processing the segmented skb. Part of the >>>> motivation for this is that it makes it easier to process the fact that the >>>> first fame and all of the frames in between should be mostly identical >>>> in terms of header data, and the last frame has differences in the length >>>> and partial checksum. >>>> >>>> In addition I am dropping the header length calculation since we don't >>>> really need it for anything but the last frame and it can be easily >>>> obtained by just pulling the data_len and offset of tail from the transport >>>> header. >>>> >>>> Signed-off-by: Alexander Duyck <alexander.h.du...@intel.com>
Acked-by: Willem de Bruijn <will...@google.com> >>> I'm not a fan of the more complicated control flow, as I pointed out >>> before. It only seems to save one assignment to uh from segs. >>> >>> Both follow-up patches are now more complex, because they need >>> to add the same code in two locations. >> >> With that said, if you feel strongly, I don't object. >> >> The removal of hdrlen and simplification of arguments is definitely >> an improvement. > > Thanks for being understanding about this. > > My preference is to keep the loop unrolled as it is since that way it > is not too different from the way we handle this for TCP so it will > maintenance of the two easier. Otherwise I have to add a bunch of > conditional checks inside the loop. > > The other advantage to unrolling it as I did is that I don't have to > deal with a ton of extra indentation for an if statement inside of a > while loop. Both good reasons. Thanks a lot for the overall cleanup.