Re: [RFC PATCH 0/4] mm: reclaim zbud pages on migration and compaction

2013-08-06 Thread Krzysztof Kozlowski
On wto, 2013-08-06 at 17:16 +0800, Bob Liu wrote:
> On 08/06/2013 02:42 PM, Krzysztof Kozlowski wrote:
> > This reclaim process is different than zbud_reclaim_page(). It acts more
> > like swapoff() by trying to unuse pages stored in zbud page and bring
> > them back to memory. The standard zbud_reclaim_page() on the other hand
> > tries to write them back.
> 
> I prefer to migrate zbud pages directly if it's possible than reclaiming
> them during compaction.

I think it is possible however it would be definitely more complex. In
case of migration the zswap handles should be updated as they are just
virtual addresses. Am I right?

Best regards,
Krzysztof


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 0/4] mm: reclaim zbud pages on migration and compaction

2013-08-06 Thread Bob Liu
On 08/06/2013 02:42 PM, Krzysztof Kozlowski wrote:
> Hi,
> 
> Currently zbud pages are not movable and they cannot be allocated from CMA
> region. These patches try to address the problem by:
> 1. Adding a new form of reclaim of zbud pages.
> 2. Reclaiming zbud pages during migration and compaction.
> 3. Allocating zbud pages with __GFP_RECLAIMABLE flag.
> 
> This reclaim process is different than zbud_reclaim_page(). It acts more
> like swapoff() by trying to unuse pages stored in zbud page and bring
> them back to memory. The standard zbud_reclaim_page() on the other hand
> tries to write them back.

I prefer to migrate zbud pages directly if it's possible than reclaiming
them during compaction.

> 
> One of patches introduces a new flag: PageZbud. This flag is used in
> isolate_migratepages_range() to grab zbud pages and pass them later
> for reclaim. Probably this could be replaced with something
> smarter than a flag used only in one case.
> Any ideas for a better solution are welcome.
> 
> This patch set is based on Linux 3.11-rc4.
> 
> TODOs:
> 1. Replace PageZbud flag with other solution.
> 
> Best regards,
> Krzysztof Kozlowski
> 
> 
> Krzysztof Kozlowski (4):
>   zbud: use page ref counter for zbud pages
>   mm: split code for unusing swap entries from try_to_unuse
>   mm: add zbud flag to page flags
>   mm: reclaim zbud pages on migration and compaction
> 
>  include/linux/page-flags.h |   12 ++
>  include/linux/swapfile.h   |2 +
>  include/linux/zbud.h   |   11 +-
>  mm/compaction.c|   20 ++-
>  mm/internal.h  |1 +
>  mm/page_alloc.c|9 ++
>  mm/swapfile.c  |  354 
> +++-
>  mm/zbud.c  |  301 +
>  mm/zswap.c |   57 ++-
>  9 files changed, 499 insertions(+), 268 deletions(-)
> 

-- 
Regards,
-Bob
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC PATCH 0/4] mm: reclaim zbud pages on migration and compaction

2013-08-06 Thread Krzysztof Kozlowski
Hi,

Currently zbud pages are not movable and they cannot be allocated from CMA
region. These patches try to address the problem by:
1. Adding a new form of reclaim of zbud pages.
2. Reclaiming zbud pages during migration and compaction.
3. Allocating zbud pages with __GFP_RECLAIMABLE flag.

This reclaim process is different than zbud_reclaim_page(). It acts more
like swapoff() by trying to unuse pages stored in zbud page and bring
them back to memory. The standard zbud_reclaim_page() on the other hand
tries to write them back.

One of patches introduces a new flag: PageZbud. This flag is used in
isolate_migratepages_range() to grab zbud pages and pass them later
for reclaim. Probably this could be replaced with something
smarter than a flag used only in one case.
Any ideas for a better solution are welcome.

This patch set is based on Linux 3.11-rc4.

TODOs:
1. Replace PageZbud flag with other solution.

Best regards,
Krzysztof Kozlowski


Krzysztof Kozlowski (4):
  zbud: use page ref counter for zbud pages
  mm: split code for unusing swap entries from try_to_unuse
  mm: add zbud flag to page flags
  mm: reclaim zbud pages on migration and compaction

 include/linux/page-flags.h |   12 ++
 include/linux/swapfile.h   |2 +
 include/linux/zbud.h   |   11 +-
 mm/compaction.c|   20 ++-
 mm/internal.h  |1 +
 mm/page_alloc.c|9 ++
 mm/swapfile.c  |  354 +++-
 mm/zbud.c  |  301 +
 mm/zswap.c |   57 ++-
 9 files changed, 499 insertions(+), 268 deletions(-)

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC PATCH 0/4] mm: reclaim zbud pages on migration and compaction

