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 1F422C61DB3 for ; Tue, 10 Jan 2023 05:49:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 746598E0002; Tue, 10 Jan 2023 00:49:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6F6108E0001; Tue, 10 Jan 2023 00:49:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E5368E0002; Tue, 10 Jan 2023 00:49:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 4EBA38E0001 for ; Tue, 10 Jan 2023 00:49:32 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1BC7D804F4 for ; Tue, 10 Jan 2023 05:49:32 +0000 (UTC) X-FDA: 80337812184.22.6D2DF2B Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by imf21.hostedemail.com (Postfix) with ESMTP id 417C11C0004 for ; Tue, 10 Jan 2023 05:49:30 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b="JpkC/d8F"; spf=pass (imf21.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com; dmarc=pass (policy=none) header.from=collabora.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673329770; 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=a38ihKpZLqr6+buDZfowSJeglGta7Uu19tFOfigkSkQ=; b=JVLNQ/WpUc0uh/2jyTGony6Wv5uRaMJ0gS6R/y+Mk82y1Zd8jXToT73UAEuhVLNi5nk7Fz bF0DYP7Mp6BoYLcb7zsax9BY45lO4DX2aFNVG1a3kaOC5xJReJmrQPbu2nzGTvV/1I49eW 6QY9OTEqxOFW9UhJQQ/FsIEeZNVmx3A= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b="JpkC/d8F"; spf=pass (imf21.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com; dmarc=pass (policy=none) header.from=collabora.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673329770; a=rsa-sha256; cv=none; b=g4l5m/QiKhb4z+shKiKHrT0VsCD+120lD9QeQf1fDHsBGEnO4JzC4WuvAovNlupsb+vMeX 8TqQ3RxdDb7lzcbcxNfJ1nxsWmYoDquSgEYlIBXZjrEfqabbJeYbDPSH+vLl1dZ3Jmd0hP mbhFWNYCyTi4HvbXhpDHV1a6MHZEYVE= Received: from [192.168.10.12] (unknown [39.45.186.163]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: usama.anjum) by madras.collabora.co.uk (Postfix) with ESMTPSA id 225DA660230B; Tue, 10 Jan 2023 05:49:24 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1673329768; bh=IzktKiuA2C+7fFsNxOT5xp2wBaUGwyAnVvBi3Idir3E=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=JpkC/d8FVY+F4TtOcy4rj+hatadaGiVeh4gQRDbUXVPWKmVHn22jbsIquJ8kYQEUn bNWgZ0EijaKY2vMy4dcQdMQB/VzUd7do14SXu2oV3RTEnePYwt0wwePoOeZC1233C4 duOmeLsaMUo56TjPeTNtsY3VvxR7e0o3uAuEF57c4VmAx321s0x6AjPBJHx1w0z9+V 62gvy1zeYf3zE/XxpUheETJ/lCM4VUlP2rckcJ603iC6c3j6AvbLuaVnGjXtN6RCKe xHctrMfsbXkg6rHmj9a9lg83R8iwhfpYUJBwMT0EYsvOQZvc9SIu3NO7SvK19p6DBS n98N+vk+ecZkQ== Message-ID: <8a0ebe48-c9fd-b030-71bd-4a806c6d5f29@collabora.com> Date: Tue, 10 Jan 2023 10:49:20 +0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Cc: Muhammad Usama Anjum , Alexander Viro , Eric Biederman , Kees Cook , Andrew Morton , Steven Rostedt , Masami Hiramatsu , kernel@collabora.com, peterx@redhat.com, david@redhat.com, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC] mm: implement granular soft-dirty vma support To: Cyrill Gorcunov References: <20221220162606.1595355-1-usama.anjum@collabora.com> Content-Language: en-US From: Muhammad Usama Anjum In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Stat-Signature: 1crhb8n6i3ajy37fpm16zahd3newgrfe X-Rspam-User: X-Rspamd-Queue-Id: 417C11C0004 X-Rspamd-Server: rspam06 X-HE-Tag: 1673329770-709248 X-HE-Meta: U2FsdGVkX1/9q1deYu5OrehqP1NIzb4uxRfz6kTPvE+H/wEwrCz+VEl1DGHvKkGMNKTkHwKo5HtMZ0KQeut8GewwtRzTP5GIjYNXKfg6Iw3sga1a0N1cTg8E/LsKTH05UonTIweGRXOPxQdRUL1Yg/qEeyyxcYB1eCz3nhg0tnDw6d+q2sEJ/MXJm0zV7TYoFUCDd/M08nG7UsDv+aNahkk1bI+igVUNrLF+N+EOeVNZClk14gLtCs01o1ONJBsXSYnPkxIV55FCBIz/fzSZHEUT+wisYUgnRXjk/qfE6nJMV2i0yOcUqqpR2FAAnBckYdDUlSW5qQgazz6AkPhnu5Hshya9p9QI9q6WQp0saWBebWFsKdLRVhiIaS3xi47Abughrpqq5tt/GYSbKoiYDYn0+fvlyvIX7DTV0Um0eaYffpF6SDyIqY2x879iSJ7NiZwH/y50vzo/rk+HyfWyvwmcGO1J+D3kV62p8ftjDvaVTKWK90pQoX9epAOy8FuJnwt9YB7SRVrfJTFosBreCnCtMgAYmSDYrCXs5qYnIwpiVwQsTjufjga7Ds073DjPHrqo80KmoVIO+1+7Y6uOrNgE60z56lovOQ41zjDMZ8lPXwq2lIn+NvLu8TxrEJuPYutGMbFH1BCUMw/q+UqbsLV5OgP7z4L/yE1IUBMPznFFlk03MALARkWNdSknKqrDIbUQysqalzdm9QxZSSXWq/nwadTK/EC4hvOHbRltC9cpy4A0ofj6CQwYwlPQTTM1XB9S029gaFElIEfQ/hVapkTeQMvKr1IXWDdxEa7yVEcVMv5BYi86blzIjmjoSDVDk4sEn/9S9+0PlvBLE3+CQPXE2Z8c3T+bbjYq0N7t96UMo53EDYQyTA+EoeSWcHgwVPt+LpR3RJqSeQAkVQy1Kd1BkJjo+Qun 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: On 1/10/23 3:18 AM, Cyrill Gorcunov wrote: > On Tue, Dec 20, 2022 at 09:26:05PM +0500, Muhammad Usama Anjum wrote: > ... >> >> +static inline int nsdr_adjust_new_first(struct vm_area_struct *new, struct vm_area_struct *vma) >> +{ >> + struct non_sd_reg *r, *r_tmp, *reg; >> + unsigned long mid = vma->vm_start; >> + >> + list_for_each_entry_safe(r, r_tmp, &vma->non_sd_reg, nsdr_head) { >> + if (r->start < mid && r->end > mid) { >> + reg = kmalloc(sizeof(struct non_sd_reg), GFP_KERNEL); >> + if (!reg) >> + return -ENOMEM; >> + reg->start = r->start; >> + reg->end = mid; >> + list_add_tail(®->nsdr_head, &new->non_sd_reg); >> + >> + r->start = mid; >> + } else if (r->end <= mid) { >> + list_move_tail(&r->nsdr_head, &new->non_sd_reg); >> + } >> + } >> + return 0; >> +} > > Hi Muhhamad, really sorry for delay. Please enlighten me here if I get your No problem. > idea right -- every new VMA merge might create a new non_sd_seg entry, right? Every new VMA only has the non_sd_reg list initialized with no entries as the whole VMA is soft-dirty at creation time. We add entries in this list when the soft-dirty is cleared over the entire or the part of the VMA. Once soft_dirty has been cleared, there might be entries in the non_sd_reg lists of both VMAs which will be maintained properly if VMAs are split/merged or freed if removed. At this time, the soft-dirty can only be cleared over the entire process and hence over entire VMAs. So this list will have only one entry even if VMAs are merged until VMAs are split. > And this operation will be applied again and again until vma get freed. IOW > we gonna have a chain of non_sd_reg which will be hanging around until VMA > get freed, right? Correct. I've posted the next version of PAGEMAP_SCAN ioctl [1] where soft-dirty support has been replaced with UFFD WP async. If that goes in, soft-dirty support can be left alone as people don't seem receptive of the idea that the soft-dirty support should be corrected. UFFD WP async is better as it is PTE based. Please review it. [1] https://lore.kernel.org/all/20230109064519.3555250-1-usama.anjum@collabora.com -- BR, Muhammad Usama Anjum