Now, I'm puzzled.

 
 I changed '#define ELEMENTS 1024*1024*64' to '#define ELEMENTS 1024*1024*20', 
and it looks like not work again. And the program run a short time.

[root@ ~]# echo 1000 > /proc/sys/vm/nr_hugepages
HugePages_Total:   433
HugePages_Free:    433
HugePages_Rsvd:      0
Hugepagesize:     2048 kB

I didn't mount the hugetlb to a filesystem, in order to get some debug msg. And 
thanks
for Eric's help. 

I don't know how to check hugetlbfs's version. I run 'locate hugetlb', and it 
output:

A machine (rhel5.4)
--------------------
......
/usr/lib/libhugetlbfs.so
/usr/lib64/libhugetlbfs.so
/usr/share/doc/libhugetlbfs-1.3
/usr/share/doc/libhugetlbfs-1.3/HOWTO
/usr/share/doc/libhugetlbfs-1.3/LGPL-2.1
/usr/share/doc/libhugetlbfs-1.3/NEWS
/usr/share/doc/libhugetlbfs-1.3/README
......

B machine (rhel6.0)
--------------------
......
/usr/lib64/libhugetlbfs.so
/usr/share/libhugetlbfs
/usr/share/doc/libhugetlbfs-2.8
/usr/share/doc/libhugetlbfs-2.8/HOWTO
/usr/share/doc/libhugetlbfs-2.8/LGPL-2.1
/usr/share/doc/libhugetlbfs-2.8/NEWS
/usr/share/doc/libhugetlbfs-2.8/README
......

A machine (rhel5.4)
-------------------
[root@A ~]# HUGETLB_DEBUG=yes HUGETLB_VERBOSE=99 HUGETLBFS_MORECORE=yes 
LD_PRELOAD=libhugetlbfs.so ./a.out
libhugetlbfs [first.dev.com:15824]: HUGETLB_SHARE=0, sharing disabled
libhugetlbfs [first.dev.com:15824]: Couldn't locate __executable_start, not 
attempting to remap segments

 

B machine (rhel6.0)
--------------------
[root@B ~]#  HUGETLB_DEBUG=yes HUGETLB_VERBOSE=99 HUGETLBFS_MORECORE=yes 
LD_PRELOAD=libhugetlbfs.so ./a.out
libhugetlbfs [nehalem.rhel6:4660]: INFO: Detected page sizes:
libhugetlbfs [nehalem.rhel6:4660]: INFO:    Size: 2048 kB (default)  Mount: 
/hugetlb
libhugetlbfs [nehalem.rhel6:4660]: INFO: Parsed kernel version: [2] . [6] . [32]
libhugetlbfs [nehalem.rhel6:4660]: INFO: Feature private_reservations is 
present in this kernel
libhugetlbfs [nehalem.rhel6:4660]: INFO: Kernel has MAP_PRIVATE reservations.  
Disabling heap prefaulting.
libhugetlbfs [nehalem.rhel6:4660]: INFO: HUGETLB_SHARE=0, sharing disabled
libhugetlbfs [nehalem.rhel6:4660]: INFO: No segments were appropriate for 
remapping


It looks like that hugetlb doesn't work, but it did work before.
Any help will be appreciated.

--Easley
 
------------------ Original ------------------
From:  "bill4carson"<bill4car...@gmail.com>;
Date:  Mon, Dec 26, 2011 11:12 AM
To:  "Easley"<ugi...@gmail.com>; 
Cc:  "libhugetlbfs-devel"<libhugetlbfs-devel@lists.sourceforge.net>; 
Subject:  Re: [Libhugetlbfs-devel] The Hugetlb looks like doesn't take effect.

 


On 2011年12月23日 20:29, Easley wrote:
>
> I changed #define ELEMENTS 1024*1024*64 to #define ELEMENTS 1024*1024*20,
> and it takes effect. Thank you.
> -------
> And there is another question. It's on another machine
> I take the following steps:
> --------------
>  [root@ ~]# echo 1000 > /proc/sys/vm/nr_hugepages
what's the output of cat /proc/meminfo | grep Huge ?


