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 9B359C54ED1 for ; Fri, 23 May 2025 16:15:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 02AB36B00BF; Fri, 23 May 2025 12:15:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 000EA6B00C1; Fri, 23 May 2025 12:15:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E34746B00C3; Fri, 23 May 2025 12:15:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BF4D36B00BF for ; Fri, 23 May 2025 12:15:45 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 575321A0A1A for ; Fri, 23 May 2025 16:15:45 +0000 (UTC) X-FDA: 83474673450.22.950139F Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by imf19.hostedemail.com (Postfix) with ESMTP id 5C9111A000E for ; Fri, 23 May 2025 16:15:43 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X6575KRq; spf=pass (imf19.hostedemail.com: domain of mhkelley58@gmail.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=mhkelley58@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748016943; h=from:from:sender:reply-to: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: references:dkim-signature; bh=ls243XxE58XUFIhUPSeMMfbElJjdBNkZybvfZFLuLmk=; b=QZI/JYwQz0Kfgjx3Gud9mbfeCKgOHLfl0ll+p7NSB52gav2Z5NLZmy6LIxn2mrFSu/lbmD 7w9G0n3OzUXW5szA8x64K6a/6lAO6/pT59s+EnqGiLEEdoQEWNjn6hE2BTHKwG8Aa0qDYD aIj7PoLNpn1WwF3uq3ROsVwC8u/3XDQ= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X6575KRq; spf=pass (imf19.hostedemail.com: domain of mhkelley58@gmail.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=mhkelley58@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748016943; a=rsa-sha256; cv=none; b=G/m5vcSTH6oRu+q7nlZPUl0Mmf0VpaKJCxFFbK4AjRejkEdSYYWqIgDItOSVFAm8wWNjgF g7lcVIQ8bq6Rq5po3530NyyDr1P+jH3X8CRDruAniIUauM5c7r+SYK0hIR+uCGGrSNUPRp Ty32iEC2hg6Hm4GLyq6H06sH9qWQjQ4= Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-30e5430ed0bso124293a91.3 for ; Fri, 23 May 2025 09:15:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748016942; x=1748621742; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ls243XxE58XUFIhUPSeMMfbElJjdBNkZybvfZFLuLmk=; b=X6575KRqFiIxmDOdSmFIJ/L3RpkF1zreOpJVkk4L472tzNbj0S1f/2bduXcXT2hjai FKZ/khiuS8zjJf6PsfV/OxoeogqXQ4fj5wzDJ+bOsC92o2iuJ4UzPFP08YvBEHWcjWpp bj4KuScoAESlYhm4cSR9ETQy8NZBtp5jZyWN+iU1Gg4ziYAytfZv+uPu9r2mxci/hF+9 UR0NcGoHWD2BCUUMzkd8xAP/ubgFktlhh1cV+FRcBg92RXzf6yrzV2029mTLlS0R32hV ATmVsq7eVNwq6qES5IOQN5S1/SosWhNwt5kB8m6XIxdSWnf/cgz3WQl4KEsUWm+928Je aPYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748016942; x=1748621742; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ls243XxE58XUFIhUPSeMMfbElJjdBNkZybvfZFLuLmk=; b=hM05T3xYRxjK60r8O2F6zDbBAyhD4obbZU40jB3cWpb1tHWfNDpaQcGnoZXmers6LN xhNsgjzM35Dk+lxxy0RqjsWFkGfP1V3G7K0PNTEtiYiecES0IIDKhd9MSdEvNPqSS/8L Q1MuRqWmpPhJ2n8CV9lULUWPimmjm1B1cqOwmwfbM8keSeFp0ysKF+9XyiE/tYdvByMC JZmroylP/Ag7FZ1WKQWQN+2ZBYujhW0jHoR9pRRA41CjITiUatPhjz2l50RHQ131OX+i jjLNZK8pSGvxbmgg73ovyz7o8zfXIiPEOblYLpfOBId4U0AoAonmBjYOFjnZgra12c6a 64Hw== X-Forwarded-Encrypted: i=1; AJvYcCX3JbmU6dc9Lm1uf+QYxX9cRUqaOD1SZl7p7CLOwSA2ifsBVVfvSoutzjBB/0hP0DOYH2NtBDhnXg==@kvack.org X-Gm-Message-State: AOJu0YwnBb6dkGrXCC+WVL6/gRbw0WjZxeCl44Jr3xBtMlAQYeAopl5x Y38UcQFboj0KCEiGCd++r7IMWqQM+xzVzUqFZTM1RtrCT485AW6hoAys X-Gm-Gg: ASbGnctck6j9JYCiIVuxsFJI5yAvS8op7WmAjJBW84QIFl8LJiXdUnr/DCN0sYoVgxO areJpd7IMZ1LbjO0dL6q+bNux8eExNkQloWjkvbSpsjp55W784YDQpPk11jl/Im7Qtjv/oNArNF sBDm72/ZPDOysWhfrlM0bn/CIxI3hhTi0iXvjDRocRxY1VlPIduQAQ+n6TVWDhbTBACIk7ImDhY 8FvExChxYRK+FrFdnrMm1PeVFCV3/d3d6fQLPO9PZ9zv/1FDaKqEUlXJI21s5njlv1bCXoqvxWR cLARYW9BA6oMP2v5RkGKucAkHP06GIFFob4Xs5T/Xkr9FqRb5r5Kb2WODYjKExjFwmHfVIOrEUH HIQbNztDlKHFPrj0SE2DvFip3wnNCug== X-Google-Smtp-Source: AGHT+IFm/aBR27COrCfUEG1WEEW/VaW4o7v7eFIsjnnSJARIe9dfY945CATNH/PdlGnGpUKKevkX5Q== X-Received: by 2002:a17:90b:54d0:b0:305:2d68:8d57 with SMTP id 98e67ed59e1d1-30e830ca02bmr37165622a91.5.1748016942269; Fri, 23 May 2025 09:15:42 -0700 (PDT) Received: from localhost.localdomain (c-67-160-120-253.hsd1.wa.comcast.net. [67.160.120.253]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30f365d46ffsm7526565a91.25.2025.05.23.09.15.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 09:15:42 -0700 (PDT) From: mhkelley58@gmail.com X-Google-Original-From: mhklinux@outlook.com To: simona@ffwll.ch, deller@gmx.de, haiyangz@microsoft.com, kys@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, akpm@linux-foundation.org Cc: weh@microsoft.com, tzimmermann@suse.de, hch@lst.de, dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v3 0/4] fbdev: Add deferred I/O support for contiguous kernel memory framebuffers Date: Fri, 23 May 2025 09:15:18 -0700 Message-Id: <20250523161522.409504-1-mhklinux@outlook.com> X-Mailer: git-send-email 2.25.1 Reply-To: mhklinux@outlook.com MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 5C9111A000E X-Stat-Signature: au9y8d499ozz7cui38b3grxm9uod4wos X-Rspam-User: X-HE-Tag: 1748016943-832996 X-HE-Meta: U2FsdGVkX1/F0wi+AYjmZmC1LReCB1q5c5XtGA+AKk5z7TR7aBxld8s2Yb+myBtsB7DvGa3MMLqcws615qjXQuJLVcAWl5eKj3E1Aq6NUCCVe0ihhhkqe1d2tG7kQ6RbfZlbRo3t80v1dEEGdsgCLpHGHIkAQ1hFoamhjoXcf7r6jgbF1BfvkxMFj0UMzVPOn0zNFWjecQ6hQGIUDst9uan2aMudcDzPcn94s9vZ+G2yvch/3wM/l7sJjRKbY0AWsdLGTZp8xRZCnn6mZqQWKnmF4DkC+OPavjGZg5wNJJdrAF53OUls0jKOppcRYWElWMISDP7LSQNTWoNNtltr1lfDOL8ONvXQx3pYn4xf077c3XVzDGTqwcGSw4Jk1ZSIo6/pUlQowpRf4ieKDoYyZZtC4QIG5fPAAj2W16ZLq4oi0yP1ULtDQuUvjzPcaxTYM8WL+Vgk8TAs94rT9kzSwrJq6syvHHzZlJkQSUMfRgvD31VhfKqEm2dzi/wjKsj5S1rOPD1IQWxDwmKkQS/JSXRRQg4f9H0vnMQ8RihuFzwmPBVip0qM4l+2WYdtkKhVpKocl1JUmDZ/p8emNFHWZ0COktMe1/jagtH1xQC94uDQEj3iSASIsogPn8kY63qRWwdGBU6hH/CQKLSYmbXyugW18qn5ZjyiOmh8cTa/2uheP2m9cHd/R70Rpy4zurVXfaOKCvKi+xZwMzmBBcz6N/GOuNYoMjO+Eq9VwcIJFTUFRJz/dxBBLcnkK1eCURDz8eAFjg58Txoumgvq+mOe8q2GaPd8YZT4vCeGlzB+27jfUoJoYzEczO9rzRh4kLHJyBh6DHwXUnDxIw3oXkyPre6yPYGZ/U/6JLVQopJYljvFHbueucvA0zTHdVhbmWBanSwgzupUE8u1wvRE895W981SobkOZ7fL0iSpB3P9ghiyctRSWGc2lnjeFCp5Eivk94OeArvfgiqgErnksp1 jM5KGHFm 7Idiy10C1kW26RDi28ilmPH1B2F2una/irumlU4PyVnkHt7uU9OaHcpK0AJwrnoiAQJfM546/IkTHxNf7zibW66D+6f9fEOCUsLJxWRy5V020s3/lAJb9jiJ+NK8W1FZBIASjtihKOd63oMfLg9AU1hHqwPb6DKAT0D+HeodDOnhuGXoFy/R9psDY1GOwQMlQWcODzG6c6v+MAxDGQ6bFAwxrZKEZ4LH8e7kmnsSwLz2e/8XdOBpHP981GvPwdHIv1ZjFiz6+3ETGtTuHZo5J4lKD5iL0js9HBL+F/8UE8Rq60HLYXvHYnYOxZQ/eZE2BKgTRI3G4jXT6LaVAHNbZlGOtzFaXN+BV9L4zpDCxLwjqD8CIIbTybjLXbQ5cf2YnxbsyRyQjBxMSbhby3nYTqxEkbYQELrL/ItbsVA97IP16wnpJIsHOgVhOgRW0W0gdbLkNPvaLHLDVu43+GNcMG68M5X7OxhfnkDM+aaI2oyBw0XryMXl42x9CaHTgYjuLtnWRYh3HZEcCSWURqNR9JalFtnKaQQQ1x9JJo8/3uqhoiPTNBwCUCDwfFSKJQQ4PI9At 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: From: Michael Kelley Current deferred I/O code works only for framebuffer memory that is allocated with vmalloc(). The code assumes that the underlying page refcount can be used by the mm subsystem to manage each framebuffer page's lifecycle, which is consistent with vmalloc'ed memory, but not with contiguous kernel memory from alloc_pages() or similar. When used with contiguous kernel memory, current deferred I/O code eventually causes the memory free lists to be scrambled, and a kernel panic ensues. The problem is seen with the hyperv_fb driver when mmap'ing the framebuffer into user space, as that driver uses alloc_pages() for the framebuffer in some configurations. This patch set fixes the problem by supporting contiguous kernel memory framebuffers with deferred I/O. Patch 1 exports a 'mm' subsystem function needed by Patch 3. Pathc 2 defines the FBINFO_KMEMFB flag for use by Patches 3 and 4. Patch 3 is the changes to the fbdev deferred I/O code. More details are in the commit message of Patch 3. Patch 4 updates the hyperv_fb driver to use the new functionality from Patch 3. Michael Kelley (4): mm: Export vmf_insert_mixed_mkwrite() fbdev: Add flag indicating framebuffer is allocated from kernel memory fbdev/deferred-io: Support contiguous kernel memory framebuffers fbdev: hyperv_fb: Fix mmap of framebuffers allocated using alloc_pages() drivers/video/fbdev/core/fb_defio.c | 128 +++++++++++++++++++++++----- drivers/video/fbdev/hyperv_fb.c | 1 + include/linux/fb.h | 1 + mm/memory.c | 1 + 4 files changed, 111 insertions(+), 20 deletions(-) -- 2.25.1