All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jianguo Wu <wujianguo106@gmail.com>
To: wency@cn.fujitsu.com
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-acpi@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-ia64@vger.kernel.org, cmetcalf@tilera.com,
	rientjes@google.com, liuj97@gmail.com, len.brown@intel.com,
	benh@kernel.crashing.org, paulus@samba.org, cl@linux.com,
	minchan.kim@gmail.com, akpm@linux-foundation.org,
	kosaki.motohiro@jp.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com
Subject: Re: [RFC V7 PATCH 18/19] memory-hotplug: add node_device_release
Date: Mon, 20 Aug 2012 22:09:40 +0800	[thread overview]
Message-ID: <50324524.5000501@gmail.com> (raw)
In-Reply-To: <1345455342-27752-19-git-send-email-wency@cn.fujitsu.com>

On 2012/8/20 17:35, wency@cn.fujitsu.com wrote:
> From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> 
> When calling unregister_node(), the function shows following message at
> device_release().
> 
> Device 'node2' does not have a release() function, it is broken and must be
> fixed.
> 
> So the patch implements node_device_release()
> 
> CC: David Rientjes <rientjes@google.com>
> CC: Jiang Liu <liuj97@gmail.com>
> CC: Len Brown <len.brown@intel.com>
> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Christoph Lameter <cl@linux.com>
> Cc: Minchan Kim <minchan.kim@gmail.com>
> CC: Andrew Morton <akpm@linux-foundation.org>
> CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> ---
>  drivers/base/node.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/base/node.c b/drivers/base/node.c
> index af1a177..9bc2f57 100644
> --- a/drivers/base/node.c
> +++ b/drivers/base/node.c
> @@ -252,6 +252,13 @@ static inline void hugetlb_register_node(struct node *node) {}
>  static inline void hugetlb_unregister_node(struct node *node) {}
>  #endif
>  
> +static void node_device_release(struct device *dev)
> +{
> +	struct node *node_dev = to_node(dev);
> +
> +	flush_work(&node_dev->node_work);

Hi Congyang,
	I think this should be:
#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	flush_work(&node_dev->node_work);
#endif

	As struct node defined in node.h:
struct node {
	struct sys_device	sysdev;

#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	struct work_struct	node_work;
#endif
};

	Thanks
	Jianguo Wu

> +	memset(node_dev, 0, sizeof(struct node));
> +}
>  
>  /*
>   * register_node - Setup a sysfs device for a node.
> @@ -265,6 +272,7 @@ int register_node(struct node *node, int num, struct node *parent)
>  
>  	node->dev.id = num;
>  	node->dev.bus = &node_subsys;
> +	node->dev.release = node_device_release;
>  	error = device_register(&node->dev);
>  
>  	if (!error){
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Jianguo Wu <wujianguo106@gmail.com>
To: wency@cn.fujitsu.com
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-acpi@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-ia64@vger.kernel.org, cmetcalf@tilera.com,
	rientjes@google.com, liuj97@gmail.com, len.brown@intel.com,
	benh@kernel.crashing.org, paulus@samba.org, cl@linux.com,
	minchan.kim@gmail.com, akpm@linux-foundation.org,
	kosaki.motohiro@jp.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com
Subject: Re: [RFC V7 PATCH 18/19] memory-hotplug: add node_device_release
Date: Mon, 20 Aug 2012 14:09:40 +0000	[thread overview]
Message-ID: <50324524.5000501@gmail.com> (raw)
In-Reply-To: <1345455342-27752-19-git-send-email-wency@cn.fujitsu.com>

On 2012/8/20 17:35, wency@cn.fujitsu.com wrote:
> From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> 
> When calling unregister_node(), the function shows following message at
> device_release().
> 
> Device 'node2' does not have a release() function, it is broken and must be
> fixed.
> 
> So the patch implements node_device_release()
> 
> CC: David Rientjes <rientjes@google.com>
> CC: Jiang Liu <liuj97@gmail.com>
> CC: Len Brown <len.brown@intel.com>
> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Christoph Lameter <cl@linux.com>
> Cc: Minchan Kim <minchan.kim@gmail.com>
> CC: Andrew Morton <akpm@linux-foundation.org>
> CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> ---
>  drivers/base/node.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/base/node.c b/drivers/base/node.c
> index af1a177..9bc2f57 100644
> --- a/drivers/base/node.c
> +++ b/drivers/base/node.c
> @@ -252,6 +252,13 @@ static inline void hugetlb_register_node(struct node *node) {}
>  static inline void hugetlb_unregister_node(struct node *node) {}
>  #endif
>  
> +static void node_device_release(struct device *dev)
> +{
> +	struct node *node_dev = to_node(dev);
> +
> +	flush_work(&node_dev->node_work);

Hi Congyang,
	I think this should be:
#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	flush_work(&node_dev->node_work);
#endif

	As struct node defined in node.h:
struct node {
	struct sys_device	sysdev;

#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	struct work_struct	node_work;
#endif
};

	Thanks
	Jianguo Wu

> +	memset(node_dev, 0, sizeof(struct node));
> +}
>  
>  /*
>   * register_node - Setup a sysfs device for a node.
> @@ -265,6 +272,7 @@ int register_node(struct node *node, int num, struct node *parent)
>  
>  	node->dev.id = num;
>  	node->dev.bus = &node_subsys;
> +	node->dev.release = node_device_release;
>  	error = device_register(&node->dev);
>  
>  	if (!error){
> 


WARNING: multiple messages have this Message-ID (diff)
From: Jianguo Wu <wujianguo106@gmail.com>
To: wency@cn.fujitsu.com
Cc: linux-s390@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-acpi@vger.kernel.org, len.brown@intel.com,
	linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org,
	cmetcalf@tilera.com, linux-mm@kvack.org,
	isimatu.yasuaki@jp.fujitsu.com, paulus@samba.org,
	minchan.kim@gmail.com, kosaki.motohiro@jp.fujitsu.com,
	rientjes@google.com, cl@linux.com, linuxppc-dev@lists.ozlabs.org,
	akpm@linux-foundation.org, liuj97@gmail.com
Subject: Re: [RFC V7 PATCH 18/19] memory-hotplug: add node_device_release
Date: Mon, 20 Aug 2012 22:09:40 +0800	[thread overview]
Message-ID: <50324524.5000501@gmail.com> (raw)
In-Reply-To: <1345455342-27752-19-git-send-email-wency@cn.fujitsu.com>

On 2012/8/20 17:35, wency@cn.fujitsu.com wrote:
> From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> 
> When calling unregister_node(), the function shows following message at
> device_release().
> 
> Device 'node2' does not have a release() function, it is broken and must be
> fixed.
> 
> So the patch implements node_device_release()
> 
> CC: David Rientjes <rientjes@google.com>
> CC: Jiang Liu <liuj97@gmail.com>
> CC: Len Brown <len.brown@intel.com>
> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Christoph Lameter <cl@linux.com>
> Cc: Minchan Kim <minchan.kim@gmail.com>
> CC: Andrew Morton <akpm@linux-foundation.org>
> CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> ---
>  drivers/base/node.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/base/node.c b/drivers/base/node.c
> index af1a177..9bc2f57 100644
> --- a/drivers/base/node.c
> +++ b/drivers/base/node.c
> @@ -252,6 +252,13 @@ static inline void hugetlb_register_node(struct node *node) {}
>  static inline void hugetlb_unregister_node(struct node *node) {}
>  #endif
>  
> +static void node_device_release(struct device *dev)
> +{
> +	struct node *node_dev = to_node(dev);
> +
> +	flush_work(&node_dev->node_work);

Hi Congyang,
	I think this should be:
#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	flush_work(&node_dev->node_work);
#endif

	As struct node defined in node.h:
struct node {
	struct sys_device	sysdev;

#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	struct work_struct	node_work;
#endif
};

	Thanks
	Jianguo Wu

> +	memset(node_dev, 0, sizeof(struct node));
> +}
>  
>  /*
>   * register_node - Setup a sysfs device for a node.
> @@ -265,6 +272,7 @@ int register_node(struct node *node, int num, struct node *parent)
>  
>  	node->dev.id = num;
>  	node->dev.bus = &node_subsys;
> +	node->dev.release = node_device_release;
>  	error = device_register(&node->dev);
>  
>  	if (!error){
> 

WARNING: multiple messages have this Message-ID (diff)
From: Jianguo Wu <wujianguo106@gmail.com>
To: wency@cn.fujitsu.com
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-acpi@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-ia64@vger.kernel.org, cmetcalf@tilera.com,
	rientjes@google.com, liuj97@gmail.com, len.brown@intel.com,
	benh@kernel.crashing.org, paulus@samba.org, cl@linux.com,
	minchan.kim@gmail.com, akpm@linux-foundation.org,
	kosaki.motohiro@jp.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com
Subject: Re: [RFC V7 PATCH 18/19] memory-hotplug: add node_device_release
Date: Mon, 20 Aug 2012 22:09:40 +0800	[thread overview]
Message-ID: <50324524.5000501@gmail.com> (raw)
In-Reply-To: <1345455342-27752-19-git-send-email-wency@cn.fujitsu.com>

On 2012/8/20 17:35, wency@cn.fujitsu.com wrote:
> From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> 
> When calling unregister_node(), the function shows following message at
> device_release().
> 
> Device 'node2' does not have a release() function, it is broken and must be
> fixed.
> 
> So the patch implements node_device_release()
> 
> CC: David Rientjes <rientjes@google.com>
> CC: Jiang Liu <liuj97@gmail.com>
> CC: Len Brown <len.brown@intel.com>
> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Christoph Lameter <cl@linux.com>
> Cc: Minchan Kim <minchan.kim@gmail.com>
> CC: Andrew Morton <akpm@linux-foundation.org>
> CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> ---
>  drivers/base/node.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/base/node.c b/drivers/base/node.c
> index af1a177..9bc2f57 100644
> --- a/drivers/base/node.c
> +++ b/drivers/base/node.c
> @@ -252,6 +252,13 @@ static inline void hugetlb_register_node(struct node *node) {}
>  static inline void hugetlb_unregister_node(struct node *node) {}
>  #endif
>  
> +static void node_device_release(struct device *dev)
> +{
> +	struct node *node_dev = to_node(dev);
> +
> +	flush_work(&node_dev->node_work);

Hi Congyang,
	I think this should be:
#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	flush_work(&node_dev->node_work);
#endif

	As struct node defined in node.h:
struct node {
	struct sys_device	sysdev;

#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
	struct work_struct	node_work;
#endif
};

	Thanks
	Jianguo Wu

> +	memset(node_dev, 0, sizeof(struct node));
> +}
>  
>  /*
>   * register_node - Setup a sysfs device for a node.
> @@ -265,6 +272,7 @@ int register_node(struct node *node, int num, struct node *parent)
>  
>  	node->dev.id = num;
>  	node->dev.bus = &node_subsys;
> +	node->dev.release = node_device_release;
>  	error = device_register(&node->dev);
>  
>  	if (!error){
> 


  reply	other threads:[~2012-08-20 14:09 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-20  9:35 [RFC V7 PATCH 00/19] memory-hotplug: hot-remove physical memory wency
2012-08-20  9:35 ` wency
2012-08-20  9:35 ` wency
2012-08-20  9:35 ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 01/19] memory-hotplug: rename remove_memory() to offline_memory()/offline_pages() wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 02/19] memory-hotplug: implement offline_memory() wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 03/19] memory-hotplug: store the node id in acpi_memory_device wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 04/19] memory-hotplug: offline and remove memory when removing the memory device wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 05/19] memory-hotplug: check whether memory is present or not wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 06/19] memory-hotplug: export the function acpi_bus_remove() wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 07/19] memory-hotplug: call acpi_bus_remove() to remove memory device wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 08/19] memory-hotplug: remove /sys/firmware/memmap/X sysfs wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 09/19] memory-hotplug: does not release memory region in PAGES_PER_SECTION chunks wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 10/19] memory-hotplug: add memory_block_release wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 11/19] memory-hotplug: remove_memory calls __remove_pages wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 12/19] memory-hotplug: introduce new function arch_remove_memory() wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 13/19] memory-hotplug: check page type in get_page_bootmem wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 14/19] memory-hotplug: move register_page_bootmem_info_node and put_page_bootmem for sparse-vmemmap wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` [RFC V7 PATCH 14/19] memory-hotplug: move register_page_bootmem_info_node and put_page_bootmem for s wency
2012-08-20  9:35 ` [RFC V7 PATCH 15/19] memory-hotplug: implement register_page_bootmem_info_section of sparse-vmemmap wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 16/19] memory-hotplug: free memmap " wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 17/19] memory_hotplug: clear zone when the memory is removed wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35 ` [RFC V7 PATCH 18/19] memory-hotplug: add node_device_release wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20 14:09   ` Jianguo Wu [this message]
2012-08-20 14:09     ` Jianguo Wu
2012-08-20 14:09     ` Jianguo Wu
2012-08-20 14:09     ` Jianguo Wu
2012-08-20  9:35 ` [RFC V7 PATCH 19/19] memory-hotplug: remove sysfs file of node wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency
2012-08-20  9:35   ` wency

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50324524.5000501@gmail.com \
    --to=wujianguo106@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=cl@linux.com \
    --cc=cmetcalf@tilera.com \
    --cc=isimatu.yasuaki@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=liuj97@gmail.com \
    --cc=minchan.kim@gmail.com \
    --cc=paulus@samba.org \
    --cc=rientjes@google.com \
    --cc=wency@cn.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.