2013-08-06 Thread Krzysztof Kozlowski
Hi,

Currently zbud pages are not movable and they cannot be allocated from CMA
region. These patches try to address the problem by:
1. Adding a new form of reclaim of zbud pages.
2. Reclaiming zbud pages during migration and compaction.
3. Allocating zbud pages with __GFP_RECLAIMABLE flag.

This reclaim process is different than zbud_reclaim_page(). It acts more
like swapoff() by trying to unuse pages stored in zbud page and bring
them back to memory. The standard zbud_reclaim_page() on the other hand
tries to write them back.

One of patches introduces a new flag: PageZbud. This flag is used in
isolate_migratepages_range() to grab zbud pages and pass them later
for reclaim. Probably this could be replaced with something
smarter than a flag used only in one case.
Any ideas for a better solution are welcome.

This patch set is based on Linux 3.11-rc4.

TODOs:
1. Replace PageZbud flag with other solution.

Best regards,
Krzysztof Kozlowski


Krzysztof Kozlowski (4):
  zbud: use page ref counter for zbud pages
  mm: split code for unusing swap entries from try_to_unuse
  mm: add zbud flag to page flags
  mm: reclaim zbud pages on migration and compaction

 include/linux/page-flags.h |   12 ++
 include/linux/swapfile.h   |2 +
 include/linux/zbud.h   |   11 +-
 mm/compaction.c|   20 ++-
 mm/internal.h  |1 +
 mm/page_alloc.c|9 ++
 mm/swapfile.c  |  354 +++-
 mm/zbud.c  |  301 +
 mm/zswap.c |   57 ++-
 9 files changed, 499 insertions(+), 268 deletions(-)

-- 
1.7.9.5

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 0/4] mm: reclaim zbud pages on migration and compaction

2013-08-06 Thread Bob Liu
On 08/06/2013 02:42 PM, Krzysztof Kozlowski wrote:
 Hi,
 
 Currently zbud pages are not movable and they cannot be allocated from CMA
 region. These patches try to address the problem by:
 1. Adding a new form of reclaim of zbud pages.
 2. Reclaiming zbud pages during migration and compaction.
 3. Allocating zbud pages with __GFP_RECLAIMABLE flag.
 
 This reclaim process is different than zbud_reclaim_page(). It acts more
 like swapoff() by trying to unuse pages stored in zbud page and bring
 them back to memory. The standard zbud_reclaim_page() on the other hand
 tries to write them back.

I prefer to migrate zbud pages directly if it's possible than reclaiming
them during compaction.

 
 One of patches introduces a new flag: PageZbud. This flag is used in
 isolate_migratepages_range() to grab zbud pages and pass them later
 for reclaim. Probably this could be replaced with something
 smarter than a flag used only in one case.
 Any ideas for a better solution are welcome.
 
 This patch set is based on Linux 3.11-rc4.
 
 TODOs:
 1. Replace PageZbud flag with other solution.
 
 Best regards,
 Krzysztof Kozlowski
 
 
 Krzysztof Kozlowski (4):
   zbud: use page ref counter for zbud pages
   mm: split code for unusing swap entries from try_to_unuse
   mm: add zbud flag to page flags
   mm: reclaim zbud pages on migration and compaction
 
  include/linux/page-flags.h |   12 ++
  include/linux/swapfile.h   |2 +
  include/linux/zbud.h   |   11 +-
  mm/compaction.c|   20 ++-
  mm/internal.h  |1 +
  mm/page_alloc.c|9 ++
  mm/swapfile.c  |  354 
 +++-
  mm/zbud.c  |  301 +
  mm/zswap.c |   57 ++-
  9 files changed, 499 insertions(+), 268 deletions(-)
 

-- 
Regards,
-Bob
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 0/4] mm: reclaim zbud pages on migration and compaction

2013-08-06 Thread Krzysztof Kozlowski
On wto, 2013-08-06 at 17:16 +0800, Bob Liu wrote:
 On 08/06/2013 02:42 PM, Krzysztof Kozlowski wrote:
  This reclaim process is different than zbud_reclaim_page(). It acts more
  like swapoff() by trying to unuse pages stored in zbud page and bring
  them back to memory. The standard zbud_reclaim_page() on the other hand
  tries to write them back.
 
 I prefer to migrate zbud pages directly if it's possible than reclaiming
 them during compaction.

I think it is possible however it would be definitely more complex. In
case of migration the zswap handles should be updated as they are just
virtual addresses. Am I right?

Best regards,
Krzysztof


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/