@@ -152,28 +152,17 @@ if {[llength $ldev]==0} {
152152}
153153
154154# get memory configuration
155-
156- if {[catch {set hugeOutput [exec hugeadm --pool-list]} err]} {
157- doLog " hugeadm failed: $err "
158- exit 1
159- }
160- set hugeOutputLines [split $hugeOutput " \n " ]
155+ set nHuge1G 0
156+ set nHuge1Gfile " /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages"
161157if {[catch {
162- set hugeHeader " Size Minimum Current Maximum Default"
163- if {[string trim [lindex $hugeOutputLines 0]]!=$hugeHeader } {
164- # throw only in tcl 8.7... but if not it generates an error anyway, which is what we want
165- throw
166- }
167- for {set i 1} {$i <[llength $hugeOutputLines ]} {incr i} {
168- set l [lindex $hugeOutputLines $i ]
169- set size [string trim [string range $l 0 11]]
170- set min [string trim [string range $l 12 20]]
171- set current [string trim [string range $l 21 29]]
172- set max [string trim [string range $l 30 38]]
173- lappend lmem " $size " " $current "
158+ set nHugeFd [open $nHuge1Gfile " r" ]
159+ gets $nHugeFd line
160+ close $nHugeFd
161+ if {[scan $line " %d" nHuge1G]!=1} {
162+ doLog " Failed to parse $nHuge1Gfile "
174163 }
175164} err]} {
176- doLog " Failed to parse hugeadm output : $err "
165+ doLog " Failed to get number of hugepages : $err "
177166}
178167
179168
@@ -202,9 +191,10 @@ if {[catch {
202191 throw
203192 }
204193 set l [lindex $memOutputLines 1]
205- set memTotal [string trim [string range $l 7 18]]
206- set memUsed [string trim [string range $l 19 30]]
207- set memFree [string trim [string range $l 31 42]]
194+ set theWords [regexp -all -inline {\S+} $l ]
195+ set memTotal [lindex $theWords 1]
196+ set memUsed [lindex $theWords 2]
197+ set memFree [lindex $theWords 3]
208198} err]} {
209199 doLog " Failed to parse free output: $err "
210200}
@@ -226,13 +216,7 @@ if {$numaNodes==0} {
226216}
227217
228218doLog " Memory available (hugepages):"
229- set nHuge1G 0
230- foreach {pageSize pagesAvailable} $lmem {
231- doLog " $pagesAvailable * $pageSize bytes"
232- if {$pageSize ==1073741824} {
233- set nHuge1G $pagesAvailable
234- }
235- }
219+ doLog " $nHuge1G * 1048576kB"
236220if {$nHuge1G ==0} {
237221 doLog " 1G pages should not be zero"
238222 incr err
0 commit comments