From owner-dev-commits-src-all@freebsd.org Wed Sep 15 18:05:37 2021 Return-Path: Delivered-To: dev-commits-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C011066B8E8; Wed, 15 Sep 2021 18:05:37 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4H8p6T4tDVz4Zlc; Wed, 15 Sep 2021 18:05:37 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-ot1-f46.google.com with SMTP id c19-20020a9d6153000000b0051829acbfc7so4695370otk.9; Wed, 15 Sep 2021 11:05:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Rhv3BGY+iQs7Qdr6kHU4pe9RrH2U5GQzNe4ywNrGZeA=; b=xIe6Vaf11N6Tpd6ck4dAlrGHHVfUD5Bcryoy+wW8vR266ka+unfXXzY2n+fFmIUsbJ g2Mm7Ot1b3YQmvjiBwaLdQKKQFThQMpcSF07IKA7TSEA2bGnCEpkxOLf8khQpK5didPB rP7TdDQ5OPK05LSLCcrJ7FiSc2znk2a1quuVfD4Zh37wI9uJfQIaKzV3/ErsQtkoZqS1 IbY3V4yet+Iw24qbv8+in1wYGYUv0jC1/HKl1z2Ub3p55RmqigXbZtibM0/tYozbVCQH SBEioEkxH0JBJRznjvB3UF+iNnzq8h8wSRlN48vaEorEG6Rj2pnuw1vBsw/zcm2tJ4LK vZ/A== X-Gm-Message-State: AOAM532ZDWTlKLda2n1MiG2zBYHPfa3GlEjtYe4pu6mx1lR4XeC0QhFB T6Rdimz/nOQcNUSyxvAbw4ghQbaL1nHmWlwC9FIHKLy9k5Q= X-Google-Smtp-Source: ABdhPJxbl642Pxm4oeR/MJkGybc5ZoyI1DuO3xtzbdHoLq7DgvnefwJAQDNwFZ9MR7s1DYmmj2FhXdGLPWaSzca3dps= X-Received: by 2002:a9d:7159:: with SMTP id y25mr1100127otj.371.1631729130789; Wed, 15 Sep 2021 11:05:30 -0700 (PDT) MIME-Version: 1.0 References: <202109142046.18EKkfEN043871@gitrepo.freebsd.org> <0cec1c04-0b42-6297-37c5-43d1dcb0f8d5@FreeBSD.org> In-Reply-To: <0cec1c04-0b42-6297-37c5-43d1dcb0f8d5@FreeBSD.org> From: Alan Somers Date: Wed, 15 Sep 2021 12:05:19 -0600 Message-ID: Subject: Re: git: 1ecbc1d8e9d3 - main - cxgbe tom: Don't queue AIO requests on listen sockets. To: John Baldwin Cc: src-committers , "" , dev-commits-src-main@freebsd.org X-Rspamd-Queue-Id: 4H8p6T4tDVz4Zlc X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: dev-commits-src-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Sep 2021 18:05:37 -0000 On Wed, Sep 15, 2021 at 11:32 AM John Baldwin wrote: > On 9/15/21 8:47 AM, Alan Somers wrote: > > On Wed, Sep 15, 2021 at 9:21 AM John Baldwin wrote: > > > >> On 9/14/21 1:53 PM, Alan Somers wrote: > >>> On Tue, Sep 14, 2021 at 2:46 PM John Baldwin wrote: > >>> > >>>> The branch main has been updated by jhb: > >>>> > >>>> URL: > >>>> > >> > https://cgit.FreeBSD.org/src/commit/?id=1ecbc1d8e9d3fbcd8e68fc68f0a32944a12ddb1e > >>>> > >>>> commit 1ecbc1d8e9d3fbcd8e68fc68f0a32944a12ddb1e > >>>> Author: John Baldwin > >>>> AuthorDate: 2021-09-14 20:46:14 +0000 > >>>> Commit: John Baldwin > >>>> CommitDate: 2021-09-14 20:46:14 +0000 > >>>> > >>>> cxgbe tom: Don't queue AIO requests on listen sockets. > >>>> > >>>> This is similar to the fixes in 141fe2dceeae. One difference is > >> that > >>>> TOE sockets do not change states (listen vs non-listen) once > >> created, > >>>> so no lock is needed for SOLISTENING(). > >>>> > >>>> Sponsored by: Chelsio Communications > >>>> > >>> > >>> I've always wondered: what's the point to using AIO with sockets? > Can't > >>> everything socket-related be done better with non-blocking read/write > and > >>> kqueue? > >> > >> Zero-copy operation with TOE is why TOE uses AIO. Zero-copy of user > >> buffers > >> can't really work with the non-AIO APIs because the user buffer is free > to > >> be reused immediately after write(2) (and on the read side you don't > know > >> the buffer in advance to allow the NIC to write directly into the use > >> buffer). > >> > >> In theory we could support zero-copy using mb_ext_pgs for aio_write() > for > >> the non-TOE case similar to what sendfile() does. > >> > >> -- > >> John Baldwin > >> > > > > Interesting. Do you know of any common applications that include this > > optimization? I've been working on the AIO ecosystem for Rust. It would > > be good to ensure that this use case works, especially if zero-copy ever > > works for non-TOE. > > I do not, and I rely on patches I merged upstream to netperf (-a and -A > flags) > to test it. I believe there might be some proprietary bits in some FreeBSD > downstreams that might make use of this. > > -- > John Baldwin > Do you mean these -a and -A flags, or am I looking in the wrong place? -a sizespec Alter the send and receive buffer alignments on the local system. This defaults to 8 bytes. -A sizespec As -a, but for the remote system.