All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Huang\, Ying" <ying.huang@intel.com>
To: Shaohua Li <shli@kernel.org>
Cc: "Huang\, Ying" <ying.huang@intel.com>,
	Rik van Riel <riel@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>, <tim.c.chen@intel.com>,
	<dave.hansen@intel.com>, <andi.kleen@intel.com>,
	<aaron.lu@intel.com>, <linux-mm@kvack.org>,
	<linux-kernel@vger.kernel.org>, Hugh Dickins <hughd@google.com>,
	Minchan Kim <minchan@kernel.org>,
	"Andrea Arcangeli" <aarcange@redhat.com>,
	"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
	Vladimir Davydov <vdavydov@virtuozzo.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Michal Hocko <mhocko@kernel.org>
Subject: Re: [PATCH -v3 00/10] THP swap: Delay splitting THP during swapping out
Date: Mon, 26 Sep 2016 11:25:27 +0800	[thread overview]
Message-ID: <877f9zs5p4.fsf@yhuang-dev.intel.com> (raw)
In-Reply-To: <20160925191849.GA83300@kernel.org> (Shaohua Li's message of "Sun, 25 Sep 2016 12:18:49 -0700")

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=ascii, Size: 1712 bytes --]

Shaohua Li <shli@kernel.org> writes:

> On Fri, Sep 23, 2016 at 10:32:39AM +0800, Huang, Ying wrote:
>> Rik van Riel <riel@redhat.com> writes:
>> 
>> > On Thu, 2016-09-22 at 15:56 -0700, Shaohua Li wrote:
>> >> On Wed, Sep 07, 2016 at 09:45:59AM -0700, Huang, Ying wrote:
>> >> >.
>> >> > - It will help the memory fragmentation, especially when the THP is
>> >> > . heavily used by the applications.. The 2M continuous pages will
>> >> > be
>> >> > . free up after THP swapping out.
>> >> 
>> >> So this is impossible without THP swapin. While 2M swapout makes a
>> >> lot of
>> >> sense, I doubt 2M swapin is really useful. What kind of application
>> >> is
>> >> 'optimized' to do sequential memory access?
>> >
>> > I suspect a lot of this will depend on the ratio of storage
>> > speed to CPU & RAM speed.
>> >
>> > When swapping to a spinning disk, it makes sense to avoid
>> > extra memory use on swapin, and work in 4kB blocks.
>> 
>> For spinning disk, the THP swap optimization will be turned off in
>> current implementation.  Because huge swap cluster allocation based on
>> swap cluster management, which is available only for non-rotating block
>> devices (blk_queue_nonrot()).
>
> For 2m swapin, as long as one byte is changed in the 2m, next time we must do
> 2m swapout. There is huge waste of memory and IO bandwidth and increases
> unnecessary memory pressure. 2M IO will very easily saturate a very fast SSD
> and makes IO the bottleneck. Not sure about NVRAM though.

One solution is to make 2M swapin configurable, maybe via a sysfs file
in /sys/kernel/mm/transparent_hugepage/, so that we can turn on it only
for really fast storage devices, such as NVRAM, etc.

Best Regards,
Huang, Ying

WARNING: multiple messages have this Message-ID (diff)
From: "Huang\, Ying" <ying.huang@intel.com>
To: Shaohua Li <shli@kernel.org>
Cc: "Huang, Ying" <ying.huang@intel.com>,
	Rik van Riel <riel@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	tim.c.chen@intel.com, dave.hansen@intel.com,
	andi.kleen@intel.com, aaron.lu@intel.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, Hugh Dickins <hughd@google.com>,
	Minchan Kim <minchan@kernel.org>,
	Andrea Arcangeli <aarcange@redhat.com>,
	"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
	Vladimir Davydov <vdavydov@virtuozzo.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Michal Hocko <mhocko@kernel.org>
Subject: Re: [PATCH -v3 00/10] THP swap: Delay splitting THP during swapping out
Date: Mon, 26 Sep 2016 11:25:27 +0800	[thread overview]
Message-ID: <877f9zs5p4.fsf@yhuang-dev.intel.com> (raw)
In-Reply-To: <20160925191849.GA83300@kernel.org> (Shaohua Li's message of "Sun, 25 Sep 2016 12:18:49 -0700")

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=ascii, Size: 1985 bytes --]

