From owner-dev-commits-src-all@freebsd.org Thu Mar 11 19:04:31 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 73F845AA7B6; Thu, 11 Mar 2021 19:04:31 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 4DxJKC0SFLz3mqD; Thu, 11 Mar 2021 19:04:30 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.16.1/8.16.1) with ESMTPS id 12BJ4NwJ017752 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Thu, 11 Mar 2021 21:04:26 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 12BJ4NwJ017752 Received: (from kostik@localhost) by tom.home (8.16.1/8.16.1/Submit) id 12BJ4NYX017751; Thu, 11 Mar 2021 21:04:23 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 11 Mar 2021 21:04:23 +0200 From: Konstantin Belousov To: Hans Petter Selasky Cc: John Baldwin , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: d1cbe7908986 - main - Allocating the LinuxKPI current structure from an interrupt thread must be done using the M_NOWAIT flag after 1ae20f7c70ea . Message-ID: References: <202103100952.12A9qRKR040117@gitrepo.freebsd.org> <2b1739ab-000c-ca28-5a59-0a3e19ef4591@selasky.org> <5aaa5f2a-a67d-a495-7f56-a6b31c2494c7@FreeBSD.org> <3dcd63b0-fe90-2855-f349-2117ca4b6b26@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3dcd63b0-fe90-2855-f349-2117ca4b6b26@selasky.org> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 4DxJKC0SFLz3mqD 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-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: Thu, 11 Mar 2021 19:04:31 -0000 On Thu, Mar 11, 2021 at 07:41:53PM +0100, Hans Petter Selasky wrote: > On 3/11/21 7:35 PM, Konstantin Belousov wrote: > > And I dislike this. It is yet another case of introducing consumer-specific > > logic into core. Isn't netepoch example enough? > > > > I presented another patch to Hans, where task and mm allocations are > > switched to zones, and the zones have reserve applied. Then allocations > > from ithreads use the reserve. > > > > There is one detail there, reserve is finite, for x86 I set it to the > > total limit of interrupts. This somewhat breaks if interrupts are > > deallocated and reallocated, but I think it is good enough even with > > this wart. > > Hi, > > Your patch doesn't address the issue of initializing the pointers in > question once. Still, for every call, we need to check if the pointer is > valid. This is not neccessary. I do not understand what you are saying there. Which pointers? How does it not address? > > Also I don't see why we need to create a own UMA zone for these simple > structures. Won't the per-CPU sysctl consume more memory than the actual > task structures being allocated? Dedicated UMA zone allows to gracefully solve the requirement of non-failing allocation in non-sleepable context. This is much simpler and cleaner than either trying to enumerate all existing ithreads or adding consumer-specific controls into generic kernel facility.