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 EC0E6C64EC4 for ; Wed, 8 Mar 2023 15:58:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5306A280001; Wed, 8 Mar 2023 10:58:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E0686B0074; Wed, 8 Mar 2023 10:58:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 38112280001; Wed, 8 Mar 2023 10:58:03 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 28AED6B0072 for ; Wed, 8 Mar 2023 10:58:03 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id AFBE5AB29D for ; Wed, 8 Mar 2023 15:58:02 +0000 (UTC) X-FDA: 80546187204.09.FAF5773 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf16.hostedemail.com (Postfix) with ESMTP id 88AF218000E for ; Wed, 8 Mar 2023 15:58:00 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=jOyoEStY; spf=pass (imf16.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678291080; 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=cAOaGkIwCA5ZS+Sgpcv1TA+3A1d64qpc9FdQuuvh2JU=; b=rwZX8Wh4ITVgmOfT1SMKuwMV65+ZDFo2lDYzGATVVL2gW23uhbJk962qD2i3Z1v+2hChTc Ob3bU3XTnh8b53eBtgj/LMT28kNQZ//bTdwhgL/oMh1gT5O50fm1PpHGCSc5EvdG2/waXY 4Ej5t63sFROGmEJmSqRstCocVelwLtc= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=jOyoEStY; spf=pass (imf16.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678291080; a=rsa-sha256; cv=none; b=3cqWLoKGT3Eq/9GrEIGmGTVhCgVzVCrJR6af49DgVdoRGgSEaYyeclMcp+3w4qC6G31sTy bNPGrS0vcOuXavR62HEhO2c2jclYohEwFs4qi+mmpqV9yV70yGW1BJ13KkxFPYkLnCwxXd Snm/1dkWfvVXlDPZdeMZush9EuSx6EU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1678291079; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cAOaGkIwCA5ZS+Sgpcv1TA+3A1d64qpc9FdQuuvh2JU=; b=jOyoEStYBhWwlDfyLdGQh7cgWbDany/iGT4BF2F/PISyfOvPoIVltOvNeAJqTyQxP/jY6x evGN4lABx7AhaJkla/TN40U/tUo9hQC1oSuVQnJxMq9B2WMXKvvu0SBUY6f0oDlVAOatz6 a5X2Nk+ixHq6o1c2qN3pc63Gcxmr8pk= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-247-ru0bPXZPNoK6VzDO7LNDtw-1; Wed, 08 Mar 2023 10:57:58 -0500 X-MC-Unique: ru0bPXZPNoK6VzDO7LNDtw-1 Received: by mail-wm1-f70.google.com with SMTP id r7-20020a05600c35c700b003eb3f2c4fb4so966746wmq.6 for ; Wed, 08 Mar 2023 07:57:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678291077; h=content-transfer-encoding:in-reply-to:subject:organization:from :references:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cAOaGkIwCA5ZS+Sgpcv1TA+3A1d64qpc9FdQuuvh2JU=; b=CUqxEpZp1Ek3RMWjvGrntP9Ru6ltJaX89vNC/zoTrxbQnJkA5M0n+ePEhh2A6U+PXm lUuiIWHtZlG/iCwGtyDTNofSt88ICEMg7K1NwaW859yXRX6P7065c5Qc7vXuFQwAtDGN FEaSY44+tx4wd8BjjU0GxQNG7KEnwZnWjthc0HAl+77QBw5hE6kXlNuqhafXLgDUz/6O 5rmvVIdRqtc2salPxO5AevzCD9sHeBZi3Y/EV2i/3eDNCJmhXoGCOYzpWYWqfBZxNhim b0i6Vowrrf60r576tlAulmRdwD1YfOfZj+hh2ngc/d8yiiIEGo6XIRFpum90h1f2j+Yx kV8A== X-Gm-Message-State: AO0yUKXXlxu66/1dl9TPKc+tAFgOMptWVjY0lcP/CM/cy7vVpm7AvZ+q n2EEtiEUR+tmF75R11X3KKpZXzX9Q7ZzkTgffnDp2E3vXWdsl1pi9M1IiWQJW58/cmI1WB0FN5E h1OGyAtWpLAc= X-Received: by 2002:a05:600c:524c:b0:3e2:24a0:ba26 with SMTP id fc12-20020a05600c524c00b003e224a0ba26mr17175626wmb.16.1678291077569; Wed, 08 Mar 2023 07:57:57 -0800 (PST) X-Google-Smtp-Source: AK7set+0ZbDQv74474xESGT7KsCZ+Z0ADW8mAbBzIT3N2ds/q0PmHEKw5LdZFQNBVgWAbw2ieK8UIA== X-Received: by 2002:a05:600c:524c:b0:3e2:24a0:ba26 with SMTP id fc12-20020a05600c524c00b003e224a0ba26mr17175606wmb.16.1678291077285; Wed, 08 Mar 2023 07:57:57 -0800 (PST) Received: from [192.168.3.108] (p4ff23d27.dip0.t-ipconnect.de. [79.242.61.39]) by smtp.gmail.com with ESMTPSA id q10-20020a7bce8a000000b003ea57808179sm20289317wmj.38.2023.03.08.07.57.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Mar 2023 07:57:56 -0800 (PST) Message-ID: <83b3f3ad-19a2-3737-77dd-3c3f9db82194@redhat.com> Date: Wed, 8 Mar 2023 16:57:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 To: Peter Xu Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Muhammad Usama Anjum , Andrea Arcangeli , Axel Rasmussen , Mike Rapoport , Nadav Amit , Paul Gofman , Andrew Morton References: <20230306213925.617814-1-peterx@redhat.com> <20230306213925.617814-2-peterx@redhat.com> <94be7b9f-c33e-c6dc-4132-6cb78f7c0624@redhat.com> From: David Hildenbrand Organization: Red Hat Subject: Re: [PATCH v3 1/2] mm/uffd: UFFD_FEATURE_WP_UNPOPULATED In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: 94q757ygkwntagacwsbhhas7q9k48a19 X-Rspam-User: X-Rspamd-Queue-Id: 88AF218000E X-Rspamd-Server: rspam06 X-HE-Tag: 1678291080-967461 X-HE-Meta: U2FsdGVkX19xDU7CgzxydGZBqRB3gmtQ2sZL55mTGG1TKpMnSfwgJcPirjuD6jkaIyZl4vMYRshMZvt2aAu6q+lTtoIkDvUfhabkiBlJar9p364LoDQoSC7ucoe8XVPO2zGUcbWeebWPGTE4d7AM6bVNpWen8EsAWUXNBT9qClFDOjjwtLN4WreUt/PIO22DnGZj3IAtwl5mplLfayKziS4VTrb/c1u/IZP8IsgO5ys/sYuDjFuFfUE673vnKcEHt/QtoVpPjNsOV/PvzjP0mgzAtg7t2bchUZXDXi16mSiWaAV3cabQf4e1sHL4swyXB8w6VtJehbHbO0QucOdtngSR9BsEulU3UTwMBLx8cTh7Vvq0x3Rygh6LDlPhvTEW2j1ASQmKelgULqCnywDx8RO6Ot/ZBSAZRvpzvN1HX+GhXsZW/aeUM7d9gxJN+xt1l+CVSsn+houndzcby3zt3ByF3qmHuEGa6dIYI2U8BhPyVybWmSA+RW9Cdd0U8W91ZEijO0JfyYG0D0bhtTbFa11+1vFeAcLu8uaBe0Rj48DYBKLqy2JswhaSsYd13jNKonYhj2eecbfZfLt0b/wbThG8sucPf+C29qW+NeR+mgAjwqlzmgsMlc3lxmJXCYiVNssvflNwuEMLYi3ctLtxCiIPe4EDuy3eh/Ipe7RENz5i/AxTCJO2pT5iHB7b44HgNsDCgSqLs1/7HBPNRXpvJXeWhjozRsLIb8Pb2Pn9PQPLIH18jpV4xGcIcEP8DsuqZx6XnvZ+dCnaqxHjMZ/b2XdeJXxaER4GcYldfIgr7SGngt6m0togS1P952XxT9v1D9yPgmAv6lxAY39rZnyJi5rd3zJtiDE82N01A2mwcSQ+34CdBh/ZlGq4sOr2Hj0tsyX4Fufx0JsRcvK4tl94BRx6byYHP+VfERjxldk9dYrpGXwjJo3EMSraDdkvrGIYLnVy4iymEiOEdOQCCuQ /5O3knZ4 w1VIVAYIt/Dj0LmZokIcwTpSYi6NOxMSlmjoMDXND4vfp25UP2pqRDq8bXgC5Ajiqqri+hqxnZHKSxLusQJyGhqg5/hOToRqFrP9klAcuWEAVRmtufJm2vfPqF1l13t+gOA39ucE8hbGwsDvDaM4UR7xqreX8z2+GiBNs5ReETqX4f0ZfJVp4/8HXbrUehjE3qko//Tpz93LqKUxbxUpTZwvCKEPLKBe5w7WnJIx6L2mNKk5ei/HphRom7orOJKgepq/ywMf1KmayEnqgp/HeCqOftHRobh7ukPHzV2JTc6ZdNdPXHD4afTOikCpDiTIG2USKphZwvT0gfID0mzGa01saGYRxLllgYddGAX0Hvz1zM7YiaptwtYXAalk5Sn6EYVaSIimxjK/LgNOeF1uAW3ki99a9sjjRud5tKKNGYgZgmXgkgdo57xxiTw== 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: >> >>> With WP_UNPOPUATED, application like QEMU can avoid pre-read faults all the >>> memory before wr-protect during taking a live snapshot. Quotting from >>> Muhammad's test result here [3] based on a simple program [4]: >>> >>> (1) With huge page disabled >>> echo madvise > /sys/kernel/mm/transparent_hugepage/enabled >>> ./uffd_wp_perf >>> Test DEFAULT: 4 >>> Test PRE-READ: 1111453 (pre-fault 1101011) >>> Test MADVISE: 278276 (pre-fault 266378) >>> Test WP-UNPOPULATE: 11712 >>> >>> (2) With Huge page enabled >>> echo always > /sys/kernel/mm/transparent_hugepage/enabled >>> ./uffd_wp_perf >>> Test DEFAULT: 4 >>> Test PRE-READ: 22521 (pre-fault 22348) >>> Test MADVISE: 4909 (pre-fault 4743) >>> Test WP-UNPOPULATE: 14448 >>> >>> There'll be a great perf boost for no-thp case, while for thp enabled with >>> extreme case of all-thp-zero WP_UNPOPULATED can be slower than MADVISE, but >>> that's low possibility in reality, also the overhead was not reduced but >>> postponed until a follow up write on any huge zero thp, so potentitially it >> >> s/potentitially/potentially/ >> >>> is faster by making the follow up writes slower. >> >> What I realized, interrestingly not only the writes, but also the reads. In > > Curious why reading a zeropage would be a problem? Oh, my thinking was that with markers you postpone placing the shared zeropage. So the next read access will require a pagefault to map the shared zeropage. Your v1 would have performed best in that case I guess. -- Thanks, David / dhildenb