Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I am somewhat of a newbie to Linux apps / kernel / driver programming.
I have question related to kernel memory allocation which I am not able to clearly find an answer. I have Google'd around and found lot of incomplete threads without any solution. Here is what I have -
For x86_64 - Nehalem CPU 64 bit mode, I have a system with 6GB memory, with a PCIe device capable of performing 64 bit DMA.
I want to allocate 2GB or more of DMA memory via a kernel lkm module. Basically idea is to make memory allocation kernel aware.
1> Can the DMA memory beyond 4G address space be allocated by kernel ?
Are there any limitations with 2.6.x ?
2> I have a sample LKM which via an ioctl allocates memory using get_free_page, however after allocating around 65xxx pages (~256MB), the kernel OOM kicks in and kills the user process ? Is there a config anywhere to prevent his ? Is the user space process limited to certain amount memory ?
3> This is 64 bit mode kernel so technically there should be no restrictions right ? I am also aware about some of the allocate_bootmem options, but not quite clear on their usage for address space beyond 4Gb. Is this only choice ? What about DMA coherency ?
Thanks a bunch in advance.
Last edited by kd2000; 03-26-2010 at 04:20 PM.
Distribution: Debian squeeze (Gnome) on netbooks; Debian Lenny on servers and Debian wheezy (XFCE) on new laptops
As far as I know the 64 bits kernels all have a limit of 64GB and also the 32 bits BigMem kernels do, with the difference that applications will get a maximum of 3008MB per application in the 32 bits BigMem kernels and in the 64 bits they will have all memory available per process.
Please post your thread in only one forum. Posting a single thread in the most relevant forum will make it easier for members to help you and will keep the discussion in one place. This thread is being closed because it is a duplicate.