[Pacemaker] [Openais] Linux HA on debian sparc
william felipe_welter
wfelipew at gmail.com
Thu Jun 2 06:05:35 UTC 2011
I recompile my kernel without hugetlb .. and the result are the same..
My test program still resulting:
PATH=/dev/shm/teste123XXXXXX
page size=20000
fd=3
ADDR_ORIG:0xe000a000 ADDR:0xffffffff
Erro
And Pacemaker still resulting because the mmap error:
Could not initialize Cluster Configuration Database API instance error 2
For make sure that i have disable the hugetlb there is my /proc/meminfo:
MemTotal: 33093488 kB
MemFree: 32855616 kB
Buffers: 5600 kB
Cached: 53480 kB
SwapCached: 0 kB
Active: 45768 kB
Inactive: 28104 kB
Active(anon): 18024 kB
Inactive(anon): 1560 kB
Active(file): 27744 kB
Inactive(file): 26544 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 6104680 kB
SwapFree: 6104680 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 14936 kB
Mapped: 7736 kB
Shmem: 4624 kB
Slab: 39184 kB
SReclaimable: 10088 kB
SUnreclaim: 29096 kB
KernelStack: 7088 kB
PageTables: 1160 kB
Quicklists: 17664 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 22651424 kB
Committed_AS: 519368 kB
VmallocTotal: 1069547520 kB
VmallocUsed: 11064 kB
VmallocChunk: 1069529616 kB
2011/6/1 Steven Dake <sdake at redhat.com>:
> On 06/01/2011 07:42 AM, william felipe_welter wrote:
>> Steven,
>>
>> cat /proc/meminfo
>> ...
>> HugePages_Total: 0
>> HugePages_Free: 0
>> HugePages_Rsvd: 0
>> HugePages_Surp: 0
>> Hugepagesize: 4096 kB
>> ...
>>
>
> It definitely requires a kernel compile and setting the config option to
> off. I don't know the debian way of doing this.
>
> The only reason you may need this option is if you have very large
> memory sizes, such as 48GB or more.
>
> Regards
> -steve
>
>> Its 4MB..
>>
>> How can i disable hugetlb ? ( passing CONFIG_HUGETLBFS=n at boot to
>> kernel ?)
>>
>> 2011/6/1 Steven Dake <sdake at redhat.com <mailto: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
>> <mailto: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
>> <http://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
>> <mailto: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 <mailto:william.welter at 4linux.com.br>
>> >>> www.4linux.com.br <http://www.4linux.com.br>
>> >>
>> >>> _______________________________________________
>> >>> Openais mailing list
>> >>> Openais at lists.linux-foundation.org
>> <mailto:Openais at lists.linux-foundation.org>
>> >>> https://lists.linux-foundation.org/mailman/listinfo/openais
>> >>
>> >>
>> >> _______________________________________________
>> >> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
>> <mailto: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
>> <mailto:Openais at lists.linux-foundation.org>
>> > https://lists.linux-foundation.org/mailman/listinfo/openais
>>
>>
>> _______________________________________________
>> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
>> <mailto: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 <mailto:william.welter at 4linux.com.br>
>> www.4linux.com.br <http://www.4linux.com.br>
>>
>>
>>
>> _______________________________________________
>> 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
More information about the Pacemaker
mailing list