get_area_membind() would return a full nodeset if you don't membind first. By the way, mydata_ptr is not a physical address, it's a virtual address.
Brice Le 27/01/2016 02:23, Rezaul Karim Raju a écrit : > Hi, > > I am interested to know about what 'hwloc_bind' does beyond malloc()- > the OS call. > If I do like this: > > int mydata=11; > int * mydata_ptr; > *mydata_ptr = (int *)malloc(sizeof(int)); * > * * > *or,*** > * mydata_ptr = (int *) hwloc_alloc (topology, (sizeof(int)));* > ** > * mydata_ptr = &mydata; * > ** > and then call: > *hwloc_get_area_membind_nodeset (*topology, *mydata_ptr,* sizeof(int), > *nodeset,* &nodepolicy, flags); flags:= 0/1 process / thread > > it gives me the all available nodesets. > According to Brice previous reply: hwloc (get_area_membind ) returns > once Linux could have allocated (bound) memory buffer (the physical > address I am sending as *mydata_ptr*). > > *Is this something hwloc can only returns locations (& corresponding > nodeset) once it is bound (*set_area_membind*) prior ..? * > * > * > Thank you in advance. > - Raju > > On Fri, Dec 18, 2015 at 11:57 AM, Rezaul Karim Raju > <raju.cse.b...@gmail.com <mailto:raju.cse.b...@gmail.com>> wrote: > > Hi Brice, > > Thanks for your time and nice explanation. > I have looked at the issue with location return (the page > proportion across multiple node & physical allocation). Are you > thinking to add this function..? Like if we think list of node or > nodes where the array is allocated (only if physically allocated > otherwise NULL) is it possible..? > > I am looking for getting the physical location of data allocated > by OS default policy. Appreciate any better idea and please share > with me. > > Best Regards, > - Raju > > On Tue, Dec 15, 2015 at 3:28 AM, Brice Goglin > <brice.gog...@inria.fr <mailto:brice.gog...@inria.fr>> wrote: > > > > Le 15/12/2015 07:21, Brice Goglin a écrit : >> >> >> Le 15/12/2015 05:57, Rezaul Karim Raju a écrit : >>> *OUTPUT: * >>> *Policy-->* buffer(Array: A) *membind [default OS binding] >>> Policy is:= 1 [1 refers to *HWLOC_MEMBIND_FIRSTTOUCH >>> >>> <https://www.open-mpi.org/projects/hwloc/doc/v1.11.1/a00083.php#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0>*]* >>> *Nodeset --> *buffer(Array: A) bound to nodeset*0x000000ff >>> *with contains*:* >>> * *node #0 (OS index 0) with 8387047424 bytes of memory >>> node #1 (OS index 1) with 8471617536 bytes of memory >>> node #2 (OS index 2) with 8471621632 bytes of memory >>> node #3 (OS index 3) with 8471617536 bytes of memory >>> node #4 (OS index 4) with 8471621632 bytes of memory >>> node #5 (OS index 5) with 8471617536 bytes of memory >>> node #6 (OS index 6) with 8471621632 bytes of memory >>> node #7 (OS index 7) with 8471564288 bytes of memory >>> * >>> * >>> *why it shows allocated memory is bound to all available >>> nodeset..? should it not be allocated to a specific nodeset >>> one ..?* >>> * >>> * >> >> Hello >> >> You are confusing the "binding" and the "actual location". >> Your memory buffer isn't bound to a specific location by >> default. But Linux has to allocate it somewhere. So your >> buffer is "located" in some node after the allocation, but it >> is not "bound" there (what get_area_membind returns) which >> means Linux could have allocated it somewhere else. >> >> hwloc cannot currently return the "location" of a memory >> buffer. I have been thinking about adding this feature in the >> past, but it looks like you are the first actual user >> requesting this. We could add something like >> hwloc_get_last_memory_location(topology, input buffer, >> outputnodeset) >> At least on Linux that's possible. >> >> For clarity, this is similar to the difference between >> hwloc_get_cpubind() and hwloc_get_last_cpu_location(): A task >> always runs on a specific PU, even if it is not bound to >> anything specific PU. > > By the way, there is already an issue for this: > https://github.com/open-mpi/hwloc/issues/97 > > Feel to comment there. > > Brice > > > _______________________________________________ > hwloc-users mailing list > hwloc-us...@open-mpi.org <mailto:hwloc-us...@open-mpi.org> > Subscription: > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users > Link to this post: > http://www.open-mpi.org/community/lists/hwloc-users/2015/12/1226.php > > > > > -- > ------------------------ > RaJu, Rezaul Karim > Graduate Student (PhD) | Computer Science | University of Houston > Research in High Performance Computing Tools > Houston, Texas-77004 > > > > > -- > ------------------------ > RaJu, Rezaul Karim > Graduate Student (PhD) | Computer Science | University of Houston > Research in High Performance Computing Tools > Houston, Texas-77004