Shaohua Li <shli@kernel.org> writes:

> On Fri, Sep 23, 2016 at 10:32:39AM +0800, Huang, Ying wrote:
>> Rik van Riel <riel@redhat.com> writes:
>> 
>> > On Thu, 2016-09-22 at 15:56 -0700, Shaohua Li wrote:
>> >> On Wed, Sep 07, 2016 at 09:45:59AM -0700, Huang, Ying wrote:
>> >> >.
>> >> > - It will help the memory fragmentation, especially when the THP is
>> >> > . heavily used by the applications.. The 2M continuous pages will
>> >> > be
>> >> > . free up after THP swapping out.
>> >> 
>> >> So this is impossible without THP swapin. While 2M swapout makes a
>> >> lot of
>> >> sense, I doubt 2M swapin is really useful. What kind of application
>> >> is
>> >> 'optimized' to do sequential memory access?
>> >
>> > I suspect a lot of this will depend on the ratio of storage
>> > speed to CPU & RAM speed.
>> >
>> > When swapping to a spinning disk, it makes sense to avoid
>> > extra memory use on swapin, and work in 4kB blocks.
>> 
>> For spinning disk, the THP swap optimization will be turned off in
>> current implementation.  Because huge swap cluster allocation based on
>> swap cluster management, which is available only for non-rotating block
>> devices (blk_queue_nonrot()).
>
> For 2m swapin, as long as one byte is changed in the 2m, next time we must do
> 2m swapout. There is huge waste of memory and IO bandwidth and increases
> unnecessary memory pressure. 2M IO will very easily saturate a very fast SSD
> and makes IO the bottleneck. Not sure about NVRAM though.

One solution is to make 2M swapin configurable, maybe via a sysfs file
in /sys/kernel/mm/transparent_hugepage/, so that we can turn on it only
for really fast storage devices, such as NVRAM, etc.

Best Regards,
Huang, Ying

