From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04B17C282E5 for ; Wed, 5 Mar 2025 19:04:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7D945280004; Wed, 5 Mar 2025 14:04:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 71912280016; Wed, 5 Mar 2025 14:04:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 45928280004; Wed, 5 Mar 2025 14:04:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0F2AE280016 for ; Wed, 5 Mar 2025 14:04:10 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C748CC0195 for ; Wed, 5 Mar 2025 07:14:58 +0000 (UTC) X-FDA: 83186635476.14.D2B2548 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf04.hostedemail.com (Postfix) with ESMTP id 8804D4000B for ; Wed, 5 Mar 2025 07:14:56 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=afS8XBdS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=mqQEKA+Y; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=OQNjnXNk; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=ogxQo14n; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf04.hostedemail.com: domain of hare@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=hare@suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741158896; a=rsa-sha256; cv=none; b=tzKAmZ5SK51fzP8hKWvB1DUKTcymI1L3PIOsN9jWsINnygN/GgSfQ+PN1kf2/Ic63neIBj 1sYq/kLjBACqlX8at6bBtRKu4oAuMOpurB15bzMiyI3jK2zgmDwU1N+HArj3KCEm6yB4MF voFNgceywjlhZ4v5mO5tLEx4Y+TDkUg= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=afS8XBdS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=mqQEKA+Y; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=OQNjnXNk; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=ogxQo14n; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf04.hostedemail.com: domain of hare@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=hare@suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741158896; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=LvFN6KNwKJUNoJkvS2ieU0t84GJ/LyzPiMoahiO9g5c=; b=TSay3dFRAOBuDDgvatW3PlvJ024sj3dgAB4N60UQgpLabBW4KaBCGxgCWZunQqlQaRK/XB 2Kl083+OGUtlTmkTx1nu0LMlh3J3+MfkjzswJf5RGEYN2AAfbaraN0bFdi8HCEip28RQXm ppgIr0E09H/BdEpswB0kgHmgtyxf/o0= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (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) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id ECFEE2118C; Wed, 5 Mar 2025 07:14:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1741158895; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LvFN6KNwKJUNoJkvS2ieU0t84GJ/LyzPiMoahiO9g5c=; b=afS8XBdS7HvS36sBsHegYd1P3QAAV85NE78eW3csQ5S4xT2YgNGxNzsPi65aR0Cf8gpEcu BMWBvmp9Uz4VZbAfT0a1WCkdc9YtkiIrbFoIwxo3JnnxIh9LQWdEJYI397c7fOiT85U+ad jAVmrWfCpeiL2mw5qmxEJYbWmic6JTE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1741158895; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LvFN6KNwKJUNoJkvS2ieU0t84GJ/LyzPiMoahiO9g5c=; b=mqQEKA+YYOMEmtzpjiDaePAuAu5XQMwY0/UlLYwL8wBSq23NQRcUTuFTFCdGClL+xrFEqH 0IUQP/kf1CyeVYDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1741158894; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LvFN6KNwKJUNoJkvS2ieU0t84GJ/LyzPiMoahiO9g5c=; b=OQNjnXNk91XUHVdChxFWVZq9Dxs3SVDybtjahPwY8qCtBZEG4Pjs1czk34HkJnDsHupabE BKgcPIMUwAcRbPqQrpBeGSnhhvGt25EFoshbDFmxjaf0SUPMdXtwd2kHBnQ/psSIvJrKfV oo/pmPYX7UNYvaJ+aLj/4WCtiv5ML6k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1741158894; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LvFN6KNwKJUNoJkvS2ieU0t84GJ/LyzPiMoahiO9g5c=; b=ogxQo14n0Cfbz+paAo0eHijspk7kwSwRkYpYhn/fcm52Ql9fzsKlWlEpZWJa5N78aNW9Ji 6NET4+HBmX1inUCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.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) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8491813939; Wed, 5 Mar 2025 07:14:54 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id naj6He75x2fyQwAAD6G6ig (envelope-from ); Wed, 05 Mar 2025 07:14:54 +0000 Message-ID: Date: Wed, 5 Mar 2025 08:14:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Kernel oops with 6.14 when enabling TLS To: Vlastimil Babka , Matthew Wilcox , Hannes Reinecke Cc: Boris Pismenny , John Fastabend , Jakub Kicinski , Sagi Grimberg , "linux-nvme@lists.infradead.org" , "linux-block@vger.kernel.org" , linux-mm@kvack.org, Harry Yoo , "netdev@vger.kernel.org" References: <95b0b93b-3b27-4482-8965-01963cc8beb8@suse.cz> <6877dfb1-9f44-4023-bb6d-e7530d03e33c@suse.com> <27111897-0b36-4d8c-8be9-4f8bdbae88b7@suse.cz> Content-Language: en-US From: Hannes Reinecke In-Reply-To: <27111897-0b36-4d8c-8be9-4f8bdbae88b7@suse.cz> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 8804D4000B X-Stat-Signature: gptrhp35imy44whao5hrbxaeu7s1q4op X-HE-Tag: 1741158896-292858 X-HE-Meta: U2FsdGVkX19baUwPI2z6AaXG67uM3yR+Llt1XJa4C6dFtyRY1qoJXGhXf2lSTqoUFv6hHkD65dEHcALcdxJcWdM9jmeaNoB28x3SCKbc9AGgpnGBxzSYEId5o+VnP9eSeSifYjiAcNwAGbKzxDZcsOnZoH7A0c9AxmaaBPxEkiy2EsnHu1eTq0bIV1PM/2X+RfaCkG2Ow9t80nu+zSN1Sv5o9xSYVeeA4cfakC4ITLz050jWrw6PbHIT4OBchSRNeiET33Nj+9SNyyQs+hraLKPT2BMCdojB1Ou4N9roxlZEBzhYEBjHqUU0yLJYd317Dpta6dDQ3JR3h277DDX+NMW9AA7zDA9bR0uGUXQ07UsxvnJoKyOxHIAyDMZj1HtfHSqCHWYU/JZkOs/vsQZLZT5yNT53CU9eMMKzA58syGfwG4tDNichw70WGFXSRcldMdBhwiDIxShQLdSmuyJpE544+1VaJWFjPxfDZQQyZHlXciky5o7Wrwj3T0MV1ZjvaFk7qv8VWWDfapW3d3KADi2KsddGTfYB2DHylezv0s8MTSFs3Ps2Z8IRxdfd1QQ4SNEPZmQp7I6aGyIpNQBK7teYdh8dL82u8mjWGtzw2Xeo0WGdEYGUDNQX84oOIyjIAvFV4tw3ShhEYBdylDSr1LZ00uaGVgGBXCm6YDAhFoNe/9uMo4rynVR6ec/GNjuDbXKCRAgi9eY9I6UMra/AX7DIECokVm1CyaPAnKJJjNwUk35M8t5lXwQhowCf7J24rar5SacgmAF6RkTEtrPss7FZVeOwpA2srHRbGBOPqAowVymYmQQLYGcXmp3n36OOKDuDKl8e5Dx+Peb0KEcpft3ttWFCJ6owEkDDBi4VS7Jt3WsfuH8X9qbeqmA7bnLLa2FDT8x8BCHuQEiWEEAJQfQkqu4d4ZvsaR2aEsk5+W4KyyLQ/rqC+wEs7QMltVWu7bJ/UVrXmq6QGuNYpnh ClE2jcaV jYKhhUQf1h5D5HhCIKjSSW8pSIBn2Pe37xL4z1LNNLoaFe4ieLZr65Q4u0+m9L34kN3+gTMd2Fodazc51C9v84AjzG4/A9FPKIq+jPqfNOi1OMM/qWvBIGfI0t5+SjJfsv0ccA3vsxRcyEXeX73dlvH6cqkLi7uFXeMRyYkV3DSykWOsUh+dAL0O3FiRwdMzViDdhosnZCB/h34s6BbVLT2v0CyrYDyT5pgTdojSa8UXPIAarjrW8Avdc0SY81boBA16ywMkKmX7apdCB30dzytGs7tRQIEhWaNPj7PCadty/32IdZ1MaNrFuxBhxAZxHK9ifpaX3oor9prN5FEYpscqxcs1cj7+zg8agNqwomHA5mys3fg2HEcF+w5cjA85R8wKUEkScf6TpX9EqC8lPsTpQi28nesKTxu2T7CMI7sPTMgP5UBGUx1fOCcGSBInTF3Pp X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 3/4/25 20:44, Vlastimil Babka wrote: > On 3/4/25 20:39, Hannes Reinecke wrote: >> On 3/4/25 19:05, Matthew Wilcox wrote: >>> On Tue, Mar 04, 2025 at 04:53:09PM +0000, Matthew Wilcox wrote: >>>> Right, that's what happened in the block layer. We mark the bio with >>>> BIO_PAGE_PINNED if the pincount needs to be dropped. As a transitional >>>> period, we had BIO_PAGE_REFFED which indicated that the page refcount >>>> needed to be dropped. Perhaps there's something similar that network >>>> could be doing. >>> >>> Until that time ... how does this look as a quick hack to avoid >>> reverting the slab change? >>> >>> diff --git a/include/linux/mm.h b/include/linux/mm.h >>> index d6fed25243c3..ca08a923ac6d 100644 >>> --- a/include/linux/mm.h >>> +++ b/include/linux/mm.h >>> @@ -1520,7 +1520,10 @@ static inline void folio_get(struct folio *folio) >>> >>> static inline void get_page(struct page *page) >>> { >>> - folio_get(page_folio(page)); >>> + struct folio *folio = page_folio(page); >>> + if (WARN_ON_ONCE(folio_test_slab(folio))) >>> + return; >>> + folio_get(folio); >>> } >>> >>> static inline __must_check bool try_get_page(struct page *page) >>> @@ -1614,6 +1617,8 @@ static inline void put_page(struct page *page) >>> { >>> struct folio *folio = page_folio(page); >>> >>> + if (folio_test_slab(folio)) >>> + return; >>> folio_put(folio); >>> } >>> >>> diff --git a/lib/iov_iter.c b/lib/iov_iter.c >>> index 65f550cb5081..8c7fdb7d8c8f 100644 >>> --- a/lib/iov_iter.c >>> +++ b/lib/iov_iter.c >>> @@ -1190,8 +1190,12 @@ static ssize_t __iov_iter_get_pages_alloc(struct iov_iter *i, >>> if (!n) >>> return -ENOMEM; >>> p = *pages; >>> - for (int k = 0; k < n; k++) >>> - get_page(p[k] = page + k); >>> + for (int k = 0; k < n; k++) { >>> + struct folio *folio = page_folio(page); >>> + p[k] = page + k; >>> + if (!folio_test_slab(folio)) >>> + folio_get(folio); >>> + } >>> maxsize = min_t(size_t, maxsize, n * PAGE_SIZE - *start); >>> i->count -= maxsize; >>> i->iov_offset += maxsize; >>> >> >> Good news and bad news ... >> Good news: TLS works again! >> Bad news: no errors. > > Wait, did you add a WARN_ON_ONCE() to the put_page() as I suggested? If yes > and there was no error, it would have to be leaking the page. Or the path > uses folio_put() and we'd need to put the warning there. > Oh, no, I didn't. Just added the WARN_ON to get_page(). Let me try ... Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich