[pve-devel] [PATCH 1/2] add hugepages option

Alexandre DERUMIER aderumier at odiso.com
Thu May 12 14:25:53 CEST 2016


looking at the old article
https://lwn.net/Articles/376606/

vm.nr_overcommit_hugepages

"Knowing the exact huge page requirements in advance may not be possible. For example, the huge page requirements may be expected to vary throughout the lifetime of the system. In this case, the maximum number of additional huge pages that should be allocated is specified with the vm.nr_overcommit_hugepages. When a huge page pool does not have sufficient pages to satisfy a request for huge pages, an attempt to allocate up to nr_overcommit_hugepages is made. If an allocation fails, the result will be that mmap() will fail to avoid page fault failures as described in Huge Page Fault Behaviour in part 1.
"

So, maybe if we vm.nr_overcommit_hugepages, application can reserve hugepages without need to increase them manually

I need to test that
 
----- Mail original -----
De: "aderumier" <aderumier at odiso.com>
À: "dietmar" <dietmar at proxmox.com>
Cc: "pve-devel" <pve-devel at pve.proxmox.com>
Envoyé: Jeudi 12 Mai 2016 14:05:56
Objet: Re: [pve-devel] [PATCH 1/2] add hugepages option

>>who mount that? Do I still need above setup? How do I know the number 
>>of required hugepages in advance? How can we make that more convenient for 
>>the user? 

It's quite possible to increase/decrease hugepage online, at least of 2MB hugepages, through sysfs. 
echo X > /proc/sys/vm/nr_hugepages 

can be done at vm start/stop for example 

For 1GB hugepages, it's more difficult because of memory fragmentation. 


But basicaly, THP can already do the job for 2MB hugepage 

for 1GB,THP don't work. 
and recommendation are to define them at start, because they need contigous memory 

----- Mail original ----- 
De: "dietmar" <dietmar at proxmox.com> 
À: "aderumier" <aderumier at odiso.com>, "pve-devel" <pve-devel at pve.proxmox.com> 
Envoyé: Jeudi 12 Mai 2016 12:57:42 
Objet: Re: [pve-devel] [PATCH 1/2] add hugepages option 

> host configuration 
> ------------------ 
> hugepages need to be allocated at boot 
> 
> for 4GB of 2M hugepages 
> 
> /etc/default/grub 
> ----------------- 
> GRUB_CMDLINE_LINUX_DEFAULT="quiet hugepagesz=2M hugepages=2048" 
> 
> /etc/fstab 
> ---------- 
> hugetlbfs /dev/hugepages hugetlbfs pagesize=2048k 0 0 
> 
> for 4GB for 1GB hugepages 
> 
> /etc/default/grub 
> ----------------- 
> GRUB_CMDLINE_LINUX_DEFAULT="quiet default_hugepagesz=1G hugepagesz=1G 
> hugepages=4" 

It is still unclear to me how to setup hugepages. On my host /dev/hugepages 
is already mounted: 

# mount|grep hugecgroup on /sys/fs/cgroup/hugetlb type cgroup 
(rw,nosuid,nodev,noexec,relatime,hugetlb,release_agent=/run/cgmanager/agents/cgm-release-agent.hugetlb,nsroot=/) 
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) 
hugetlb on /run/lxcfs/controllers/hugetlb type cgroup 
(rw,relatime,hugetlb,release_agent=/run/cgmanager/agents/cgm-release-agent.hugetlb,nsroot=/) 

who mount that? Do I still need above setup? How do I know the number 
of required hugepages in advance? How can we make that more convenient for 
the user? 
_______________________________________________ 
pve-devel mailing list 
pve-devel at pve.proxmox.com 
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 



More information about the pve-devel mailing list