From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTP id 4AC6B5A026D for ; Thu, 8 Feb 2024 17:05:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1707408341; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=/NDLVbwnCj9TxkOy82L3LcmXzjlVKT8v9rODS7ASz1U=; b=MIv1qelYJk8q8oWXy+wKoE+BoHQlSQWxIgOw0X/GsvfWNIu7OHeamhs8GuAjOp5RkeV8vQ VX6c8pbu5r6P2RtQqZdiqnnTK2DnMBSAtF7mDzI8Yazq6rV76Y7hPQgIZXetXwfMADKryH ClwzYwgL9zqyeXiRGjTCqbOQS932LAs= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-594-a1vUFzUWPYKcI-2WJl9-qA-1; Thu, 08 Feb 2024 11:05:39 -0500 X-MC-Unique: a1vUFzUWPYKcI-2WJl9-qA-1 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-33b226e710dso289432f8f.1 for ; Thu, 08 Feb 2024 08:05:39 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707408338; x=1708013138; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rwOYTMyLTVlPNzgB7Kt+u9DLJMxRYCta7SvbrO2/KZo=; b=Ekm+p0Kx0vao1wZsX1NFueVgZ/sNCfAkPz1jg75Tx1OznwaJh0j/azwM8/wt0e3QTi ue/oZg1U/hQeB0zMArJ9O4yVKRQ1vOKWxM/NpwENJ1VXDzmLc8tHLts67Nk8bRPqpgzO NxH9eqK8sCUYg+IasZcw1UsywBbLrOKqstCclMwZ5PuemflcXCbz4WZ78XNtCOsrONuY XuLnPZNmaHwIULTUBX0G9h769WRfF964J1tmOAFZLsjkZ8BSD1vWUGRrUhHrclPQ7/iQ D1MzfCPeVUsJbW2qdkcooWRy+Jbl3qjccp0+kcYzL3I5znyAQS5e3IZEoQONPZ73Pnd2 VtJg== X-Forwarded-Encrypted: i=1; AJvYcCXF0ijUsEkZumf5042OaP6etsn0XFuYQfWD42lZnKYMt0/DkJ0Abv19E0KjshmKZBbQVXaeQc+MNhKrcVj5S2pch/Vo X-Gm-Message-State: AOJu0YzB655VoEpZxvdR08f/l3D5a5X+NEljBf+v3FEtUJ177L+F7NfA 6l3vHCqqMXt5sYCIp9tregqkip42DDkdaPilbsM4IzyBkNa4yLBBC4gB/2c8IWqWOfjcp3uvp22 e/XiKbZ3ar7T98RLsXr3vZl3SY63ZuEAcsVZV0rJJ/fewzj2peA== X-Received: by 2002:adf:e481:0:b0:33b:50e9:738 with SMTP id i1-20020adfe481000000b0033b50e90738mr3372754wrm.7.1707408338341; Thu, 08 Feb 2024 08:05:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IEX4Ac60zokOK3oOLA8lgiA4BRDX5FRZEwWGgwRGAplHIYiAV8xPJys4SAzrwJ4Y6khidspfg== X-Received: by 2002:adf:e481:0:b0:33b:50e9:738 with SMTP id i1-20020adfe481000000b0033b50e90738mr3372737wrm.7.1707408337921; Thu, 08 Feb 2024 08:05:37 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVvZZLdz/QQsDRRAt71Vu78b56GnYhGU6MgE+NygA8uggxYJHDGLzh6sPKBlUd2cYzeKvEbI+oEGSDOOLccrI5H8vFXCIE8JOkPoeAUIIrHi560n0nXRk+n0RdkseZVWSqlmAzf2IHe9Ch1m99OFVRO0/jdrzkRcbIAEs6/m59i Received: from gerbillo.redhat.com (146-241-238-112.dyn.eolo.it. [146.241.238.112]) by smtp.gmail.com with ESMTPSA id bo16-20020a056000069000b0033b0d2ba3a1sm1714493wrb.63.2024.02.08.08.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 08:05:37 -0800 (PST) Message-ID: Subject: Re: [PATCH v2] tcp: add support for SO_PEEK_OFF From: Paolo Abeni To: Jon Maloy , passt-dev@passt.top, sbrivio@redhat.com, lvivier@redhat.com, dgibson@redhat.com Date: Thu, 08 Feb 2024 17:05:36 +0100 In-Reply-To: <20240208145017.2938015-1-jmaloy@redhat.com> References: <20240208145017.2938015-1-jmaloy@redhat.com> Autocrypt: addr=pabeni@redhat.com; prefer-encrypt=mutual; keydata=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 User-Agent: Evolution 3.50.3 (3.50.3-1.fc39) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-MailFrom: pabeni@redhat.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation Message-ID-Hash: BOKVJYUHANGCWSGBB3VYOY5ZPCDZGOQQ X-Message-ID-Hash: BOKVJYUHANGCWSGBB3VYOY5ZPCDZGOQQ X-Mailman-Approved-At: Thu, 08 Feb 2024 17:41:42 +0100 X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Thu, 2024-02-08 at 09:50 -0500, Jon Maloy wrote: > diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c > index fce5668a6a3d..ad03e0cee3c1 100644 > --- a/net/ipv4/tcp.c > +++ b/net/ipv4/tcp.c > @@ -863,6 +863,14 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t = *ppos, > } > EXPORT_SYMBOL(tcp_splice_read); > =20 > +int tcp_set_peek_offset(struct sock *sk, int val) > +{ > +=09WRITE_ONCE(sk->sk_peek_off, val); > + > +=09return 0; > +} > +EXPORT_SYMBOL(tcp_set_peek_offset); this looks equal to sk_set_peek_off. why not reusing the latter? [...] > @@ -2317,6 +2323,7 @@ static int tcp_recvmsg_locked(struct sock *sk, stru= ct msghdr *msg, size_t len, > =09long timeo; > =09struct sk_buff *skb, *last; > =09u32 urg_hole =3D 0; > +=09u32 peek_offset =3D 0; Very minor nit: the variable definition should follow the reverse xmas tree order. Here such order is already broken, but I still place this definition just before 'urg_hole'. > =09err =3D -ENOTCONN; > =09if (sk->sk_state =3D=3D TCP_LISTEN) > @@ -2774,6 +2785,7 @@ void __tcp_close(struct sock *sk, long timeout) > =09=09data_was_unread +=3D len; > =09=09__kfree_skb(skb); > =09} > +=09sk_set_peek_off(sk, -1); Why are you resetting the peek offset at close time? nobody can read or poll the socket at this point. You should instead reset it at tcp_disconnect() time. > =09/* If socket has been already reset (e.g. in tcp_reset()) - kill it. = */ > =09if (sk->sk_state =3D=3D TCP_CLOSE) > @@ -4492,7 +4504,7 @@ void tcp_done(struct sock *sk) > =09=09reqsk_fastopen_remove(sk, req, false); > =20 > =09WRITE_ONCE(sk->sk_shutdown, SHUTDOWN_MASK); > - > +=09sk_set_peek_off(sk, -1); Similar question here. tcp_done is called e.g. after an incoming reset() and the socket is still readable after an incoming reset, if there is pending data in the receive buffer. Resetting the peek offset could produce unexpected results for the reader. Cheers, Paolo