1. 24 Aug, 2018 3 commits
  2. 23 Aug, 2018 36 commits
  3. 22 Aug, 2018 1 commit
    • John Fastabend's avatar
      bpf: sockmap: write_space events need to be passed to TCP handler · 9b2e0388
      John Fastabend authored
      When sockmap code is using the stream parser it also handles the write
      space events in order to handle the case where (a) verdict redirects
      skb to another socket and (b) the sockmap then sends the skb but due
      to memory constraints (or other EAGAIN errors) needs to do a retry.
      
      But the initial code missed a third case where the
      skb_send_sock_locked() triggers an sk_wait_event(). A typically case
      would be when sndbuf size is exceeded. If this happens because we
      do not pass the write_space event to the lower layers we never wake
      up the event and it will wait for sndtimeo. Which as noted in ktls
      fix may be rather large and look like a hang to the user.
      
      To reproduce the best test is to reduce the sndbuf size and send
      1B data chunks to stress the memory handling. To fix this pass the
      event from the upper layer to the lower layer.
      Signed-off-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      9b2e0388