--
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>

  parent reply	other threads:[~2016-09-26  3:25 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-07 16:45 [PATCH -v3 00/10] THP swap: Delay splitting THP during swapping out Huang, Ying
2016-09-07 16:45 ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 01/10] mm, swap: Make swap cluster size same of THP size on x86_64 Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-08  5:45   ` Anshuman Khandual
2016-09-08  5:45     ` Anshuman Khandual
2016-09-08 18:07     ` Huang, Ying
2016-09-08 18:07       ` Huang, Ying
2016-09-19 17:09     ` Johannes Weiner
2016-09-19 17:09       ` Johannes Weiner
2016-09-20  2:01       ` Huang, Ying
2016-09-20  2:01         ` Huang, Ying
2016-09-22 19:25         ` Johannes Weiner
2016-09-22 19:25           ` Johannes Weiner
2016-09-23  8:47           ` Huang, Ying
2016-09-08  8:21   ` Anshuman Khandual
2016-09-08  8:21     ` Anshuman Khandual
2016-09-08 11:03   ` Kirill A. Shutemov
2016-09-08 11:03     ` Kirill A. Shutemov
2016-09-08 17:39     ` Huang, Ying
2016-09-08 17:39       ` Huang, Ying
2016-09-08 11:07   ` Kirill A. Shutemov
2016-09-08 11:07     ` Kirill A. Shutemov
2016-09-08 17:23     ` Huang, Ying
2016-09-08 17:23       ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 02/10] mm, memcg: Add swap_cgroup_iter iterator Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 03/10] mm, memcg: Support to charge/uncharge multiple swap entries Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-08  5:46   ` Anshuman Khandual
2016-09-08  5:46     ` Anshuman Khandual
2016-09-08  8:28   ` Anshuman Khandual
2016-09-08  8:28     ` Anshuman Khandual
2016-09-08 18:15     ` Huang, Ying
2016-09-08 18:15       ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 04/10] mm, THP, swap: Add swap cluster allocate/free functions Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-08  5:49   ` Anshuman Khandual
2016-09-08  5:49     ` Anshuman Khandual
2016-09-08  8:30   ` Anshuman Khandual
2016-09-08  8:30     ` Anshuman Khandual
2016-09-08 18:14     ` Huang, Ying
2016-09-08 18:14       ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 05/10] mm, THP, swap: Add get_huge_swap_page() Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-08 11:13   ` Kirill A. Shutemov
2016-09-08 11:13     ` Kirill A. Shutemov
2016-09-08 17:22     ` Huang, Ying
2016-09-08 17:22       ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 06/10] mm, THP, swap: Support to clear SWAP_HAS_CACHE for huge page Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 07/10] mm, THP, swap: Support to add/delete THP to/from swap cache Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-08  9:00   ` Anshuman Khandual
2016-09-08  9:00     ` Anshuman Khandual
2016-09-08 18:10     ` Huang, Ying
2016-09-08 18:10       ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 08/10] mm, THP: Add can_split_huge_page() Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-08 11:17   ` Kirill A. Shutemov
2016-09-08 11:17     ` Kirill A. Shutemov
2016-09-08 17:02     ` Huang, Ying
2016-09-08 17:02       ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 09/10] mm, THP, swap: Support to split THP in swap cache Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-07 16:46 ` [PATCH -v3 10/10] mm, THP, swap: Delay splitting THP during swap out Huang, Ying
2016-09-07 16:46   ` Huang, Ying
2016-09-09  5:43 ` [PATCH -v3 00/10] THP swap: Delay splitting THP during swapping out Minchan Kim
2016-09-09  5:43   ` Minchan Kim
2016-09-09 15:53   ` Tim Chen
2016-09-09 15:53     ` Tim Chen
2016-09-09 20:35   ` Huang, Ying
2016-09-09 20:35     ` Huang, Ying
2016-09-13  6:13     ` Minchan Kim
2016-09-13  6:13       ` Minchan Kim
2016-09-13  6:40       ` Huang, Ying
2016-09-13  6:40         ` Huang, Ying
2016-09-13  7:05         ` Minchan Kim
2016-09-13  7:05           ` Minchan Kim
2016-09-13  8:53           ` Huang, Ying
2016-09-13  8:53             ` Huang, Ying
2016-09-13  9:16             ` Minchan Kim
2016-09-13  9:16               ` Minchan Kim
2016-09-13 23:52               ` Chen, Tim C
2016-09-13 23:52                 ` Chen, Tim C
2016-09-19  7:11                 ` Minchan Kim
2016-09-19  7:11                   ` Minchan Kim
2016-09-19 15:59                   ` Tim Chen
2016-09-19 15:59                     ` Tim Chen
2016-09-18  1:53               ` Huang, Ying
2016-09-18  1:53                 ` Huang, Ying
2016-09-19  7:08                 ` Minchan Kim
2016-09-19  7:08                   ` Minchan Kim
2016-09-20  2:54                   ` Huang, Ying
2016-09-20  2:54                     ` Huang, Ying
2016-09-20  5:06                     ` Minchan Kim
2016-09-20  5:06                       ` Minchan Kim
2016-09-20  5:28                       ` Huang, Ying
2016-09-20  5:28                         ` Huang, Ying
2016-09-13 14:35             ` Andrea Arcangeli
2016-09-13 14:35               ` Andrea Arcangeli
2016-09-19 17:33 ` Hugh Dickins
2016-09-19 17:33   ` Hugh Dickins
2016-09-22 22:56 ` Shaohua Li
2016-09-22 22:56   ` Shaohua Li
2016-09-22 23:49   ` Chen, Tim C
2016-09-22 23:49     ` Chen, Tim C
2016-09-22 23:53     ` Andi Kleen
2016-09-22 23:53       ` Andi Kleen
2016-09-23  0:38   ` Rik van Riel
2016-09-23  2:32     ` Huang, Ying
2016-09-23  2:32       ` Huang, Ying
2016-09-25 19:18       ` Shaohua Li
2016-09-25 19:18         ` Shaohua Li
2016-09-26  1:06         ` Minchan Kim
2016-09-26  1:06           ` Minchan Kim
2016-09-26  3:25         ` Huang, Ying [this message]
2016-09-26  3:25           ` Huang, Ying
2016-09-23  2:12   ` Huang, Ying
2016-09-23  2:12     ` Huang, Ying

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=877f9zs5p4.fsf@yhuang-dev.intel.com \
    --to=ying.huang@intel.com \
    --cc=aarcange@redhat.com \
    --cc=aaron.lu@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi.kleen@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=minchan@kernel.org \
    --cc=riel@redhat.com \
    --cc=shli@kernel.org \
    --cc=tim.c.chen@intel.com \
    --cc=vdavydov@virtuozzo.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.