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 B2A97C54E5D for ; Sun, 17 Mar 2024 01:33:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 06F476B007B; Sat, 16 Mar 2024 21:33:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 01DFE6B0082; Sat, 16 Mar 2024 21:33:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E27F96B0083; Sat, 16 Mar 2024 21:33:02 -0400 (EDT) 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 D05C86B007B for ; Sat, 16 Mar 2024 21:33:02 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 57474C0516 for ; Sun, 17 Mar 2024 01:33:02 +0000 (UTC) X-FDA: 81904807404.12.4730C2B Received: from out-173.mta0.migadu.com (out-173.mta0.migadu.com [91.218.175.173]) by imf30.hostedemail.com (Postfix) with ESMTP id 7194980006 for ; Sun, 17 Mar 2024 01:32:59 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=fTnOSCXa; spf=pass (imf30.hostedemail.com: domain of kent.overstreet@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=kent.overstreet@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710639179; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9RlAJsRV/7U7lgZ5geJYDyxKFcsxulrG2wQ1uwCXd3A=; b=KixUORrYG+oUoviO2j8qGxzONZOTXF120eb4h13FG9oHYplTshGXSZTEe5iSy5KBeGmTdP Z00uLi2Bj3ZJYSJhhLbtm/72SaSmMOjmG+vZIAjiGKnPqb2uw6ry8z7OGS+78N1ESiJrZw WqAVUvR7yhTXc8/fb17R9xntZvfn4bs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710639179; a=rsa-sha256; cv=none; b=oAl5Dm03VEceGoHSWQDDVQyevYS6kMM2Kgl4KqEd8oGI/4YO713AXp7eFB6dC45uy8vtqm d2gr6qS1PldgqGONlQ/EYUimOACDut0c5vbiU/3SURj08S/mOxLv2MAtF/iCOqZe8uJrHA Jx0N4Bee5H3Ee6YTJd5yKXPLxu5KiVc= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=fTnOSCXa; spf=pass (imf30.hostedemail.com: domain of kent.overstreet@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=kent.overstreet@linux.dev; dmarc=pass (policy=none) header.from=linux.dev Date: Sat, 16 Mar 2024 21:32:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1710639176; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=9RlAJsRV/7U7lgZ5geJYDyxKFcsxulrG2wQ1uwCXd3A=; b=fTnOSCXa0vNTItXRaHzGWsogIux8/TRMBoUZeZ77MCC5BxT+nJLCCwj+Kkzle0qZXb1TGN vUEd2QnaqB49FXQSikVQAibEBp6/pRjivXEs2ocIX8gXUM92lY0ncF0270mJ+Dq+vCZYn0 A1lRaThqY9ve3acajFkNUVC/hDbv0es= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Kent Overstreet To: Matthew Wilcox Cc: Pasha Tatashin , "H. Peter Anvin" , linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, x86@kernel.org, bp@alien8.de, brauner@kernel.org, bristot@redhat.com, bsegall@google.com, dave.hansen@linux.intel.com, dianders@chromium.org, dietmar.eggemann@arm.com, eric.devolder@oracle.com, hca@linux.ibm.com, hch@infradead.org, jacob.jun.pan@linux.intel.com, jgg@ziepe.ca, jpoimboe@kernel.org, jroedel@suse.de, juri.lelli@redhat.com, kinseyho@google.com, kirill.shutemov@linux.intel.com, lstoakes@gmail.com, luto@kernel.org, mgorman@suse.de, mic@digikod.net, michael.christie@oracle.com, mingo@redhat.com, mjguzik@gmail.com, mst@redhat.com, npiggin@gmail.com, peterz@infradead.org, pmladek@suse.com, rick.p.edgecombe@intel.com, rostedt@goodmis.org, surenb@google.com, tglx@linutronix.de, urezki@gmail.com, vincent.guittot@linaro.org, vschneid@redhat.com Subject: Re: [RFC 00/14] Dynamic Kernel Stacks Message-ID: References: <20240311164638.2015063-1-pasha.tatashin@soleen.com> <2cb8f02d-f21e-45d2-afe2-d1c6225240f3@zytor.com> <2qp4uegb4kqkryihqyo6v3fzoc2nysuhltc535kxnh6ozpo5ni@isilzw7nth42> <39F17EC4-7844-4111-BF7D-FFC97B05D9FA@zytor.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: 7194980006 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: tdabihtxhee86j86ym3owhwxcrro8mwt X-HE-Tag: 1710639179-264683 X-HE-Meta: U2FsdGVkX1/clemmE8LckhhHyfFNpEmut6aGlbZiS8/qOs5UthlGqTS/6fmZrBWKmfZnSTZQMllcEn/oGPD/uAASOsl/FdNLb59lcDMpjTpKw+UZPqonx7u5WxjBkYWEo4u1/LBaOZ9M5cAQKWBpQOXpcLfJ0oirXQnEdFiv9nqma4/WbbgeeociPOxcFb3KhdoTNaLJv9EdFhHJ/y8ylLLfRWZrh8Z19Iy7luATO+xulFhj41O14jqXL4btXxc6+PGTemVSNfto5oJUUrucd17k8Qo41+kRRNX//ciHLoRWxpUyyP1P/wpzXCQls4NWury+SnEdt7PRKbh5ORFmLPvK01eMglzWMw/0vmjhRaMfH83wk20MNll4M4X1oU/+nqy6Zu0U+Zf9O+VzPpwIbGpTAohYkjWRS1Fx/xfyfldMF89qFcZazXv1Wmil2e4fZ7UnXZc68ky2N0JoMlkuN5rUyf+2RyWMQQI2JXFwhXEQJaujtT2ywMkZ4+MftTiJKB8sbF8PGZOXTs1NGGL+CWvq8J307CIz5rU5On9im1RXiBCzqp1Mlk8AfSywP4GUAYsPSwhxjUmnL8u6o2kIdYt7Jy/7gjhXVZ89P6c30NHynT4LhF9HbKppCgi/UCNe4cf6jjIBlwS5ktW2x3F2KeeAbmdfio8YVH4EpocsTXt2i4cN7czT+gPcIZI50VXKgvGkN14oBv2ntMNZtWnco0bUqe7VJX99yKQhPzieURvt/z13/7iyopfoDZg5zWX1FIysoga8XGjcbMBZpxS6ghE2M8RWwCSYF1bjrZH/aUwSns3lpNq1KGOJa8et5F0ACWlQrxT5Ijq4z4Q/zK+eNC70SjU12tV8u7O2wGfNI3hIrlIUF3ayVXGwHzYu+Tyz7FVZQ7Z7djYsU9ycPjQ4OAGZsoR8LlY5rs9pRHYafQqx2SniYHOk6UoLdv1ZL6gMAmvWRlkHOqRumhMXRFn Nts+2Q4Z tAtnupd6ceWguyu8Mx5BM1TXY/KPtJhzcmyMnLyebR54o5z1pz5FMmZwR5cg5aIuxAnbgJVo4l9ad7gMFiLo1kg751A== 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 Sun, Mar 17, 2024 at 12:41:33AM +0000, Matthew Wilcox wrote: > On Sat, Mar 16, 2024 at 03:17:57PM -0400, Pasha Tatashin wrote: > > Expanding on Mathew's idea of an interface for dynamic kernel stack > > sizes, here's what I'm thinking: > > > > - Kernel Threads: Create all kernel threads with a fully populated > > THREAD_SIZE stack. (i.e. 16K) > > - User Threads: Create all user threads with THREAD_SIZE kernel stack > > but only the top page mapped. (i.e. 4K) > > - In enter_from_user_mode(): Expand the thread stack to 16K by mapping > > three additional pages from the per-CPU stack cache. This function is > > called early in kernel entry points. > > - exit_to_user_mode(): Unmap the extra three pages and return them to > > the per-CPU cache. This function is called late in the kernel exit > > path. > > > > Both of the above hooks are called with IRQ disabled on all kernel > > entries whether through interrupts and syscalls, and they are called > > early/late enough that 4K is enough to handle the rest of entry/exit. > > At what point do we replenish the per-CPU stash of pages? If we're > 12kB deep in the stack and call mutex_lock(), we can be scheduled out, > and then the new thread can make a syscall. Do we just assume that > get_free_page() can sleep at kernel entry (seems reasonable)? I don't > think this is an infeasible problem, I'd just like it to be described. schedule() or return to userspace, I believe was mentioned