01-24-2007
Call sysconf() with PTHREAD_STACK_MIN - this gives you the minimum required stack for each thread. Multiply by the number of concurrent threads you know will exist.
Next, call getrlimit() with AS_STACK to see if there is a stack size limit for any new process your parent will create. If there is one and it is too small, then you have to call setrlimit (if you have privs) to raise the hard limit to get a stack size you can live with.
Most Linux systems have no stack limits set, but it sounds as if your does.
With regard to brk, ulimit() will return the current max brk size allowed -- with UL_GETMAXBRK. I don't know how that relates to your problem exactly.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hello,
Please help me to know, How to find out the how much amount of process addres space is required/is used for/by a process.
Tnx & Regards
Vishwa. (1 Reply)
Discussion started by: S.Vishwanath
1 Replies
2. Programming
Hi!!,
could someone tell me how to increase the stack size in HP-UX?
Thanx (7 Replies)
Discussion started by: jyotipg
7 Replies
3. UNIX for Advanced & Expert Users
hi all,
I need to find out the Stack usage of an App which is basically an mpeg4 decoder. We are plannin to port the codec to an RTOS. so is there any way to find out the max stack size while the codec is running?
saTs (1 Reply)
Discussion started by: satish_somu
1 Replies
4. UNIX for Advanced & Expert Users
I want to find out how many disk blocks are used by only data (and not metadata) by a file.
But as far as I can tell, if the file has holes, then there is no way to know this.
You can find out the logical size of the file (physical size + hole blocks).
You can get the physical size of the... (3 Replies)
Discussion started by: the_learner
3 Replies
5. Shell Programming and Scripting
Hello
i am working on a project here is part of script that i need a help in
get process SpectroSERVER current size if it exceed 3850 MB then
#pkill -TERM ArchMgr
and wait to succfull shutdown message from the log file to proceed to the next step
#tail -f $SPECROOT/SS/DDM/ARCHMGR.OUT... (7 Replies)
Discussion started by: mogabr
7 Replies
6. Programming
Hi,
I am looking to work on unix systems which include (hp-ux, ibm aix, solaris and linux). I want to get the total virtual address space of a process, the used virtual memory i am able to get without any problem. I have tried using getrlimit and getrlimit64, but that gives only ... (4 Replies)
Discussion started by: uiqbal
4 Replies
7. Shell Programming and Scripting
I want to extend this script.
This must also be able to show me that a port is already assigned to a service but not running now
there must be three different messages
port 8949 is open but not listening
port 8959 is open
port 8999 hasn't been assigned to any service.
I know that... (1 Reply)
Discussion started by: charan314
1 Replies
8. Programming
Can someone explain me, why when I create new threads with stack bigger than default (using pthread_attr_setstacksize()) i can create more? Each thread has it's own stack, so how bigger stack can cause possibility to create more threads? (7 Replies)
Discussion started by: dawwin
7 Replies
9. UNIX for Advanced & Expert Users
Hi All,
I have set max stack size as 4KB for my thread, but it always using very less.
So I like to know what is the maximum stack size is used by my thread.
I tried with gcc -fstack-usage command line option, but its not supported by mips.
Kindly suggest me the way to find the max stack... (6 Replies)
Discussion started by: rajamohan
6 Replies
10. Shell Programming and Scripting
hi,
I just wondering is there any way that I can record the stack size of shell script at runtime. (2 Replies)
Discussion started by: yc962frank
2 Replies
LEARN ABOUT NETBSD
stack_grow
STACK(9) BSD Kernel Developer's Manual STACK(9)
NAME
STACK -- stack macros
SYNOPSIS
#include <sys/param.h>
type
STACK_ALLOC(sp, size);
type
STACK_MAX(sp, size);
type
STACK_ALIGN(sp, bytes);
type
STACK_GROW(sp, size);
type
STACK_SHRINK(sp, size);
DESCRIPTION
A stack is an area of memory with a fixed origin but with a variable size. A stack pointer points to the most recently referenced location
on the stack. Initially, when the stack has a size of zero, the stack pointer points to the origin of the stack. When data items are added
to the stack, the stack pointer moves away from the origin.
The STACK_ALLOC() macro returns a pointer to allocated stack space of some size. Given the returned pointer sp and size, STACK_MAX() returns
the maximum stack address of the allocated stack space. The STACK_ALIGN() macro can be used to align the stack pointer sp by the specified
amount of bytes.
Two basic operations are common to all stacks: a data item is added (``push'') to the location pointed by sp or a data item is removed
(``pop'') from the stack. The stack pointer must be subsequently adjusted by the size of the data item. The STACK_GROW() and STACK_SHRINK()
macros adjust the stack pointer sp by given size.
A stack may grow either up or down. The described macros take this into account by using the __MACHINE_STACK_GROWS_UP preprocessor define.
SEE ALSO
param(3), queue(3)
BSD
April 8, 2011 BSD