From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Yonghong Song <yhs@fb.com>, Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
"netdev\@vger.kernel.org" <netdev@vger.kernel.org>,
"bpf\@vger.kernel.org" <bpf@vger.kernel.org>
Subject: Re: [PATCH] libbpf: Don't error out if getsockopt() fails for XDP_OPTIONS
Date: Tue, 10 Sep 2019 00:06:04 +0100 [thread overview]
Message-ID: <87lfuxul2b.fsf@toke.dk> (raw)
In-Reply-To: <8e909219-a225-b242-aaa5-bee1180aed48@fb.com>
Yonghong Song <yhs@fb.com> writes:
> On 9/9/19 10:46 AM, Toke Høiland-Jørgensen wrote:
>> The xsk_socket__create() function fails and returns an error if it cannot
>> get the XDP_OPTIONS through getsockopt(). However, support for XDP_OPTIONS
>> was not added until kernel 5.3, so this means that creating XSK sockets
>> always fails on older kernels.
>>
>> Since the option is just used to set the zero-copy flag in the xsk struct,
>> there really is no need to error out if the getsockopt() call fails.
>>
>> Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
>> ---
>> tools/lib/bpf/xsk.c | 8 ++------
>> 1 file changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/tools/lib/bpf/xsk.c b/tools/lib/bpf/xsk.c
>> index 680e63066cf3..598e487d9ce8 100644
>> --- a/tools/lib/bpf/xsk.c
>> +++ b/tools/lib/bpf/xsk.c
>> @@ -603,12 +603,8 @@ int xsk_socket__create(struct xsk_socket **xsk_ptr, const char *ifname,
>>
>> optlen = sizeof(opts);
>> err = getsockopt(xsk->fd, SOL_XDP, XDP_OPTIONS, &opts, &optlen);
>> - if (err) {
>> - err = -errno;
>> - goto out_mmap_tx;
>> - }
>> -
>> - xsk->zc = opts.flags & XDP_OPTIONS_ZEROCOPY;
>> + if (!err)
>> + xsk->zc = opts.flags & XDP_OPTIONS_ZEROCOPY;
>>
>> if (!(xsk->config.libbpf_flags & XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD)) {
>> err = xsk_setup_xdp_prog(xsk);
>
> Since 'zc' is not used by anybody, maybe all codes 'zc' related can be
> removed? It can be added back back once there is an interface to use
> 'zc'?
Fine with me; up to the maintainers what they prefer, I guess? :)
-Toke
next prev parent reply other threads:[~2019-09-09 23:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-09 17:46 [PATCH] libbpf: Don't error out if getsockopt() fails for XDP_OPTIONS Toke Høiland-Jørgensen
2019-09-09 17:53 ` Yonghong Song
2019-09-09 23:06 ` Toke Høiland-Jørgensen [this message]
2019-09-13 18:53 ` Yonghong Song
2019-09-16 5:09 ` Björn Töpel
2019-09-16 8:08 ` Daniel Borkmann
2019-09-16 12:31 ` Toke Høiland-Jørgensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lfuxul2b.fsf@toke.dk \
--to=toke@redhat.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=netdev@vger.kernel.org \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.