Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1448480 > unrolled thread
| Started by | Xishi Qiu <qiuxishi@huawei.com> |
|---|---|
| First post | 2016-07-22 11:10 +0200 |
| Last post | 2016-07-22 11:40 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
mm/compact: why use low watermark to determine whether compact is finished instead of use high watermark? Xishi Qiu <qiuxishi@huawei.com> - 2016-07-22 11:10 +0200
Re: mm/compact: why use low watermark to determine whether compact is finished instead of use high watermark? Vlastimil Babka <vbabka@suse.cz> - 2016-07-22 11:10 +0200
Re: mm/compact: why use low watermark to determine whether compact is finished instead of use high watermark? Xishi Qiu <qiuxishi@huawei.com> - 2016-07-22 11:40 +0200
Re: mm/compact: why use low watermark to determine whether compact is finished instead of use high watermark? Vlastimil Babka <vbabka@suse.cz> - 2016-07-22 11:40 +0200
| From | Xishi Qiu <qiuxishi@huawei.com> |
|---|---|
| Date | 2016-07-22 11:10 +0200 |
| Subject | mm/compact: why use low watermark to determine whether compact is finished instead of use high watermark? |
| Message-ID | <rXED0-3Mr-19@gated-at.bofh.it> |
Hi, I find all the watermarks in mm/compaction.c are low_wmark_pages(), so why not use high watermark to determine whether compact is finished? e.g. __alloc_pages_nodemask() get_page_from_freelist() this is fast path, use use low_wmark_pages() in __zone_watermark_ok() __alloc_pages_slowpath() this is slow path, usually use min_wmark_pages() kswapd balance_pgdat() use high_wmark_pages() to determine whether zone is balanced Thanks, Xishi Qiu
[toc] | [next] | [standalone]
| From | Vlastimil Babka <vbabka@suse.cz> |
|---|---|
| Date | 2016-07-22 11:10 +0200 |
| Message-ID | <rXED0-3Mr-21@gated-at.bofh.it> |
| In reply to | #1448480 |
On 07/22/2016 10:56 AM, Xishi Qiu wrote: > Hi, > > I find all the watermarks in mm/compaction.c are low_wmark_pages(), > so why not use high watermark to determine whether compact is finished? Why would you use high watermark? Quite the opposite, I want to move towards min watermark (precisely, the one in alloc_flags which is usually min) in this series: https://lkml.org/lkml/2016/6/24/222 especially: https://lkml.org/lkml/2016/6/24/214 > e.g. > __alloc_pages_nodemask() > get_page_from_freelist() > this is fast path, use use low_wmark_pages() in __zone_watermark_ok() > > __alloc_pages_slowpath() > this is slow path, usually use min_wmark_pages() Yes, and compaction should be finished when allocation can succeed, so match __alloc_pages_slowpath(). > > kswapd > balance_pgdat() > use high_wmark_pages() to determine whether zone is balanced > > Thanks, > Xishi Qiu >
[toc] | [prev] | [next] | [standalone]
| From | Xishi Qiu <qiuxishi@huawei.com> |
|---|---|
| Date | 2016-07-22 11:40 +0200 |
| Subject | Re: mm/compact: why use low watermark to determine whether compact is finished instead of use high watermark? |
| Message-ID | <rXF62-3XU-11@gated-at.bofh.it> |
| In reply to | #1448483 |
On 2016/7/22 17:04, Vlastimil Babka wrote: > On 07/22/2016 10:56 AM, Xishi Qiu wrote: >> Hi, >> >> I find all the watermarks in mm/compaction.c are low_wmark_pages(), >> so why not use high watermark to determine whether compact is finished? > > Why would you use high watermark? Quite the opposite, I want to move towards min watermark (precisely, the one in alloc_flags which is usually min) in this series: > > https://lkml.org/lkml/2016/6/24/222 > > especially: > > https://lkml.org/lkml/2016/6/24/214 > >> e.g. >> __alloc_pages_nodemask() >> get_page_from_freelist() >> this is fast path, use use low_wmark_pages() in __zone_watermark_ok() >> >> __alloc_pages_slowpath() >> this is slow path, usually use min_wmark_pages() > > Yes, and compaction should be finished when allocation can succeed, so match __alloc_pages_slowpath(). > Sounds reasonable, but now we have kcompactd which called from kswapd, so still use low wmark? Thanks, Xishi Qiu >> >> kswapd >> balance_pgdat() >> use high_wmark_pages() to determine whether zone is balanced >> >> Thanks, >> Xishi Qiu >> > > > . >
[toc] | [prev] | [next] | [standalone]
| From | Vlastimil Babka <vbabka@suse.cz> |
|---|---|
| Date | 2016-07-22 11:40 +0200 |
| Message-ID | <rXF62-3XU-13@gated-at.bofh.it> |
| In reply to | #1448498 |
On 07/22/2016 11:21 AM, Xishi Qiu wrote: > On 2016/7/22 17:04, Vlastimil Babka wrote: > >> On 07/22/2016 10:56 AM, Xishi Qiu wrote: >>> Hi, >>> >>> I find all the watermarks in mm/compaction.c are low_wmark_pages(), >>> so why not use high watermark to determine whether compact is finished? >> >> Why would you use high watermark? Quite the opposite, I want to move towards min watermark (precisely, the one in alloc_flags which is usually min) in this series: >> >> https://lkml.org/lkml/2016/6/24/222 >> >> especially: >> >> https://lkml.org/lkml/2016/6/24/214 >> >>> e.g. >>> __alloc_pages_nodemask() >>> get_page_from_freelist() >>> this is fast path, use use low_wmark_pages() in __zone_watermark_ok() >>> >>> __alloc_pages_slowpath() >>> this is slow path, usually use min_wmark_pages() >> >> Yes, and compaction should be finished when allocation can succeed, so match __alloc_pages_slowpath(). >> > > Sounds reasonable, but now we have kcompactd which called from kswapd, > so still use low wmark? kswapd uses high watermark (order-0) to make a buffer of free pages for both direct allocators and kcompactd. kcompactd will use min watermark for now. There used to be difference between min/low/high watermarks when checking high-orders, but now watermark only affects the check if there's enough total base pages, and high-order check then succeeds if there's at least one high(er)-order page. > Thanks, > Xishi Qiu > >>> >>> kswapd >>> balance_pgdat() >>> use high_wmark_pages() to determine whether zone is balanced >>> >>> Thanks, >>> Xishi Qiu >>> >> >> >> . >> > > >
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web