Received: by 2002:a05:7412:9c07:b0:fa:6e18:a558 with SMTP id lr7csp387910rdb; Sat, 27 Jan 2024 10:37:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IF44edaPQH9OMDNwK0pR/hai8IuOql3eXF4u4JSCyptpDe8n9sPlOz2xrtwMR9JHPPJvRqA X-Received: by 2002:a05:6a20:5294:b0:19a:9d9f:6af9 with SMTP id o20-20020a056a20529400b0019a9d9f6af9mr1681456pzg.73.1706380677462; Sat, 27 Jan 2024 10:37:57 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706380677; cv=pass; d=google.com; s=arc-20160816; b=DVA5KFRD91y+JCqiyO0LyzhKrexXoo6xDGcOGlqeTniMarmEwnKHC/Urok7vHItaDp sBMyzyHsTsEDNvUmYwtIGXHJMBQL6Tj51kwWXNWhGVuU5giZQIQ/ZlcaceNdutxfgNsN 0dcVfujwgootDYfpzQnSeAx4W9WK80UiSkt3xSRoxR6X08jHYVlz4ixczFQFkLyapjXu bSNspHqfdwZBPu6NGHnEJvOdSMMHDAw/j9d6LD98TLvv9RHebgZ6G6m3ZrZHjRzHTXt2 OORUeI9aYBykFiKwK0EC0ky7QS2yulAE6+bqif4rmdvgHiF5Pi295fE12mCsS3mUicQn SX9g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:sender:dkim-signature; bh=m1crEbCppZkKwKJJtbycIbn79YP14fen8Jd+JDUcNys=; fh=C8YVrDmZ7pVy87Xw63AvUe9B0adOfkuf7UuZ6VjCPlA=; b=tnlLXMeOleSObKNWlf+MyngSxcqOlqbzhMVsJ2KxzpiIoCLx8zZGjP+FlMtRI93AK4 G4bHfhS6byJ5khwm2cPw+BiyF/bVSSzlSYpQYX630qYn32JH2Wa3R0de0+iPjNZe7O1n b91MZ4RqGl7LOG9cCYkWZppWZEUIoBVQEcPur/2N1NsStT7tk2UWoBtBEojF/T5s7PD4 6EL4OO1DK1CKNstC+uU2wUsY2e+XcAUNADexCvOSZ3uCYtNnKQX3Af1lSt9dfvYFhBQM ju8fh51flJXqTH2oaSeTEvAKifV2CGUi3M20AtFp9JJmgJjLGtfheltBUqa6SHYsD02N IHFQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=h75dH4ps; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-41356-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41356-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id l188-20020a6325c5000000b005d6dd7fab87si1573393pgl.884.2024.01.27.10.37.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Jan 2024 10:37:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-41356-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=h75dH4ps; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-41356-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41356-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 14494285391 for ; Sat, 27 Jan 2024 18:37:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A9AF62E40E; Sat, 27 Jan 2024 18:37:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="h75dH4ps" Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 782EA2C19C for ; Sat, 27 Jan 2024 18:37:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706380668; cv=none; b=XdUCdzrRNN9LLSXJ0CJJvCM6+I7ixVyD+IAJG60dH83nr1s3yKvV8X1760/I00rkgG51pEvc4OXlvP/qnhrvjPIVxSfn2R37vItdzUjBQ6/DV8B1c7bhMR+b97UJoqs3Cg/v1APyuB0xPZbedgyjwzi4M14Fg/vdBxk8PBkvKNE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706380668; c=relaxed/simple; bh=krEJZx1PRiMPsxGIkLE+iVCbHEiMZbFzD0vj/F8QdDI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=rkT9HzsQiiKp6AVbxfE95AzoENsE2lAs0jS9r4OB6oDaCsTCCoP5RziPf0wx2X/5JoDWWxhfyY92WXQwEeB49LKzIk9piT4/HBOIFxo4CecdSB58bMylS80M5n77t10AY549ufoFpI4s8MKbuHSUJhene/MetCSOquZ9WeYvuA8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=h75dH4ps; arc=none smtp.client-ip=209.85.216.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-2906dffd8ddso1158069a91.3 for ; Sat, 27 Jan 2024 10:37:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706380667; x=1706985467; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=m1crEbCppZkKwKJJtbycIbn79YP14fen8Jd+JDUcNys=; b=h75dH4psKq+vTpD3Vy/L/XhNrDihPR+9WLARAHbcQ0BYNF3/iDD9Ml+d4vZ28A7pmY PMaphIVOh3wQUp93Ch7XbQb5d2T/7KRCsJQJWKwnVEUJ5xXnyquVun8UYwZm3ZvwkA4k lWre5IB1cHMual/CfZOha9gjBrwdXN/ikkyFty8vjBzAdjf2969T5pu4S4QatVmv26ji 4jDleqikPNoCG0VIPCr1g32qRVGs07L51Lb2XfBs0y2gb04GPCCYyn9QuHNMD8Rixre8 YxxerKu74XGr1w30xX5f1lhGH+qsVjF5g6/srV+GHDnZAHfu87XsBUZM8WtWiPyulbhL O1dQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706380667; x=1706985467; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=m1crEbCppZkKwKJJtbycIbn79YP14fen8Jd+JDUcNys=; b=beEoaVD2RWYxyiHyxMiGi2byFl+A4W7DbBPb6YIHf1/6qwFuLzuUC9oI6dBG+lYEWU whcMB5k/WPVPnrhwBTCo3sYGHn/Yd2rulDusCTXBIV2ZGxLh5I2YsgB7dDnovUQ+Evl5 389dntpdI3Pm6L5jjFnkndf7FjXrny9ZeBZnNiXQhpvpKOJ+bDZeC8zPTaBqWxHR3Yx0 OM7m5BOxShS2pt8Ho55SJvGJ84GkeejumR/ghEu5D8cSg8VdHT0o/NFmMZdXkTQBOS24 HRhZX6HbY4D3cmsfdYqHCsjY96Rtc1hr68dW+rkFDFrk6Vf5isxDZf3y4DbFdo1gBc1q AyaA== X-Gm-Message-State: AOJu0YzIMqA1IfmICmmX3Ag+GOdPM1Ud5a8qtietIUqrEbI8bGWopg+3 i4zU2XYwN1HRwu0s+znwbxag1GDFTfsICIwIJlQ7soliybbwPPVH X-Received: by 2002:a17:90a:bd90:b0:293:b540:5a8 with SMTP id z16-20020a17090abd9000b00293b54005a8mr1353480pjr.8.1706380666534; Sat, 27 Jan 2024 10:37:46 -0800 (PST) Received: from localhost (dhcp-141-239-144-21.hawaiiantel.net. [141.239.144.21]) by smtp.gmail.com with ESMTPSA id y5-20020a17090a8b0500b002904cba0ffbsm5176982pjn.32.2024.01.27.10.37.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Jan 2024 10:37:46 -0800 (PST) Sender: Tejun Heo Date: Sat, 27 Jan 2024 08:37:45 -1000 From: Tejun Heo To: Linus Torvalds Cc: Mikulas Patocka , Thomas Gleixner , linux-kernel@vger.kernel.org, dm-devel@lists.linux.dev, Mike Snitzer , Ignat Korchagin , Damien Le Moal , Bob Liu , Hou Tao , Nathan Huckleberry , Peter Zijlstra , Ingo Molnar Subject: Re: [PATCH] softirq: fix memory corruption when freeing tasklet_struct Message-ID: References: <82b964f0-c2c8-a2c6-5b1f-f3145dc2c8e5@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Fri, Jan 26, 2024 at 01:43:25PM -1000, Tejun Heo wrote: > Hello, > > The following is a draft patch which implements atomic workqueues and > convert dm-crypt to use it instead of tasklet. It's an early draft and very > lightly tested but seems to work more or less. It's on top of wq/for6.9 + a > pending patchset. The following git branch can be used for testing. > > git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git wq-atomic-draft > > I'll go over it to make sure all the pieces work. While it adds some > complications, it doesn't seem too bad and conversion from tasklet should be > straightforward too. > > - It hooks into tasklet[_hi] for now but if we get to update all of tasklet > users, we can just repurpose the tasklet softirq slots directly. > > - I thought about allowing busy-waits for flushes and cancels but it didn't > seem necessary. Keeping them blocking has the benefit of avoiding possible > nasty deadlocks. We can revisit if there's need. > > - Compared to tasklet, each work item goes through a bit more management > code because I wanted to keep the code as unified as possible to regular > threaded workqueues. That said, it's not a huge amount and my bet is that > the difference is unlikely to be noticeable. Should have known when it worked too well on the first try but I missed a part in init and this was just running them on per-cpu workqueues. Will post an actually working version later. Thanks. -- tejun