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=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 E04E4C433DB for ; Mon, 1 Feb 2021 16:01:01 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7C26164E2B for ; Mon, 1 Feb 2021 16:01:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7C26164E2B Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id EF48D6B0070; Mon, 1 Feb 2021 11:01:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EA4D46B0072; Mon, 1 Feb 2021 11:01:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBB026B0075; Mon, 1 Feb 2021 11:01:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0007.hostedemail.com [216.40.44.7]) by kanga.kvack.org (Postfix) with ESMTP id C77D46B0070 for ; Mon, 1 Feb 2021 11:01:00 -0500 (EST) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 7E0C28249980 for ; Mon, 1 Feb 2021 16:01:00 +0000 (UTC) X-FDA: 77770162680.15.smoke01_0305a74275c3 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin15.hostedemail.com (Postfix) with ESMTP id BE4A41814C3DC for ; Mon, 1 Feb 2021 16:00:42 +0000 (UTC) X-HE-Tag: smoke01_0305a74275c3 X-Filterd-Recvd-Size: 8977 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by imf50.hostedemail.com (Postfix) with ESMTP for ; Mon, 1 Feb 2021 16:00:41 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1612195241; h=from:from:reply-to: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=FgQeYKE1QKuGiityccM1KmggR+uZuuxuVsWMYHrnw4k=; b=FnzXQAtXbu8QFh3JrR8r/SYbXy7DfquKSC+JdHHLEWNaceru33gJ3WeIbxa15nSgitRt4b AO2uN1RFwy36PlE98sWe1QKsuxVZ7Fv4iQuU8TpFGMMV95jO3+nvZDPLBgPoReckXDAWVd hEljK5FMS7Ri2BelAoeDxxaFVYIW7NQ= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id CAE0FABD5; Mon, 1 Feb 2021 16:00:40 +0000 (UTC) Date: Mon, 1 Feb 2021 17:00:39 +0100 From: Michal Hocko To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Dave Hansen , Oscar Salvador , Jonathan Corbet , Greg Kroah-Hartman , Jonathan Cameron , Ilya Dryomov , Mauro Carvalho Chehab , Geert Uytterhoeven , linux-doc@vger.kernel.org Subject: Re: [PATCH v1 2/2] Documentation: sysfs/memory: clarify some memory block device properties Message-ID: References: <20210201105158.6393-1-david@redhat.com> <20210201105158.6393-3-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210201105158.6393-3-david@redhat.com> 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 Mon 01-02-21 11:51:58, David Hildenbrand wrote: > In commit 53cdc1cb29e8 ("drivers/base/memory.c: indicate all memory blocks > as removable") we changed the output of the "removable" property of memory > devices to return "1" if and only if the kernel supports memory offlining. > > Let's update documentation, stating that the interface is legacy. Also > update documentation of the "state" property and "valid_zones" > properties. > > Cc: Andrew Morton > Cc: Dave Hansen > Cc: Michal Hocko > Cc: Oscar Salvador > Cc: Jonathan Corbet > Cc: David Hildenbrand > Cc: Greg Kroah-Hartman > Cc: Jonathan Cameron > Cc: Ilya Dryomov > Cc: Mauro Carvalho Chehab > Cc: Geert Uytterhoeven > Cc: linux-doc@vger.kernel.org > Signed-off-by: David Hildenbrand Acked-by: Michal Hocko Thanks! > --- > .../ABI/testing/sysfs-devices-memory | 53 ++++++++++++------- > .../admin-guide/mm/memory-hotplug.rst | 16 +++--- > 2 files changed, 41 insertions(+), 28 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-devices-memory b/Documentation/ABI/testing/sysfs-devices-memory > index 58dbc592bc57..d8b0f80b9e33 100644 > --- a/Documentation/ABI/testing/sysfs-devices-memory > +++ b/Documentation/ABI/testing/sysfs-devices-memory > @@ -13,13 +13,13 @@ What: /sys/devices/system/memory/memoryX/removable > Date: June 2008 > Contact: Badari Pulavarty > Description: > - The file /sys/devices/system/memory/memoryX/removable > - indicates whether this memory block is removable or not. > - This is useful for a user-level agent to determine > - identify removable sections of the memory before attempting > - potentially expensive hot-remove memory operation > + The file /sys/devices/system/memory/memoryX/removable is a > + legacy interface used to indicated whether a memory block is > + likely to be offlineable or not. Newer kernel versions return > + "1" if and only if the kernel supports memory offlining. > Users: hotplug memory remove tools > http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils > + lsmem/chmem part of util-linux > > What: /sys/devices/system/memory/memoryX/phys_device > Date: September 2008 > @@ -44,23 +44,25 @@ Date: September 2008 > Contact: Badari Pulavarty > Description: > The file /sys/devices/system/memory/memoryX/state > - is read-write. When read, its contents show the > - online/offline state of the memory section. When written, > - root can toggle the the online/offline state of a removable > - memory section (see removable file description above) > - using the following commands:: > + is read-write. When read, it returns the online/offline > + state of the memory block. When written, root can toggle > + the online/offline state of a memory block using the following > + commands:: > > # echo online > /sys/devices/system/memory/memoryX/state > # echo offline > /sys/devices/system/memory/memoryX/state > > - For example, if /sys/devices/system/memory/memory22/removable > - contains a value of 1 and > - /sys/devices/system/memory/memory22/state contains the > - string "online" the following command can be executed by > - by root to offline that section:: > - > - # echo offline > /sys/devices/system/memory/memory22/state > - > + On newer kernel versions, advanced states can be specified > + when onlining to select a target zone: "online_movable" > + selects the movable zone. "online_kernel" selects the > + applicable kernel zone (DMA, DMA32, or Normal). However, > + after successfully setting one of the advanced states, > + reading the file will return "online"; the zone information > + can be obtained via "valid_zones" instead. > + > + While onlining is unlikely to fail, there are no guarantees > + that offlining will succeed. Offlining is more likely to > + succeed if "valid_zones" indicates "Movable". > Users: hotplug memory remove tools > http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils > > @@ -70,8 +72,19 @@ Date: July 2014 > Contact: Zhang Zhen > Description: > The file /sys/devices/system/memory/memoryX/valid_zones is > - read-only and is designed to show which zone this memory > - block can be onlined to. > + read-only. > + > + For online memory blocks, it returns in which zone memory > + provided by a memory block is managed. If multiple zones > + apply (not applicable for hotplugged memory), "None" is returned > + and the memory block cannot be offlined. > + > + For offline memory blocks, it returns by which zone memory > + provided by a memory block can be managed when onlining. > + The first returned zone ("default") will be used when setting > + the state of an offline memory block to "online". Only one of > + the kernel zones (DMA, DMA32, Normal) is applicable for a single > + memory block. > > What: /sys/devices/system/memoryX/nodeY > Date: October 2009 > diff --git a/Documentation/admin-guide/mm/memory-hotplug.rst b/Documentation/admin-guide/mm/memory-hotplug.rst > index 245739f55ac7..5307f90738aa 100644 > --- a/Documentation/admin-guide/mm/memory-hotplug.rst > +++ b/Documentation/admin-guide/mm/memory-hotplug.rst > @@ -162,14 +162,14 @@ Under each memory block, you can see 5 files: > which will be performed on all sections in the block. > ``phys_device`` read-only: legacy interface only ever used on s390x to > expose the covered storage increment. > -``removable`` read-only: contains an integer value indicating > - whether the memory block is removable or not > - removable. A value of 1 indicates that the memory > - block is removable and a value of 0 indicates that > - it is not removable. A memory block is removable only if > - every section in the block is removable. > -``valid_zones`` read-only: designed to show which zones this memory block > - can be onlined to. > +``removable`` read-only: legacy interface that indicated whether a memory > + block was likely to be offlineable or not. Newer kernel > + versions return "1" if and only if the kernel supports > + memory offlining. > +``valid_zones`` read-only: designed to show by which zone memory provided by > + a memory block is managed, and to show by which zone memory > + provided by an offline memory block could be managed when > + onlining. > > The first column shows it`s default zone. > > -- > 2.29.2 > -- Michal Hocko SUSE Labs