linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 1/6] mm/writeback: remove wb_reason_name
@ 2013-06-21  0:28 Wanpeng Li
  2013-06-21  0:28 ` [PATCH v5 2/6] mm/writeback: Don't check force_wait to handle bdi->work_list Wanpeng Li
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-06-21  0:28 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Michal Hocko, David Rientjes, Kirill A. Shutemov, Fengguang Wu,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel, Wanpeng Li

wb_reason_name is not used any more, this patch remove it.

Reviewed-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
 include/linux/writeback.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index e27468e..8b5cec4 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -51,7 +51,6 @@ enum wb_reason {
 
 	WB_REASON_MAX,
 };
-extern const char *wb_reason_name[];
 
 /*
  * A control structure which tells the writeback code what to do.  These are
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 2/6] mm/writeback: Don't check force_wait to handle bdi->work_list
  2013-06-21  0:28 [PATCH v5 1/6] mm/writeback: remove wb_reason_name Wanpeng Li
@ 2013-06-21  0:28 ` Wanpeng Li
  2013-06-21  0:33   ` Fengguang Wu
  2013-06-21  0:28 ` [PATCH v5 3/6] commit reason of WB_REASON_FORKER_THREAD mismatch name Wanpeng Li
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: Wanpeng Li @ 2013-06-21  0:28 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Michal Hocko, David Rientjes, Kirill A. Shutemov, Fengguang Wu,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel, Wanpeng Li

