From owner-freebsd-net@freebsd.org Wed Oct 9 13:56:22 2019 Return-Path: Delivered-To: freebsd-net@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 452B214C932 for ; Wed, 9 Oct 2019 13:56:22 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) 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 46pG393PNBz4SNY; Wed, 9 Oct 2019 13:56:21 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-qk1-x72f.google.com with SMTP id u184so2298090qkd.4; Wed, 09 Oct 2019 06:56:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=IUfXUxcWi1eL+T6/4+LE5ui0PzrO0OA1qr6Spya9g8o=; b=csaQU2i7DvGgAdr0Sw6j+hyYb19a/aahLnNiL6783RUb1CT942NbsQvx6pu2/8+EVO jv3wL1n7IuMbsepxwQUiwNQ7smnTU//GKyXJLoC2yX75Num3JEivO1CRfAkj8ued5ut8 ETIG0CDbGIPC9lg4sYi3bvasZz0vj7FD8rPIKj9CZsy1PkVaMzikPNbdMXs2GnElGbX/ uphiok+lA6hhugF/IpHzKLx+FAEa9x5k6Lj8Nh/fvKO8dCPfdgOR/Rg2lYXLRy1M+m2c alLkBCo6Dj5+LOIC7IUZx/wNVqxQ/nicyLbjNJRNT99XNaf1LmWT0b6UZqO6XYYTnkPp jduA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=IUfXUxcWi1eL+T6/4+LE5ui0PzrO0OA1qr6Spya9g8o=; b=B/zkHf8G0jNtl7YHMu8zMoADuJHloiWe2KYyQUH72xGnwz9VviTcNoir9ly2RNYmj/ UXd0fe3gGdnP6tna4kAQ1BAK4qbO5s9XEGQnTngPEidCfaqkp/AG71AqWM4xJeoE6XfF WQRvsNJxjva54eJOTPSFUK8MEWmwXLK1iGQyQyJyKU3YIX4DPmcJOwaLBwVNBHOspNkz EG0/dh17xlv7X4inSKkeYWgI7Hlx26r9tPxmZ3w5ZO/cdg7xh/vbg3gHt0PEFn5KKFZ4 Z3DD1Kc+G8OEAI709I+4yJZOYrtW17RLblPjn0evEifEWTsnf3mQ742hBu0lCQPKJChT i4TQ== X-Gm-Message-State: APjAAAVCVSgWqL8Q4DC6diIwmXKwJzgHeFtxHzn0mdU4eZMMPVaz7baK OFapd+IZgJx/WMxL6YUFMn2IXs1I X-Google-Smtp-Source: APXvYqxFNLk4z/4jQl0JMkJDr+u0o+hFiLwdZnhPumyEUrHM+mSI9rvtNcP5FmH4MYdbypXuSBrFSg== X-Received: by 2002:a37:a616:: with SMTP id p22mr3437840qke.469.1570629379976; Wed, 09 Oct 2019 06:56:19 -0700 (PDT) Received: from raichu (toroon0560w-lp130-05-69-158-183-252.dsl.bell.ca. [69.158.183.252]) by smtp.gmail.com with ESMTPSA id o124sm921243qke.66.2019.10.09.06.56.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Oct 2019 06:56:19 -0700 (PDT) Sender: Mark Johnston Date: Wed, 9 Oct 2019 09:56:16 -0400 From: Mark Johnston To: Hans Petter Selasky Cc: Yuri Pankov , freebsd-net , Gleb Smirnoff Subject: Re: panic: sleeping in an epoch section Message-ID: <20191009135616.GC66126@raichu> References: <86cc5d82-50d0-93eb-5900-54e8b0032a08@yuripv.net> <050ba95e-d0d5-dd1a-db6f-9a5c07142efe@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <050ba95e-d0d5-dd1a-db6f-9a5c07142efe@selasky.org> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 46pG393PNBz4SNY X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=csaQU2i7; dmarc=none; spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::72f as permitted sender) smtp.mailfrom=markjdb@gmail.com X-Spamd-Result: default: False [-4.53 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCVD_IN_DNSWL_NONE(0.00)[f.2.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.83)[ip: (-9.44), ipnet: 2607:f8b0::/32(-2.53), asn: 15169(-2.14), country: US(-0.05)]; FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com]; MID_RHS_NOT_FQDN(0.50)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com]; RCVD_TLS_ALL(0.00)[] X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 13:56:22 -0000 On Wed, Oct 09, 2019 at 10:40:04AM +0200, Hans Petter Selasky wrote: > On 2019-10-09 06:36, Yuri Pankov wrote: > > Tried updating from r353072 to r353334 and getting the following panic > > reproducibly on boot (starting dhclient?): > > > > panic: sleeping in an epoch section > > cpuid = 5 > > time = 1570591558 > > KDB: stack backtrace: > > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > > 0xfffffe00af780140 > > vpanic() at vpanic+0x19d/frame 0xfffffe00af780190 > > panic() at panic+0x43/frame 0xfffffe00af7801f0 > > _sleep() at _sleep+0x463/frame 0xfffffe00af780290 > > pause_sbt() at pause_sbt+0x10f/frame 0xfffffe00af7802d0 > > e1000_write_phy_reg_mdic() at e1000_write_phy_reg_mdic+0xee/frame > > 0xfffffe00af780310 > > e1000_enable_phy_wakeup_reg_access_bm() at > > e1000_enable_phy_wakeup_reg_access_bm+0x2b/frame 0xfffffe00af780330 > > e1000_update_mc_addr_list_pch2lan() at > > e1000_update_mc_addr_list_pch2lan+0x3a/frame 0xfffffe00af780370 > > em_if_multi_set() at em_if_multi_set+0x1d4/frame 0xfffffe00af7803c0 > > iflib_if_ioctl() at iflib_if_ioctl+0x100/frame 0xfffffe00af780430 > > if_addmulti() at if_addmulti+0x2af/frame 0xfffffe00af7804d0 > > in_joingroup_locked() at in_joingroup_locked+0x235/frame 0xfffffe00af780570 > > in_joingroup() at in_joingroup+0x5c/frame 0xfffffe00af7805d0 > > in_control() at in_control+0xadf/frame 0xfffffe00af780680 > > ifioctl() at ifioctl+0x40f/frame 0xfffffe00af780750 > > kern_ioctl() at kern_ioctl+0x295/frame 0xfffffe00af7807b0 > > sys_ioctl() at sys_ioctl+0x15d/frame 0xfffffe00af780880 > > amd64_syscall() at amd64_syscall+0x2b9/frame 0xfffffe00af7809b0 > > fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00af7809b0 > > --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x80048051a, rsp = > > 0x7fffffffe3e8, rbp = 0x7fffffffe430 --- > > The SIOCADDMULTI if_ioctl() is not allowed to sleep, because it can be > called from the fast-path, so this is a bug in e1000 driver. Does the > attached patch workaround the issue? What fast path are you referring to? The locking protocol used by the multicast code was changed specifically to allow for sleeps in driver ioctl handlers.