[Pacemaker] [Openais] Linux HA on debian sparc

william felipe_welter wfelipew at gmail.com
Wed Jun 1 10:42:42 EDT 2011


Steven,

cat /proc/meminfo
...
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       4096 kB
...

Its 4MB..

How can i disable hugetlb ? ( passing CONFIG_HUGETLBFS=n at boot to kernel
?)

2011/6/1 Steven Dake <sdake at redhat.com>

> On 06/01/2011 01:05 AM, Steven Dake wrote:
> > On 05/31/2011 09:44 PM, Angus Salkeld wrote:
> >> On Tue, May 31, 2011 at 11:52:48PM -0300, william felipe_welter wrote:
> >>> Angus,
> >>>
> >>> I make some test program (based on the code coreipcc.c) and i now i
> sure
> >>> that are problems with the mmap systems call on sparc..
> >>>
> >>> Source code of my test program:
> >>>
> >>> #include <stdlib.h>
> >>> #include <sys/mman.h>
> >>> #include <stdio.h>
> >>>
> >>> #define PATH_MAX  36
> >>>
> >>> int main()
> >>> {
> >>>
> >>> int32_t fd;
> >>> void *addr_orig;
> >>> void *addr;
> >>> char path[PATH_MAX];
> >>> const char *file = "teste123XXXXXX";
> >>> size_t bytes=10024;
> >>>
> >>> snprintf (path, PATH_MAX, "/dev/shm/%s", file);
> >>> printf("PATH=%s\n",path);
> >>>
> >>> fd = mkstemp (path);
> >>> printf("fd=%d \n",fd);
> >>>
> >>>
> >>> addr_orig = mmap (NULL, bytes, PROT_NONE,
> >>>               MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
> >>>
> >>>
> >>> addr = mmap (addr_orig, bytes, PROT_READ | PROT_WRITE,
> >>>               MAP_FIXED | MAP_SHARED, fd, 0);
> >>>
> >>> printf("ADDR_ORIG:%p  ADDR:%p\n",addr_orig,addr);
> >>>
> >>>
> >>>   if (addr != addr_orig) {
> >>>                printf("Erro");
> >>>         }
> >>> }
> >>>
> >>> Results on x86:
> >>> PATH=/dev/shm/teste123XXXXXX
> >>> fd=3
> >>> ADDR_ORIG:0x7f867d8e6000  ADDR:0x7f867d8e6000
> >>>
> >>> Results on sparc:
> >>> PATH=/dev/shm/teste123XXXXXX
> >>> fd=3
> >>> ADDR_ORIG:0xf7f72000  ADDR:0xffffffff
> >>
> >> Note: 0xffffffff == MAP_FAILED
> >>
> >> (from man mmap)
> >> RETURN VALUE
> >>        On success, mmap() returns a pointer to the mapped area.  On
> >>        error, the value MAP_FAILED (that is, (void *) -1) is returned,
> >>        and errno is  set appropriately.
> >>
> >>>
> >>>
> >>> But im wondering if is really needed to call mmap 2 times ?  What are
> the
> >>> reason to call the mmap 2 times, on the second time using the address
> of the
> >>> first?
> >>>
> >>>
> >> Well there are 3 calls to mmap()
> >> 1) one to allocate 2 * what you need (in pages)
> >> 2) maps the first half of the mem to a real file
> >> 3) maps the second half of the mem to the same file
> >>
> >> The point is when you write to an address over the end of the
> >> first half of memory it is taken care of the the third mmap which maps
> >> the address back to the top of the file for you. This means you
> >> don't have to worry about ringbuffer wrapping which can be a headache.
> >>
> >> -Angus
> >>
> >
> > interesting this mmap operation doesn't work on sparc linux.
> >
> > Not sure how I can help here - Next step would be a follow up with the
> > sparc linux mailing list.  I'll do that and cc you on the message - see
> > if we get any response.
> >
> > http://vger.kernel.org/vger-lists.html
> >
> >>>
> >>>
> >>>
> >>>
> >>> 2011/5/31 Angus Salkeld <asalkeld at redhat.com>
> >>>
> >>>> On Tue, May 31, 2011 at 06:25:56PM -0300, william felipe_welter wrote:
> >>>>> Thanks Steven,
> >>>>>
> >>>>> Now im try to run on the MCP:
> >>>>> - Uninstall the pacemaker 1.0
> >>>>> - Compile and install 1.1
> >>>>>
> >>>>> But now i have problems to initialize the pacemakerd: Could not
> >>>> initialize
> >>>>> Cluster Configuration Database API instance error 2
> >>>>> Debbuging with gdb i see that the error are on the confdb.. most
> >>>> specificaly
> >>>>> the errors start on coreipcc.c  at line:
> >>>>>
> >>>>>
> >>>>> 448        if (addr != addr_orig) {
> >>>>> 449                goto error_close_unlink;  <- enter here
> >>>>> 450       }
> >>>>>
> >>>>> Some ideia about  what can cause this  ?
> >>>>>
> >>>>
> >>>> I tried porting a ringbuffer (www.libqb.org) to sparc and had the
> same
> >>>> failure.
> >>>> There are 3 mmap() calls and on sparc the third one keeps failing.
> >>>>
> >>>> This is a common way of creating a ring buffer, see:
> >>>>
> http://en.wikipedia.org/wiki/Circular_buffer#Exemplary_POSIX_Implementation
> >>>>
> >>>> I couldn't get it working in the short time I tried. It's probably
> >>>> worth looking at the clib implementation to see why it's failing
> >>>> (I didn't get to that).
> >>>>
> >>>> -Angus
> >>>>
>
> Note, we sorted this out we believe.  Your kernel has hugetlb enabled,
> probably with 4MB pages.  This requires corosync to allocate 4MB pages.
>
> Can you verify your hugetlb settings?
>
> If you can turn this option off, you should have atleast a working
> corosync.
>
> Regards
> -steve
> >>>>
> >>>> _______________________________________________
> >>>> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> >>>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> >>>>
> >>>> Project Home: http://www.clusterlabs.org
> >>>> Getting started:
> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> >>>> Bugs:
> >>>>
> http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> William Felipe Welter
> >>> ------------------------------
> >>> Consultor em Tecnologias Livres
> >>> william.welter at 4linux.com.br
> >>> www.4linux.com.br
> >>
> >>> _______________________________________________
> >>> Openais mailing list
> >>> Openais at lists.linux-foundation.org
> >>> https://lists.linux-foundation.org/mailman/listinfo/openais
> >>
> >>
> >> _______________________________________________
> >> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> >> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> >>
> >> Project Home: http://www.clusterlabs.org
> >> Getting started:
> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> >> Bugs:
> http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
> >
> > _______________________________________________
> > Openais mailing list
> > Openais at lists.linux-foundation.org
> > https://lists.linux-foundation.org/mailman/listinfo/openais
>
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs:
> http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>



-- 
William Felipe Welter
------------------------------
Consultor em Tecnologias Livres
william.welter at 4linux.com.br
www.4linux.com.br
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clusterlabs.org/pipermail/pacemaker/attachments/20110601/20a7b895/attachment-0003.html>


More information about the Pacemaker mailing list