After commit 839a8e86("writeback: replace custom worker pool implementation
with unbound workqueue"), bdi_writeback_workfn runs off bdi_writeback->dwork,
on each execution, it processes bdi->work_list and reschedules if there are
more things to do instead of flush any work that race with us existing. It is
unecessary to check force_wait in wb_do_writeback since it is always 0 after
the mentioned commit. This patch remove the force_wait in wb_do_writeback.

Reviewed-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
 fs/fs-writeback.c |   10 ++--------
 1 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index f892dec..e15aa97 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -959,7 +959,7 @@ static long wb_check_old_data_flush(struct bdi_writeback *wb)
 /*
  * Retrieve work items and do the writeback they describe
  */
-static long wb_do_writeback(struct bdi_writeback *wb, int force_wait)
+static long wb_do_writeback(struct bdi_writeback *wb)
 {
 	struct backing_dev_info *bdi = wb->bdi;
 	struct wb_writeback_work *work;
@@ -967,12 +967,6 @@ static long wb_do_writeback(struct bdi_writeback *wb, int force_wait)
 
 	set_bit(BDI_writeback_running, &wb->bdi->state);
 	while ((work = get_next_work_item(bdi)) != NULL) {
-		/*
-		 * Override sync mode, in case we must wait for completion
-		 * because this thread is exiting now.
-		 */
-		if (force_wait)
-			work->sync_mode = WB_SYNC_ALL;
 
 		trace_writeback_exec(bdi, work);
 
@@ -1021,7 +1015,7 @@ void bdi_writeback_workfn(struct work_struct *work)
 		 * rescuer as work_list needs to be drained.
 		 */
 		do {
-			pages_written = wb_do_writeback(wb, 0);
+			pages_written = wb_do_writeback(wb);
 			trace_writeback_pages_written(pages_written);
 		} while (!list_empty(&bdi->work_list));
 	} else {
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 3/6] commit reason of WB_REASON_FORKER_THREAD mismatch name
  2013-06-21  0:28 [PATCH v5 1/6] mm/writeback: remove wb_reason_name Wanpeng Li
  2013-06-21  0:28 ` [PATCH v5 2/6] mm/writeback: Don't check force_wait to handle bdi->work_list Wanpeng Li
@ 2013-06-21  0:28 ` Wanpeng Li
  2013-06-21  0:49   ` Fengguang Wu
  2013-06-21  0:28 ` [PATCH v5 4/6] mm/page_alloc: fix doc for numa_zonelist_order Wanpeng Li
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: Wanpeng Li @ 2013-06-21  0:28 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Michal Hocko, David Rientjes, Kirill A. Shutemov, Fengguang Wu,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel, Wanpeng Li

Changelog:
  v4 -> v5:
   * indent the comment

After commit 839a8e86("writeback: replace custom worker pool implementation
with unbound workqueue"), there is no bdi forker thread any more. However,
WB_REASON_FORKER_THREAD is still used due to it is TPs userland visible
and we won't be exposing exactly the same information with just a different
name.

Reviewed-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
 include/linux/writeback.h |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index 8b5cec4..703a48a 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -47,6 +47,12 @@ enum wb_reason {
 	WB_REASON_LAPTOP_TIMER,
 	WB_REASON_FREE_MORE_MEM,
 	WB_REASON_FS_FREE_SPACE,
+	/*
+	 * There is no bdi forker thread any more and works are done
+	 * by emergency worker, however, this is somewhat userland
+	 * visible and we'll be exposing exactly the same information,
+	 * so it has a mismatch name.
+	 */
 	WB_REASON_FORKER_THREAD,
 
 	WB_REASON_MAX,
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 4/6] mm/page_alloc: fix doc for numa_zonelist_order
  2013-06-21  0:28 [PATCH v5 1/6] mm/writeback: remove wb_reason_name Wanpeng Li
  2013-06-21  0:28 ` [PATCH v5 2/6] mm/writeback: Don't check force_wait to handle bdi->work_list Wanpeng Li
  2013-06-21  0:28 ` [PATCH v5 3/6] commit reason of WB_REASON_FORKER_THREAD mismatch name Wanpeng Li
@ 2013-06-21  0:28 ` Wanpeng Li
  2013-06-21  0:28 ` [PATCH v5 5/6] mm/thp: fix doc for transparent huge zero page Wanpeng Li
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-06-21  0:28 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Michal Hocko, David Rientjes, Kirill A. Shutemov, Fengguang Wu,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel, Wanpeng Li

The default zonelist order selecter will select "node" order if any node's
DMA zone comprises greater than 70% of its local memory instead of 60%,
according to default_zonelist_order::low_kmem_size > total * 70/100.

Reviewed-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
 Documentation/sysctl/vm.txt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index a5717c3..15d341a 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -531,7 +531,7 @@ Specify "[Dd]efault" to request automatic configuration.  Autoconfiguration
 will select "node" order in following case.
 (1) if the DMA zone does not exist or
 (2) if the DMA zone comprises greater than 50% of the available memory or
-(3) if any node's DMA zone comprises greater than 60% of its local memory and
+(3) if any node's DMA zone comprises greater than 70% of its local memory and
     the amount of local memory is big enough.
 
 Otherwise, "zone" order will be selected. Default order is recommended unless
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 5/6] mm/thp: fix doc for transparent huge zero page
  2013-06-21  0:28 [PATCH v5 1/6] mm/writeback: remove wb_reason_name Wanpeng Li
                   ` (2 preceding siblings ...)
  2013-06-21  0:28 ` [PATCH v5 4/6] mm/page_alloc: fix doc for numa_zonelist_order Wanpeng Li
@ 2013-06-21  0:28 ` Wanpeng Li
  2013-06-21  0:28 ` [PATCH v5 6/6] mm/pgtable: Don't accumulate addr during pgd prepopulate pmd Wanpeng Li
  2013-06-21  0:37 ` [PATCH v5 1/6] mm/writeback: remove wb_reason_name Fengguang Wu
  5 siblings, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-06-21  0:28 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Michal Hocko, David Rientjes, Kirill A. Shutemov, Fengguang Wu,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel, Wanpeng Li

Transparent huge zero page is used during the page fault instead of
in khugepaged.

# ls /sys/kernel/mm/transparent_hugepage/
defrag  enabled  khugepaged  use_zero_page
# ls /sys/kernel/mm/transparent_hugepage/khugepaged/
alloc_sleep_millisecs  defrag  full_scans  max_ptes_none  pages_collapsed  pages_to_scan  scan_sleep_millisecs

This patch corrects the documentation just like the codes done.

Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
 Documentation/vm/transhuge.txt |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/vm/transhuge.txt b/Documentation/vm/transhuge.txt
index 8785fb8..4a63953 100644
--- a/Documentation/vm/transhuge.txt
+++ b/Documentation/vm/transhuge.txt
@@ -120,8 +120,8 @@ By default kernel tries to use huge zero page on read page fault.
 It's possible to disable huge zero page by writing 0 or enable it
 back by writing 1:
 
-echo 0 >/sys/kernel/mm/transparent_hugepage/khugepaged/use_zero_page
-echo 1 >/sys/kernel/mm/transparent_hugepage/khugepaged/use_zero_page
+echo 0 >/sys/kernel/mm/transparent_hugepage/use_zero_page
+echo 1 >/sys/kernel/mm/transparent_hugepage/use_zero_page
 
 khugepaged will be automatically started when
 transparent_hugepage/enabled is set to "always" or "madvise, and it'll
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 6/6] mm/pgtable: Don't accumulate addr during pgd prepopulate pmd
  2013-06-21  0:28 [PATCH v5 1/6] mm/writeback: remove wb_reason_name Wanpeng Li
                   ` (3 preceding siblings ...)
  2013-06-21  0:28 ` [PATCH v5 5/6] mm/thp: fix doc for transparent huge zero page Wanpeng Li
@ 2013-06-21  0:28 ` Wanpeng Li
  2013-06-21  0:37 ` [PATCH v5 1/6] mm/writeback: remove wb_reason_name Fengguang Wu
  5 siblings, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-06-21  0:28 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Michal Hocko, David Rientjes, Kirill A. Shutemov, Fengguang Wu,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel, Wanpeng Li

The old codes accumulate addr to get right pmd, however,
currently pmds are preallocated and transfered as a parameter,
there is unnecessary to accumulate addr variable any more, this
patch remove it.

Reviewed-by: Michal Hocko <mhocko@suse.cz>
Reviewed-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
 arch/x86/mm/pgtable.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 17fda6a..dfa537a 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -240,7 +240,6 @@ static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
 static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[])
 {
 	pud_t *pud;
-	unsigned long addr;
 	int i;
 
 	if (PREALLOCATED_PMDS == 0) /* Work around gcc-3.4.x bug */
@@ -248,8 +247,7 @@ static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[])
 
 	pud = pud_offset(pgd, 0);
 
- 	for (addr = i = 0; i < PREALLOCATED_PMDS;
-	     i++, pud++, addr += PUD_SIZE) {
+	for (i = 0; i < PREALLOCATED_PMDS; i++, pud++) {
 		pmd_t *pmd = pmds[i];
 
 		if (i >= KERNEL_PGD_BOUNDARY)
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 2/6] mm/writeback: Don't check force_wait to handle bdi->work_list
  2013-06-21  0:28 ` [PATCH v5 2/6] mm/writeback: Don't check force_wait to handle bdi->work_list Wanpeng Li
@ 2013-06-21  0:33   ` Fengguang Wu
  0 siblings, 0 replies; 9+ messages in thread
From: Fengguang Wu @ 2013-06-21  0:33 UTC (permalink / raw)
  To: Wanpeng Li
  Cc: Andrew Morton, Michal Hocko, David Rientjes, Kirill A. Shutemov,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel

Reviewed-by: Fengguang Wu <fengguang.wu@intel.com>

Andrew: this patch must be ordered _after_ "fs/fs-writeback.c: make
wb_do_writeback() as static" to avoid build errors.

Thanks,
Fengguang

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 1/6] mm/writeback: remove wb_reason_name
  2013-06-21  0:28 [PATCH v5 1/6] mm/writeback: remove wb_reason_name Wanpeng Li
                   ` (4 preceding siblings ...)
  2013-06-21  0:28 ` [PATCH v5 6/6] mm/pgtable: Don't accumulate addr during pgd prepopulate pmd Wanpeng Li
@ 2013-06-21  0:37 ` Fengguang Wu
  5 siblings, 0 replies; 9+ messages in thread
From: Fengguang Wu @ 2013-06-21  0:37 UTC (permalink / raw)
  To: Wanpeng Li
  Cc: Andrew Morton, Michal Hocko, David Rientjes, Kirill A. Shutemov,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel

On Fri, Jun 21, 2013 at 08:28:49AM +0800, Wanpeng Li wrote:
> wb_reason_name is not used any more, this patch remove it.
> 
> Reviewed-by: Tejun Heo <tj@kernel.org>
> Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>

Reviewed-by: Fengguang Wu <fengguang.wu@intel.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 3/6] commit reason of WB_REASON_FORKER_THREAD mismatch name
  2013-06-21  0:28 ` [PATCH v5 3/6] commit reason of WB_REASON_FORKER_THREAD mismatch name Wanpeng Li
@ 2013-06-21  0:49   ` Fengguang Wu
  0 siblings, 0 replies; 9+ messages in thread
From: Fengguang Wu @ 2013-06-21  0:49 UTC (permalink / raw)
  To: Wanpeng Li
  Cc: Andrew Morton, Michal Hocko, David Rientjes, Kirill A. Shutemov,
	Rik van Riel, Andrew Shewmaker, Jiri Kosina, Namjae Jeon,
	Jan Kara, Tejun Heo, linux-mm, linux-kernel

> --- a/include/linux/writeback.h
> +++ b/include/linux/writeback.h
> @@ -47,6 +47,12 @@ enum wb_reason {
>  	WB_REASON_LAPTOP_TIMER,
>  	WB_REASON_FREE_MORE_MEM,
>  	WB_REASON_FS_FREE_SPACE,
> +	/*
> +	 * There is no bdi forker thread any more and works are done
> +	 * by emergency worker, however, this is somewhat userland
> +	 * visible and we'll be exposing exactly the same information,
> +	 * so it has a mismatch name.
> +	 */
>  	WB_REASON_FORKER_THREAD,

Hmm, that reverted to the old "somewhat userland visible"?
And it seems hard to do a brief introduction of the situation..

Thanks,
Fengguang

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-06-21  0:49 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-21  0:28 [PATCH v5 1/6] mm/writeback: remove wb_reason_name Wanpeng Li
2013-06-21  0:28 ` [PATCH v5 2/6] mm/writeback: Don't check force_wait to handle bdi->work_list Wanpeng Li
2013-06-21  0:33   ` Fengguang Wu
2013-06-21  0:28 ` [PATCH v5 3/6] commit reason of WB_REASON_FORKER_THREAD mismatch name Wanpeng Li
2013-06-21  0:49   ` Fengguang Wu
2013-06-21  0:28 ` [PATCH v5 4/6] mm/page_alloc: fix doc for numa_zonelist_order Wanpeng Li
2013-06-21  0:28 ` [PATCH v5 5/6] mm/thp: fix doc for transparent huge zero page Wanpeng Li
2013-06-21  0:28 ` [PATCH v5 6/6] mm/pgtable: Don't accumulate addr during pgd prepopulate pmd Wanpeng Li
2013-06-21  0:37 ` [PATCH v5 1/6] mm/writeback: remove wb_reason_name Fengguang Wu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).