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 X-Spam-Level: X-Spam-Status: No, score=-17.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B0F1C433B4 for ; Mon, 17 May 2021 15:18:37 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 304C56101B for ; Mon, 17 May 2021 15:18:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 304C56101B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id A62AC6B0072; Mon, 17 May 2021 11:18:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A13C06B0073; Mon, 17 May 2021 11:18:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8654F6B0074; Mon, 17 May 2021 11:18:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0112.hostedemail.com [216.40.44.112]) by kanga.kvack.org (Postfix) with ESMTP id 53B646B0072 for ; Mon, 17 May 2021 11:18:36 -0400 (EDT) Received: from smtpin08.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id D69891803DCF8 for ; Mon, 17 May 2021 15:18:35 +0000 (UTC) X-FDA: 78151079790.08.A81CE01 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf08.hostedemail.com (Postfix) with ESMTP id 5942180192C6 for ; Mon, 17 May 2021 15:18:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1621264714; 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=JBnQo/J9oz8gnM35x+7tBsgRWTaGkCDWee+DmJ5pKGg=; b=N8Y5eBgPTAIroqeRUsNbC1DBfQjo20AjmjUZMdw9It/E1+icZZo+9BSttLP7/56S1ERCEf 1yvuJyQ9p1uBPOuTK7vJL3D8Xza6R1MyQgtlNmgQ2Sb2oCeZxNDewf3VmZHWtVywCln/rn CrpuVldox98ATxXIZOM3wHq6HaGTJv4= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-194-9RjqkBYJMPiPR6lQK-P3aw-1; Mon, 17 May 2021 11:18:33 -0400 X-MC-Unique: 9RjqkBYJMPiPR6lQK-P3aw-1 Received: by mail-wr1-f69.google.com with SMTP id v5-20020adf9e450000b029010e708f05b3so3969816wre.6 for ; Mon, 17 May 2021 08:18:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=JBnQo/J9oz8gnM35x+7tBsgRWTaGkCDWee+DmJ5pKGg=; b=k05MqxY/I5igJANCVVSzUCd11KLds4LdvOirfX4x6Tp2Jiup+2vt7LQRo/fWNS9E03 ED3OfiDYQ4yFCgSxM9xCcrm2BfYxWkTdl57gbwDhmP0sAniLkSKAuRessUWotAj7BVoK AfdrunXu+526kAbxekqcG717wDzuSx94S7SyGzxr/TqNQ/V//XjXhk3Qga5bkYoVrJEe 18n3o8JLBuIICg2++Fa4ascNOnnLQd/8+vVIECWT5S9eaTG5qFnSHpv80ZQdnkfzjFUk aoaVQj6T4WcHSbVUyLpZR+5kit20TFiYleydCKrkNfIUGruFBXxfOQlTRr1fkBiIXFcJ wQKQ== X-Gm-Message-State: AOAM5319bFNePUUWAXcU3m1aUAhG4HTbgTNIz4K2WL01KsliTfgHEq+E u5KuH+K7Oqv8DBD6/p0k1axRZnDkNk5lGEqlMzzD2N5bc/EEWTkLVQzPFLCRNdODTCiWytMNVMM RJV1zkRQCWFpkqNpYp5Rw8bhcQj49ajnF2WLsWE+ed3JI8IeiMrLVQEoFOHI= X-Received: by 2002:a5d:5306:: with SMTP id e6mr231559wrv.324.1621264711909; Mon, 17 May 2021 08:18:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz9pgHxSB1CvA6bP+5A102Vw3q+wpKkw7H+TASfr6okGY07XFAE7cdx9Tfb7WlCOrjNYsTg6Q== X-Received: by 2002:a5d:5306:: with SMTP id e6mr231511wrv.324.1621264711624; Mon, 17 May 2021 08:18:31 -0700 (PDT) Received: from [192.168.3.132] (p5b0c6833.dip0.t-ipconnect.de. [91.12.104.51]) by smtp.gmail.com with ESMTPSA id g206sm5661736wme.16.2021.05.17.08.18.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 17 May 2021 08:18:31 -0700 (PDT) Subject: Re: [PATCH v2 4/6] mm: introduce page_offline_(begin|end|freeze|thaw) to synchronize setting PageOffline() To: Mike Rapoport Cc: linux-kernel@vger.kernel.org, Andrew Morton , "Michael S. Tsirkin" , Jason Wang , Alexey Dobriyan , "Matthew Wilcox (Oracle)" , Oscar Salvador , Michal Hocko , Roman Gushchin , Alex Shi , Steven Price , Mike Kravetz , Aili Yao , Jiri Bohac , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Naoya Horiguchi , linux-hyperv@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org References: <20210514172247.176750-1-david@redhat.com> <20210514172247.176750-5-david@redhat.com> From: David Hildenbrand Organization: Red Hat Message-ID: <016e96c9-82e6-3259-7a99-8627c3be11c6@redhat.com> Date: Mon, 17 May 2021 17:18:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 5942180192C6 Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=N8Y5eBgP; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf08.hostedemail.com: domain of david@redhat.com has no SPF policy when checking 170.10.133.124) smtp.mailfrom=david@redhat.com X-Rspamd-Server: rspam03 X-Stat-Signature: s6yyeo44js7p19id8mornyr9tf9jcb3q X-HE-Tag: 1621264712-811333 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 17.05.21 08:43, Mike Rapoport wrote: > On Fri, May 14, 2021 at 07:22:45PM +0200, David Hildenbrand wrote: >> A driver might set a page logically offline -- PageOffline() -- and >> turn the page inaccessible in the hypervisor; after that, access to page >> content can be fatal. One example is virtio-mem; while unplugged memory >> -- marked as PageOffline() can currently be read in the hypervisor, this >> will no longer be the case in the future; for example, when having >> a virtio-mem device backed by huge pages in the hypervisor. >> >> Some special PFN walkers -- i.e., /proc/kcore -- read content of random >> pages after checking PageOffline(); however, these PFN walkers can race >> with drivers that set PageOffline(). >> >> Let's introduce page_offline_(begin|end|freeze|thaw) for >> synchronizing. >> >> page_offline_freeze()/page_offline_thaw() allows for a subsystem to >> synchronize with such drivers, achieving that a page cannot be set >> PageOffline() while frozen. >> >> page_offline_begin()/page_offline_end() is used by drivers that care about >> such races when setting a page PageOffline(). >> >> For simplicity, use a rwsem for now; neither drivers nor users are >> performance sensitive. >> >> Acked-by: Michal Hocko >> Signed-off-by: David Hildenbrand > > One nit below, otherwise > > Reviewed-by: Mike Rapoport > >> --- >> include/linux/page-flags.h | 10 ++++++++++ >> mm/util.c | 40 ++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 50 insertions(+) >> >> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h >> index daed82744f4b..ea2df9a247b3 100644 >> --- a/include/linux/page-flags.h >> +++ b/include/linux/page-flags.h >> @@ -769,9 +769,19 @@ PAGE_TYPE_OPS(Buddy, buddy) >> * relies on this feature is aware that re-onlining the memory block will >> * require to re-set the pages PageOffline() and not giving them to the >> * buddy via online_page_callback_t. >> + * >> + * There are drivers that mark a page PageOffline() and do not expect any > > Maybe "and expect there won't be any further access"... > Thanks, makes sense. I'll wait a bit before I resend. -- Thanks, David / dhildenb