From owner-dev-commits-src-main@freebsd.org Thu Mar 11 18:18:07 2021 Return-Path: Delivered-To: dev-commits-src-main@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 148E657D7E7; Thu, 11 Mar 2021 18:18:07 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4DxHHf6dWdz3RLY; Thu, 11 Mar 2021 18:18:06 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2020.home.selasky.org (unknown [178.17.145.105]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 32FD2260988; Thu, 11 Mar 2021 19:17:59 +0100 (CET) Subject: Re: git: d1cbe7908986 - main - Allocating the LinuxKPI current structure from an interrupt thread must be done using the M_NOWAIT flag after 1ae20f7c70ea . To: John Baldwin , Konstantin Belousov Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202103100952.12A9qRKR040117@gitrepo.freebsd.org> <2b1739ab-000c-ca28-5a59-0a3e19ef4591@selasky.org> <5aaa5f2a-a67d-a495-7f56-a6b31c2494c7@FreeBSD.org> From: Hans Petter Selasky Message-ID: Date: Thu, 11 Mar 2021 19:17:41 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: <5aaa5f2a-a67d-a495-7f56-a6b31c2494c7@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4DxHHf6dWdz3RLY X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Mar 2021 18:18:07 -0000 On 3/11/21 6:13 PM, John Baldwin wrote: > On 3/10/21 2:09 AM, Hans Petter Selasky wrote: >> On 3/10/21 11:04 AM, Konstantin Belousov wrote: >>> This probably hangs machine instead of panicing.  In low memory >>> condition, >>> you do not handle interrupt, which probably mean that the source is not >>> silenced, and after EOI the same interrupt will be generated again. >> >> Hi, >> >> This usually happens during boot. Another possibility is to panic() >> there. I don't see so many options. > > Is there no way to pre-allocate this?  That is, could we not have all > ithreads invoke this during their initialization, and have the module > handler for linuxkpi iterate over ithreads allocating one for > each ithread during MOD_LOAD? > > I think there are few enough ithreads that allocating "extra" ones > is probably ok.  Alternatively, you could hook into the path when an > interrupt is registered perhaps by passing some sort of INTR_LINUX > flag or the like that causes kern_intr.c to allocate one for the > associated ithread when the interrupt is registered. > Yes, I have a review for that: https://reviews.freebsd.org/D29183 --HPS