From owner-svn-src-all@freebsd.org Mon Oct 14 10:25:03 2019 Return-Path: Delivered-To: svn-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 E6A66F64E6; Mon, 14 Oct 2019 10:25:03 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46sF730PhPz4CYH; Mon, 14 Oct 2019 10:25:02 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.129.235]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 6A9B7262041; Mon, 14 Oct 2019 12:25:00 +0200 (CEST) Subject: Re: svn commit: r353292 - in head/sys: contrib/ipfilter/netinet dev/firewire dev/iicbus dev/usb/net kern net netgraph netinet netinet6 netipsec netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib From: Hans Petter Selasky To: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910072240.x97Me60x065650@repo.freebsd.org> <4e5b6b75-b230-8aa0-61db-077bfbf7cf1f@selasky.org> Message-ID: Date: Mon, 14 Oct 2019 12:24:03 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 MIME-Version: 1.0 In-Reply-To: <4e5b6b75-b230-8aa0-61db-077bfbf7cf1f@selasky.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46sF730PhPz4CYH X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of hps@selasky.org designates 2a01:4f8:c17:6c4b::2 as permitted sender) smtp.mailfrom=hps@selasky.org X-Spamd-Result: default: False [-4.91 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+a:mail.turbocat.net:c]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[selasky.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; IP_SCORE(-2.61)[ip: (-9.15), ipnet: 2a01:4f8::/29(-2.09), asn: 24940(-1.81), country: DE(-0.01)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Oct 2019 10:25:04 -0000 On 2019-10-14 12:03, Hans Petter Selasky wrote: > On 2019-10-08 00:40, Gleb Smirnoff wrote: >> Author: glebius >> Date: Mon Oct  7 22:40:05 2019 >> New Revision: 353292 >> URL: https://svnweb.freebsd.org/changeset/base/353292 >> >> Log: >>    Widen NET_EPOCH coverage. >>    When epoch(9) was introduced to network stack, it was basically >>    dropped in place of existing locking, which was mutexes and >>    rwlocks. For the sake of performance mutex covered areas were >>    as small as possible, so became epoch covered areas. > > Hi Gleb, > > There are several callers of arpresolve() outside sys/net, which now > require EPOCH(), which appears missing in your patch: > > Same for nd6_resolve() I believe. > > --HPS > >> (kgdb) #0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55 >> #1  doadump (textdump=0) at /usr/src/sys/kern/kern_shutdown.c:392 >> #2  0xffffffff804948fa in db_dump (dummy=, >> dummy2=, dummy3=, dummy4=) >>     at /usr/src/sys/ddb/db_command.c:575 >> #3  0xffffffff804946bc in db_command (last_cmdp=, >> cmd_table=, dopager=1) at >> /usr/src/sys/ddb/db_command.c:482 >> #4  0xffffffff8049442d in db_command_loop () >>     at /usr/src/sys/ddb/db_command.c:535 >> #5  0xffffffff80497658 in db_trap (type=, >> code=) >>     at /usr/src/sys/ddb/db_main.c:252 >> #6  0xffffffff80c09e27 in kdb_trap (type=3, code=0, tf=) >>     at /usr/src/sys/kern/subr_kdb.c:692 >> #7  0xffffffff8102de77 in trap (frame=0xfffffe00600dfbe0) >>     at /usr/src/sys/amd64/amd64/trap.c:585 >> #8  >> #9  kdb_enter (why=0xffffffff811d7eaa "panic", msg=) >>     at /usr/src/sys/kern/subr_kdb.c:479 >> #10 0xffffffff80bbe96a in vpanic (fmt=, ap=> out>) >>     at /usr/src/sys/kern/kern_shutdown.c:897 >> #11 0xffffffff80bbe703 in panic ( >>     fmt=0xffffffff81c85638 "G\320\031\201\377\377\377\377") >>     at /usr/src/sys/kern/kern_shutdown.c:835 >> #12 0xffffffff80d4484f in arpresolve (ifp=0xfffff8000496b000, is_gw=0, >> m=0x0,     dst=0xfffffe00600dfe68, desten=0xfffffe00600dfe50 "", >> pflags=0x0, plle=0x0) >>     at /usr/src/sys/netinet/if_ether.c:628 >> #13 0xffffffff82408243 in addr4_resolve (src_in=0xfffff80007ef5210, >>     dst_in=0xfffff80007ef5290, addr=, edst=> out>,     ifpp=) >>     at /usr/src/sys/ofed/drivers/infiniband/core/ib_addr.c:401 >> #14 addr_resolve (src_in=0xfffff80007ef5210, >> dst_in=0xfffff80007ef5290,     addr=0xfffff80108f20520) >>     at /usr/src/sys/ofed/drivers/infiniband/core/ib_addr.c:688 >> #15 0xffffffff82407872 in rdma_resolve_ip ( >>     client=0xffffffff82456450 , src_addr=, >>     dst_addr=0xfffffe00600e0054, addr=0xfffff80108f20520, >> timeout_ms=2000,     callback=0xffffffff82416b40 , >> context=0xfffff80108f20400) >>     at /usr/src/sys/ofed/drivers/infiniband/core/ib_addr.c:789 >> #16 0xffffffff82416352 in rdma_resolve_addr (id=0xfffff80108f20400, >>     src_addr=, dst_addr=0xfffffe00600e0054, >> timeout_ms=2000) >>     at /usr/src/sys/ofed/drivers/infiniband/core/ib_cma.c:3039 >> #17 0xffffffff8243786b in ucma_resolve_ip >> (linux_file=0xfffff80135c08400,     inbuf=, >> in_len=, out_len=) >>     at /usr/src/sys/ofed/drivers/infiniband/core/ib_ucma.c:694 >> #18 0xffffffff82436ee4 in ucma_write (filp=, >> buf=, len=72, pos=) >>     at /usr/src/sys/ofed/drivers/infiniband/core/ib_ucma.c:1625 >> #19 0xffffffff823a1ad3 in linux_file_write (file=0xfffff8015403c0a0, >>     uio=0xfffffe00600e01c0, active_cred=, >> flags=, td=) >>     at /usr/src/sys/compat/linuxkpi/common/src/linux_compat.c:1445 >> #20 0xffffffff80c2f511 in fo_write (fp=0xfffff8015403c0a0, >> uio=0xfffffe00600e01c0, active_cred=0xfffffe00600dfba0, flags=1999, >>     td=0xfffff8002e4cf000) at /usr/src/sys/sys/file.h:324 >> #21 dofilewrite (td=0xfffff8002e4cf000, fd=7, fp=0xfffff8015403c0a0, >>     auio=0xfffffe00600e01c0, offset=, flags=> out>) >>     at /usr/src/sys/kern/sys_generic.c:564 >> #22 0xffffffff80c2f149 in kern_writev (td=0xfffff8002e4cf000, fd=7, >>     auio=0xfffffe00600e01c0) at /usr/src/sys/kern/sys_generic.c:491 >> #23 0xffffffff80c2f0f3 in sys_write (td=0xffffffff81c85638 >> ,     uap=) at >> /usr/src/sys/kern/sys_generic.c:406 >> #24 0xffffffff8102ee45 in syscallenter (td=0xfffff8002e4cf000) >>     at /usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:144 >> #25 amd64_syscall (td=0xfffff8002e4cf000, traced=0) >>     at /usr/src/sys/amd64/amd64/trap.c:1162 Maybe you could keep arpresolve() w/o need for locking epoch, and then create a new function arpresolve_epoched() which has the assert. --HPS