Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1608123
| From | "Huang\, Ying" <ying.huang@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure |
| Date | 2017-03-24 06:00 +0100 |
| Message-ID | <topup-4DO-1@gated-at.bofh.it> (permalink) |
| References | <tn1kt-2eN-1@gated-at.bofh.it> <tndbX-2bk-13@gated-at.bofh.it> <tonsB-3c4-1@gated-at.bofh.it> <top1o-4qf-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
John Hubbard <jhubbard@nvidia.com> writes: > On 03/23/2017 07:41 PM, Huang, Ying wrote: >> David Rientjes <rientjes@google.com> writes: >> >>> On Mon, 20 Mar 2017, Huang, Ying wrote: >>> >>>> From: Huang Ying <ying.huang@intel.com> >>>> >>>> Now vzalloc() is used in swap code to allocate various data >>>> structures, such as swap cache, swap slots cache, cluster info, etc. >>>> Because the size may be too large on some system, so that normal >>>> kzalloc() may fail. But using kzalloc() has some advantages, for >>>> example, less memory fragmentation, less TLB pressure, etc. So change >>>> the data structure allocation in swap code to use kvzalloc() which >>>> will try kzalloc() firstly, and fallback to vzalloc() if kzalloc() >>>> failed. >>>> >>> >>> As questioned in -v1 of this patch, what is the benefit of directly >>> compacting and reclaiming memory for high-order pages by first preferring >>> kmalloc() if this does not require contiguous memory? >> >> The memory allocation here is only for swap on time, not for swap out/in >> time. The performance of swap on is not considered critical. But if >> the kmalloc() is used instead of the vmalloc(), the swap out/in >> performance could be improved (marginally). More importantly, the >> interference for the other activity on the system could be reduced, For >> example, less memory fragmentation, less TLB usage of swap subsystem, >> etc. > > Hi Ying, > > I'm a little surprised to see vmalloc calls replaced with > kmalloc-then-vmalloc calls, because that actually makes fragmentation > worse (contrary to the above claim). That's because you will consume > contiguous memory (even though you don't need it to be contiguous), > whereas before, you would have been able to get by with page-at-a-time > for vmalloc. > > So, things like THP will find fewer contiguous chunks, as a result of patches such as this. Hi, John, I don't think so. The pages allocated by vmalloc() cannot be moved during de-fragment. For example, if 512 dis-continuous physical pages are allocated via vmalloc(), at worst, one page will be allocate from one distinct 2MB continous physical pages. This makes 512 * 2MB = 1GB memory cannot be used for THP allocation. Because these pages cannot be defragmented until vfree(). Best Regards, Huang, Ying > -- > thanks, > john h > >> >> 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> >>
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure "Huang, Ying" <ying.huang@intel.com> - 2017-03-20 10:00 +0100
[PATCH -v2 2/2] mm, swap: Sort swap entries before free "Huang, Ying" <ying.huang@intel.com> - 2017-03-20 10:00 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure David Rientjes <rientjes@google.com> - 2017-03-20 22:40 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure "Huang\, Ying" <ying.huang@intel.com> - 2017-03-24 03:50 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure John Hubbard <jhubbard@nvidia.com> - 2017-03-24 05:30 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure "Huang\, Ying" <ying.huang@intel.com> - 2017-03-24 06:00 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure John Hubbard <jhubbard@nvidia.com> - 2017-03-24 07:50 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure "Huang\, Ying" <ying.huang@intel.com> - 2017-03-24 08:20 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure John Hubbard <jhubbard@nvidia.com> - 2017-03-24 08:40 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure Dave Hansen <dave.hansen@linux.intel.com> - 2017-03-24 15:00 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure Tim Chen <tim.c.chen@linux.intel.com> - 2017-03-24 18:00 +0100
Re: [PATCH -v2 1/2] mm, swap: Use kvzalloc to allocate some swap data structure John Hubbard <jhubbard@nvidia.com> - 2017-03-24 19:20 +0100
csiph-web