Visit Our UNIX and Linux User Community


max number of slabs per kernel module (kernel 2.6.17, suse)


 
Thread Tools Search this Thread
Operating Systems Linux SuSE max number of slabs per kernel module (kernel 2.6.17, suse)
# 1  
Old 01-21-2008
max number of slabs per kernel module (kernel 2.6.17, suse)

Hi All,

Is there a max number of slabs that can be used per kernel module? I'm having a tough time finding out that kind of information, but the array 'node_zonelists' (mmzone.h) has a size of 5. I just want to avoid buffer overruns and other bad stuff.

Cheers,
Brendan
# 2  
Old 01-21-2008
There is no arbitrary limit on the number of slabs that a kernel routine (whether or not it is a module) can use, but no computer has an infinite amount of memory either. Zones are different than slabs. Memory locations have an address and not all addresses are identical in nature. This stuff varies greatly depending on the cpu. As an example, on a typical Pentium, ZONE_DMA memory has an addresss below 16 MB and is usable for DMA transfers. There are only a very few zones. This stuff is documented in "Understanding the Linux Kernel", by Bovet and Cesati, ISBN 0-596-00565-2.
# 3  
Old 01-22-2008
Thanks for the clarification Perderabo! I don't know why I got to thinking of slab spaces as 'zones'. I think I'll buy that book too...

I am aware that there is a limited amount of memory space, however is it not more efficient to use slabs (especially for allocations in the data path) since they result in less fragmentation and unused pages are reclaimed by the kernel anyway?
# 4  
Old 01-22-2008
Not sure I follow you... more efficient than what? It sounds like you're still trying to compare slabs to zones. (That's like comparing TCP to ethernet.) But yes, slabs are efficient and tend to result in less fragmentation. However that "unused pages..." comment is off the mark. A freed slab tends to stay in its cache ready to be allocated again. Please read the book...I don't want to type the whole thing in. When you do, skip to page 329 "Interfacing the Slab Allocator with the Zoned Page Frame Allocator".
# 5  
Old 01-23-2008
eh, ye tcp to ethernet... I wouldn't say I'm an expert or anything.

As regards to free pages - they may tend to stay available in the short term but they do eventually get reclaimed. I would agree it's not immediate though.

Thanks, I'll read your reference when I get my hands on the book!

Previous Thread | Next Thread
Test Your Knowledge in Computers #908
Difficulty: Medium
If a Unix shell command line ends with the hashtag #, then the job runs in the background, and the shell does not wait for the job to terminate before printing the prompt and waiting for the next command line.
True or False?

4 More Discussions You Might Find Interesting

1. Linux

Unload kernel module at boot time (Debian Wheezy 7.2, 3.2.0-4-686-pae kernel)

Hi everyone, I am trying to prevent the ehci_hcd kernel module to load at boot time. Here's what I've tried so far: 1) Add the following line to /etc/modprobe.d/blacklist.conf (as suggested here): 2) Blacklisted the module by adding the following string to 3) Tried to blacklist the module... (0 Replies)
Discussion started by: gacanepa
0 Replies

2. Linux

kernel module parameters

Hi, if I install a module with specific parameter, will this parameters applied next time system boots? for exampe, I want to disable InterruptThrottleRate modprobe e1000e InterruptThrottleRate=0 Is this parameter apllied only for this run, or this module will always use this parameter when... (2 Replies)
Discussion started by: Shedon
2 Replies

3. IP Networking

kernel module

Hi All, I need to develop a kernel module which changes the IP address of a package according to its mac address. It would be a sort of L2 Nat. Somebody know if I can do this using netfilter?? Thanks. (2 Replies)
Discussion started by: lagigliaivan
2 Replies

4. Linux

How to convert Linux Kernel built-in module into a loadable module

Hi all, I am working on USB data monitoring on Fedora Core 9. Kernel 2.6.25 has a built-in module (the one that isn't loadable, but compiles and links statically with the kernel during compilation) to snoop USB data. It is in <kernel_source_code>/drivers/usb/mon/. I need to know if I can... (0 Replies)
Discussion started by: anitemp
0 Replies

Featured Tech Videos