>  [root@ ~]# mkdir /hugetlb
>  [root@ ~]# HUGETLB_MORECORE=yes LD_PRELOAD=libhugetlbfs.so ./a.out
> ---------------
> There's should be output some error message,
  why is that ?and what's you point?


>  but it output nothing.
> (I do this in order to check whether hugepage take effect.)
> I think there's some wrong hugetlbfs setting, and I don't know why.
> My machine total memory is 24GB, and hugepages is 434 pages.
> Any help will appreciated.
>
> --Easley
>
> ------------------ Original ------------------
> *From: * "bill4carson"<bill4car...@gmail.com>;
> *Date: * Fri, Dec 23, 2011 11:12 AM
> *To: * "Easley"<ugi...@gmail.com>;
> *Cc: * "libhugetlbfs-devel"<libhugetlbfs-devel@lists.sourceforge.net>;
> *Subject: * Re: [Libhugetlbfs-devel] The Hugetlb looks like doesn't 
> take effect.
>
>
> On 2011年12月23日 10:37, Easley wrote:
> >
> > Hi,
> >
> >  I run my program by follow:
> > ---------------------------------
> > [root@ ~]# echo 200 > /proc/sys/vm/nr_hugepages
> > [root@ ~]# mkdir /hugetlb
> > [root@ ~]# mount -t hugetlbfs hugetlbfs /hugetlb
> > [root@ ~]# HUGETLB_MORECORE=yes LD_PRELOAD=libhugetlbfs.so ./a.out
> > [root@ ~]# grep Huge /proc/meminfo
> > HugePages_Total:   200
> > HugePages_Free:    200
> > HugePages_Rsvd:      0
> > Hugepagesize:     2048 kB
> > ------------------------------------------------
>
> So you have 400M bytes memory based on huge page.
>
>
> > And some machines output the follow msg.
> > -----------
> > libhugetlbfs: WARNING: New heap segment map at 0x40a00000 failed:
> > Cannot allocate memory
> > libhugetlbfs: WARNING: New heap segment map at 0x40a00000 failed:
> > Cannot allocate memory
> > ------------
> > How can I do that?
> > Any help will be appreciated.
> >
> > --Easley
> >
> >
> >
> > My program code (The code is not belong to me.)
> > ----------------------
> > #include <stdio.h>
> > #include <stdlib.h>
> >
> > #define ELEMENTS 1024*1024*64
> > static double  bss_array_from[ELEMENTS];
> > static double  bss_array_to[ELEMENTS];
> > static double *malloc_array_from;
> > static double *malloc_array_to;
> >
> > int   main()   {
> >     int   i;
> >     malloc_array_from = (double *)malloc(ELEMENTS*sizeof(double));
> >     malloc_array_to   = (double *)malloc(ELEMENTS*sizeof(double));
> >
> I think you allocate much bigger than you set before.
> Take a smaller size first, and try again.
> good luck :)
>
> >     /* initialize and touch all of the pages */
> >     for (i = 1; i < ELEMENTS; i++) {
> >        bss_array_to[i]      = 1.0;
> >        bss_array_from[i]    = 2.0;
> >        malloc_array_to[i]   = 3.0;
> >        malloc_array_from[i] = 4.0;
> >     }
> >
> >     /* copy "from" "to" */
> >     for (i = 1; i < ELEMENTS; i++) {
> >        bss_array_to[i]    = bss_array_from[i];
> >        malloc_array_to[i] = malloc_array_from[i];
> >     }
> >     return 0;
> > }
> > ---------------------------------
> >
> >
> >
> >
> >
> > 
> ------------------------------------------------------------------------------
> > Write once. Port to many.
> > Get the SDK and tools to simplify cross-platform app development. Create
> > new or port existing apps to sell to consumers worldwide. Explore the
> > Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
> > http://p.sf.net/sfu/intel-appdev
> >
> >
> > _______________________________________________
> > Libhugetlbfs-devel mailing list
> > Libhugetlbfs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel
>
> -- 
> I am a slow learner
> but I will keep trying to fight for my dreams!
>
> --bill
>

-- 
I am a slow learner
but I will keep trying to fight for my dreams!

--bill
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Libhugetlbfs-devel mailing list
Libhugetlbfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to