KMALLOC_ARRAY(9) Memory Management in Linux KMALLOC_ARRAY(9)NAME
kmalloc_array - allocate memory for an array.
void * kmalloc_array(size_t n, size_t size, gfp_t flags);
number of elements.
the type of memory to allocate.
The flags argument may be one of:
GFP_USER - Allocate memory on behalf of user. May sleep.
GFP_KERNEL - Allocate normal kernel ram. May sleep.
GFP_ATOMIC - Allocation will not sleep. May use emergency pools. For example, use this inside interrupt handlers.
GFP_HIGHUSER - Allocate pages from high memory.
GFP_NOIO - Do not do any I/O at all while trying to get memory.
GFP_NOFS - Do not make any fs calls while trying to get memory.
GFP_NOWAIT - Allocation will not sleep.
__GFP_THISNODE - Allocate node-local memory only.
GFP_DMA - Allocation suitable for DMA. Should only be used for kmalloc caches. Otherwise, use a slab created with SLAB_DMA.
Also it is possible to set different flags by OR'ing in one or more of the following additional flags:
__GFP_COLD - Request cache-cold pages instead of trying to return cache-warm pages.
__GFP_HIGH - This allocation has high priority and may use emergency pools.
__GFP_NOFAIL - Indicate that this allocation is in no way allowed to fail (think twice before using).
__GFP_NORETRY - If memory is not immediately available, then give up at once.
__GFP_NOWARN - If allocation fails, don't issue any warnings.
__GFP_REPEAT - If allocation fails initially, try once more before failing.
There are other flags available as well, but these are not intended for general use, and so are not documented here. For a full list of
potential flags, always refer to linux/gfp.h.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 KMALLOC_ARRAY(9)
Check Out this Related Man Page
KMEM_CACHE_CREATE(9) Memory Management in Linux KMEM_CACHE_CREATE(9)NAME
kmem_cache_create - Create a cache.
struct kmem_cache * kmem_cache_create(const char * name, size_t size, size_t align, unsigned long flags, void (*ctor) (void *));
A string which is used in /proc/slabinfo to identify this cache.
The size of objects to be created in this cache.
The required alignment for the objects.
A constructor for the objects.
Returns a ptr to the cache on success, NULL on failure. Cannot be called within a int, but can be interrupted. The ctor is run when new
pages are allocated by the cache.
name must be valid until the cache is destroyed. This implies that the module calling this has to destroy the cache before getting
unloaded. Note that kmem_cache_name is not guaranteed to return the same pointer, therefore applications must manage it themselves.
The flags are
SLAB_POISON - Poison the slab with a known test pattern (a5a5a5a5) to catch references to uninitialised memory.
SLAB_RED_ZONE - Insert `Red' zones around the allocated memory to check for buffer overruns.
SLAB_HWCACHE_ALIGN - Align the objects in this cache to a hardware cacheline. This can be beneficial if you're counting cycles as closely
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 KMEM_CACHE_CREATE(9)
i have a serious doubht about the assignment of memory
in hp-ux system .
i read from somewhere that the page allocation in
hp-ux is not unified unlike compaq .
i wanted to know in hp-ux kernel ,once the pages are
assigned for the univarsal buffer cache... (2 Replies)
I am using Redhat 7.2. I have 1gb of ram. When I use applications, it seems like the memory used keeps adding up even after I stop the applications. When I reboot, I use around 256mb of ram, then after I use some apps, it piles up to about 750mb of ram used. I look at all active processes with ps... (2 Replies)
I need to know what is the right way of handling out of memory conditions. If a program is not able to dynamically allocate memory (new fails), is it right to wait for some amount of time (say 5 sec) and then try again to allocate memory? Or should we kill the process and again restart it?... (1 Reply)
I'm running a debian lenny 1GB ram, but with a high I/O. This server has 400IOPS and 3MB/s sustain. So, I noted cached memory use 800MB, buffered memory use 50MB, and no free memory is available. Questions:
What does mean such a high cached memory?
Who's using this cached memory?
Is... (3 Replies)
I need some help in static memory allocation in C. I have a program in which I declared 2 variables, one char array and one integer. I was little surprised to see the addresses of the variables.
printf("%u %u\n', &x, a);
I got the addresses displayed... (2 Replies)
I am facing a memory related issue on my linux that is CentOS 4.0. What I see as an output of top command, free command is that memory usage is almost 90% which is quite high without much load on the system. This is continuously showing 90% or so of memory usage with top or free... (2 Replies)
I have a small confusion in the dynamic memory allocation concept.
If we declare a pointer say a char pointer, we need to allocate adequate memory space.
char* str = (char*)malloc(20*sizeof(char));
str = "This is a string";
But this will also work.
char* str = "This... (2 Replies)
When we dynamically allocate the memory say 100 integers say
int *x = new int(1000);
then does entire chunk of memory gets allocated at once after the completion of the statement?
I mean will the the concept of page fault come into picture over here? (3 Replies)
I could not find what is consuming the memory, generated DSET reports and NO hardware wise memory issue. 64 GB RAM on a server yet all I could see is a very limited memory available. I am not sure if I am reading this correct or not. I have used free -t -m and cat /proc/meminfo (results below)... (3 Replies)
Hey everyone. Ok, so I know that from inside of any particular program, it see's through virtualized memory, a full range of available memory. It is given the ability then to place variables, data, user input etc, on the Stack, Heap, BSS, or Code segment of it's range. My question is what does the... (5 Replies)
I am using HP-UX 11i v1(B11.11) servers for my work and its memory (RAM) utilization is consistenly 80% for the last one year. Though I am not facing any issues with this high memory utilization I just want to know the below queries:
1) Is it the default behavior of HP-UX systems?
2)... (20 Replies)
I want to run a C program on my linux machine. I want to allocate specific heap size for that process (C program) to run.
How can I do that?
I know in Java same can be done using -Xmx option.
There may be some option which I can specify in the C program like Java or may be in linux process. (8 Replies)
I see cpu and memory usage are under control, only cache gets high upto 99% using sar -r command
I did echo3 and cleaned the drop caches
do we need to monitor this , why my application going high upto 99.8% memused in sar command , this is cache memory which is going high
will this... (12 Replies)