The linux-kernel mailing list FAQ


Before you consider posting to the linux-kernel mailing list, please read at least the start of section 3 of this FAQ list.

These frequently asked questions are divided in various categories. Please contribute any category and Q/A that you may find relevant. You can also add your answer to any question that has already been answered, if you have additional information to contribute.

The official site is: http://www.tux.org/lkml/ (this is in the east coast of the U.S.A). Many thanks to Sam Chessman and David Niemi for hosting the FAQ on a high-bandwidth, professionally managed Linux server. The following mirrors are available (and are updated at the same time as the official site):


Hot off the Presses

vger.kernel.org has enabled ECN. You may need to switch ISP in order to receive linux-kernel email. See the section on ECN for more details.

Two digest forms of linux-kernel (a normal digest every 100KB and a once-daily digest) are available at http://lists.us.dell.com/.

Go to http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html for newflashes about official kernel releases.

Read this before complaining to linux-kernel about compile problems. Chances are a thousand other people have noticed and the fix is already published.

Index


Basic Linux kernel documentation

The following are Linux kernel related documents, which you should take a look at before you post to the linux-kernel mailing list:

Contributors and some special expressions

This is the list of contributors to this FAQ. They are listed in alphabetic order of their abbreviations, used in the Answers sections below to identify the author(s) of each answer. Some English expressions for non-native English readers. Many of these (and far more) may be obtained from the Jargon File:

Related mailing lists

Some questions are better posted to related mailing lists on specific subjects. Posting to these mailing lists helps reduce the volume on the linux-kernel mailing list and also increases your chances of having your message read by an expert on the subject. Some people do not have the time to subscribe to the linux-kernel mailing list, as it is too general for them. Some related lists are:

Question Index

Section 1 - General questions

  1. Why do you use "GNU/Linux" sometimes and just "Linux" in other parts of the FAQ?
  2. What is an experimental kernel version?
  3. What is a production kernel?
  4. What is a feature freeze?
  5. What is a code freeze?
  6. What is a f.g.hhprei kernel?
  7. Where do I get the latest kernel source?
  8. Where do I get extra kernel patches?
  9. What is a patch?
  10. How do I make a patch suitable for the linux kernel list?
  11. How do I apply a patch?
  12. What's vger?
  13. What is a CVS tree? Where can I find more information about CVS?
  14. Is there a CVS tutorial?
  15. How do I get my patch into the kernel?
  16. Why does the kernel tarball contain a directory called linux/ instead of linux-x.y.z/ ?
  17. What's the difference between the official kernels and Alan Cox's -ac series of patches?
  18. What does it mean for a module to be tainted?
  19. What is this about GPLONLY symbols?
  20. Do I have to use BitKeeper to send patches?
  21. Why do some developers use the non-free BitKeeper? Isn't this against the spirit of Free Software?
  22. Who maintains the kernel?
  23. The kernel doesn't compile cleanly. What shall I do ?

Section 2 - Driver specific questions

  1. Driver such and such is broken!
  2. Here is a new driver for hardware XYZ.
  3. Is there support for my card TW-345 model C in kernel version f.g.hh?
  4. Who maintains driver such and such?
  5. I want to write a driver for card TW-345 model C, how do I get started?
  6. I want to get the docs, but they want me to sign an NDA (Non-Disclosure Agreement).
  7. I want/need/must have a driver for card TW-345 model C! Won't anybody write one for me?
  8. What's this major/minor device number thing?
  9. Why aren't WinModems supported?
  10. Modern CPUs are very fast, so why can't I write a user mode interrupt handler?
  11. Do I need to test my driver against all distributions?

Section 3 - Mailing list questions

  1. How do I subscribe to the linux-kernel mailing list?
  2. How do I unsubscribe from the linux-kernel mailing list?
  3. Do I have to be subscribed to post to the list?
  4. Is there an archive for the list?
  5. How can I search the archive for a specific question?
  6. Are there other ways to search the Web for information on a particular Linux kernel issue?
  7. How heavy is the traffic on the list?
  8. What kind of question can I ask on the list?
  9. What posting style should I use for the list?
  10. Is the list moderated?
  11. Can I be ejected from the list?
  12. Are there any implicit rules on this list that I should be aware of?
  13. How do I post to the list?
  14. Does the list get spammed?
  15. I am not getting any mail anymore from the list! Is it down or what?
  16. Is there an NNTP gateway somewhere for the mailing list?
  17. I want to post a Great Idea (tm) to the list. What should I do?
  18. There is a long thread going on about something completely offtopic, unrelated to the kernel, and even some people who are in the "Who's who" section of this FAQ are mingling in it. What should I do to fight this "noise"?
  19. Can we have the Subject: line modified to help mail filters?
  20. Can we have a Reply-To: header automatically added to the list traffic?
  21. Can I post job offers/requests to the list?
  22. Why do I get bounces when I send private email to some people?
  23. Why don't you split the list, such as having one each for the development and stable series?

Section 4 - "How do I" questions

  1. How do I post a patch?
  2. How do I capture an Oops?
  3. How do I post an Oops?
  4. I think I found a bug, how do I report it?
  5. What information should go into a bug report?
  6. I found a bug in an "old" version of the kernel, should I report it?
  7. How do I compile the kernel?

Section 5 - "Who's who" questions

Names are in alphabetical order (last name) to avoid stepping on toes.
If someone doesn't appear here, check /usr/src/linux/CREDITS.
  1. Who is in charge here?
  2. Why don't we have a Linux Kernel Team page, same as there are for other projects?
  3. Why doesn't <any of the below> answer my mails? Isn't that rude?
  4. Why do I get bounces when I send private to email to some of these people?
  5. Who is Matti Aarnio?
  6. Who is H. Peter Anvin?
  7. Who is Donald Becker?
  8. Who is Alan Cox?
  9. Who is Richard E. Gooch?
  10. Who is Paul Gortmaker?
  11. Who is Bill Hawes?
  12. Who is Mark Lord?
  13. Who is Larry McVoy?
  14. Who is David S. Miller?
  15. Who is Linus Torvalds?
  16. Who is Theodore Y. T'so?
  17. Who is Stephen Tweedie?
  18. Who is Roger Wolff?
Some people haven't contributed yet with a few lines about themselves, and the policy of this FAQ dictates that nobody is going to write about anybody else without authorization. Hence the missing links e.g. if you are not Linus, don't insist, we are not going to add your information about Linus.

Other OS developers:

Section 6 - CPU questions

Is this a matter of taste or what?
  1. What is the "best" CPU for GNU/Linux?
  2. What is the fastest CPU for GNU/Linux?
  3. I want to implement the Linux kernel for CPU Hyper123, how do I get started?
  4. Why is my Cyrix 6x86/L/MX detected by the kernel as a Cx486?
  5. What about those x86 CPU bugs I read about?
  6. I grabbed the standard kernel tarball from ftp.kernel.org or some mirror of it, and it doesn't compile on the Sparc, what gives?
  7. Does the Linux kernel execute the Halt instruction to power down the CPU?
  8. I have a non-Intel x86 CPU. What is the [best|correct] kernel config option for my CPU?
  9. What CPU types does Linux run on?

Section 7 - OS questions

OS theory and practical issues mix.
  1. OS $toomuch has this Nice feature, so it must be better than GNU/Linux.
  2. Why doesn't the Linux kernel have a graphical boot screen like $toomuch OS?
  3. The kernel in OS CTE-variant has this Nice-very-nice feature, can I port it to the Linux kernel?
  4. How about adding feature Nice-also-very-nice to the Linux kernel?
  5. Are there more bugs in later versions of the Linux kernel, compared to earlier versions?
  6. Why does the Linux kernel source code keep getting larger and larger?
  7. The kernel source is HUUUUGE and takes too long to download. Couldn't it be split in various tarballs?
  8. What are the licensing/copying terms on the Linux kernel?
  9. What are those references to "bazaar" and "cathedral"?
  10. What is this "World Domination" thing?
  11. What are the plans for future versions of the Linux kernel?
  12. Why does it show BogoMips instead of MHz in the kernel boot message?
  13. I installed kernel x.y.z and package foo doesn't work anymore, what should I do?
  14. People talk about user space vs. kernel space. What's the advantage of each?
  15. What are threads?
  16. Can I use threads with GNU/Linux?
  17. You mean threads are implemented in user space? Why not in kernel space? Wouldn't that be more efficient?
  18. Can GNU/Linux machines be clustered?
  19. How well does Linux scale for SMP?
  20. Can I lock a process/thread to a CPU?
  21. How efficient are threads under Linux?
  22. How does the Linux networking/TCP stack work?
  23. Can we put the networking/TCP stack into user-space?

Section 8 - Compiler/binutils questions

Kernel compilation problems.
  1. I downloaded the newest kernel and it doesn't even compile! What's wrong?
  2. What are the recommended compiler/binutils for building kernels?
  3. Why the recommended compiler? I like xyz-compiler better.
  4. Can I compile the kernel with gcc 2.8.x, egcs, (add your xyz compiler here)? What about optimizations? How do I get to use -O99, etc.?
  5. I compiled the kernel with xyz compiler and get the following warnings/errors/strange behavior, should I post a bug report to the list? Should I post a patch?
  6. Why does my kernel compilation stops at random locations with: "Internal compiler error: program cc1 caught fatal signal 11."?
  7. What compiler flags should I use to compile modules?
  8. Why do I get unresolved symbols like foo__ver_foo in modules?
  9. Why do I get unresolved symbols with __bad_ in the name?

Section 9 - Feature specific questions

Miscellaneous kernel features questions.
  1. GNU/Linux Y2K compliance?
  2. What is the maximum file size supported under ext2fs? 2 GB?
  3. GGI/KGI or the Graphics Interface in Kernel Space debate?
  4. How do I get more than 16 SCSI disks?
  5. What's devfs and why is it a Good Idea (tm)?
  6. Linux memory management? Zone allocation?
  7. How many open files can I have?
  8. When will the Linux accept(2) bug be fixed?
  9. What about STREAMS? I noticed Caldera has a STREAMS package, when will that go in the kernel source proper?
  10. I need encryption and steganography. Why isn't it in the kernel?
  11. How about an undelete facility in the kernel?
  12. How about tmpfs for Linux?
  13. What is the maximum file size/filesystem size?
  14. Linux uses lots of swap while I still have stuff in cache. Isn't this wrong?
  15. Why don't we add resource forks/streams to Linux filesystems like NT has?
  16. Why don't we internationalise kernel messages?

Section 10- "What's changed between kernels 2.0.x and 2.2.x" questions

  1. Size (source and executable)?
  2. Can I use a 2.2.x kernel with a distribution based on a 2.0.x kernel?
  3. New filesystems supported?
  4. Performance?
  5. New drivers not available under 2.0.x?
  6. What are those __initxxx macros?
  7. I have seen many posts on a "Memory Rusting Effect". Under what circumstances/why does it occur?
  8. Why does ifconfig show incorrect statistics with 2.2.x kernels?
  9. My pseudo-tty devices don't work any more. What happened?
  10. Can I use Unix 98 ptys?
  11. Capabilities?
  12. Kernel API changes

Section 11- Primer documents

Please, if you wish to contribute a Q/A in this section, provide a very short answer defining the topic and then a URL to a longer text/Web page. Like that we can have various URL's for a single Q, each with a different point of view. Another advantage of this approach is that each contributor has to sit down and write a coherent HTML page or text file. Having to structure a written answer gives ample time to think about the issues and the topic as a whole. It also allows frequent independent revisions, which would be impossible on the FAQ itself.

Note that writing the longer text/Web page on some relevant Linux kernel topic and providing a Q/A in this section confers you instant Guru status. Some people would *kill* for this. Now go and write your stuff. ;)

  1. What's a primer document and why should I read it first?
  2. How about having I/O completion ports?
  3. What is the VFS and how does it work?
  4. What's the Linux kernel's notion of time?
  5. Is there any magic in /proc/scsi that I can use to rescan the SCSI bus?

Section 12- Kernel Programming Questions

Answers to common questions about kernel programming details. See also Tigran Aivazian's page on kernel programming.
  1. When is cli() needed?
  2. Why do I see sometimes a cli()-sti() pair, and sometimes a save_flags-cli()-restore_flags sequence?
  3. Can I call printk() when interrupts are disabled?
  4. What is the exact purpose of start_bh_atomic() and end_bh_atomic()?
  5. Is it safe to grab the global kernel lock multiple times?
  6. When do I need to initialise variables?

Section 13- Mysterious kernel messages

We sometimes get these messages in our system logs and wonder what they mean...
  1. What exactly does a "Socket destroy delayed" mean?
  2. What do I do about "inconsistent MTRRs"?
  3. Why does my kernel report lots of "DriveStatusError BadCRC" messages?
  4. Why does my kernel report lots of "APIC error" messages?

Section 14- Odd kernel behaviour

The kernel behaves in ways that seem odd...
  1. Why is kapmd using so much CPU time?
  2. Why does the 2.4 kernel report Connection refused when connecting to sites which work fine with earlier kernels?
  3. Why does the kernel now report zero shared memory?
  4. Why does lsmod report a use count of -1 for some modules? Is this a bug?
  5. Why doesn't the kernel see all of my RAM?
  6. I've mounted a filesystem in two different places and it worked. Why?

Section 15- Programming Religion

Responses to suggestions about programming techniques and languages.
  1. Why is the Linux kernel written in C/assembly?
  2. Why don't we rewrite it all in assembly language for processor Mega666?
  3. Why don't we rewrite the Linux kernel in C++?
  4. Why is the Linux kernel monolithic? Why don't we rewrite it as a microkernel?
  5. Why don't we replace all the goto's with C exceptions?
  6. Why are the kernel developers so dismissive of new techniques?

Section 16- User-space Programming Questions

Answers to common questions about user-space programming details, as it relates to the kernel/user-space interface (i.e. system calls). This does not cover questions on the C library nor any other library, as those questions are not related to the kernel.
  1. Why does setsockopt() double SO_RCVBUF?

Answers

Section 1 - General questions

  1. Why do you use "GNU/Linux" sometimes and just "Linux" in other parts of the FAQ?
  2. What is an experimental kernel version?
  3. What is a production kernel?
  4. What is a feature freeze?
  5. What is a code freeze?
  6. What is a f.g.hhprei kernel?
  7. Where do I get the latest kernel source?
  8. Where do I get extra kernel patches?
  9. What is a patch?
  10. How do I make a patch suitable for the linux kernel list?
  11. How do I apply a patch?
  12. What's vger?
  13. What is a CVS tree? Where can I find more information about CVS?
  14. Is there a CVS tutorial somewhere?
  15. How do I get my patch into the kernel?
  16. Why does the kernel tarball contain a directory called linux/ instead of linux-x.y.z/ ?
  17. What's the difference between the official kernels and Alan Cox's -ac series of patches?
  18. What does it mean for a module to be tainted?
  19. What is this about GPLONLY symbols?
  20. Do I have to use BitKeeper to send patches?
  21. Why do some developers use the non-free BitKeeper? Isn't this against the spirit of Free Software?
  22. Who maintains the kernel?
  23. The kernel doesn't compile cleanly. What shall I do?

Section 2 - Driver specific questions

  1. Driver such and such is broken!
  2. Here is a new driver for hardware XYZ.
  3. Is there support for my card TW-345 model C in kernel version f.g.hh?
  4. Who maintains driver such and such?
  5. I want to write a driver for card TW-345 model C, how do I get started?
  6. I want to get the docs, but they want me to sign an NDA (Non-Disclosure Agreement).
  7. I want/need/must have a driver for card TW-345 model C! Won't anybody write one for me?
  8. What's this major/minor device number thing?
  9. Why aren't WinModems supported?
  10. Modern CPUs are very fast, so why can't I write a user mode interrupt handler?
  11. Do I need to test my driver against all distributions?

Section 3 - Mailing list questions

The linux-kernel mailing list is for discussion of the development of the Linux kernel itself. Questions about administration of a Linux based system, programming on a Linux system or questions about a Linux distribution are not appropriate.

"Test" messages are very, very inappropriate on the lkml or any other list, for that matter. If you want to know whether the subscribe succeeded, wait for a couple of hours after you get a reply from the mailing list software saying it did. You'll undoubtedly get a number of list messages. If you want to know whether you can post, you must have something important to say, right? After you have read the following paragraphs, compose a real letter, not a test message, in an editor, saving the body of the letter in the off chance your post doesn't succeed. Then post your letter to lkml. Please remember that there are quite a number of subscribers, and it will take a while for your letter to be reflected back to you. An hour is not too long to wait.

(REG) The essential point to remember when posting to the linux-kernel mailing list is that there are a lot of very busy people reading the list. No matter how important you think you are, it is most likely that there are many people on the list who are more important than you. "Important" is not measured by the amount of money you have, how much your question is worth to your company or how desperate you are for an answer, rather, it is measured by how much you contribute to the linux kernel.

With that in mind, you should make sure that you are not wasting the time of other people on the list. Write for maximum efficiency of reading. It doesn't matter if it takes twice as long for you to compose a more readable message, if it halves the time a hundred key kernel developers spend trying to decode your message. Ignoring good taste and consideration is most likely to result in you being ignored.

  1. How do I subscribe to the linux-kernel mailing list?
  2. How do I unsubscribe from the linux-kernel mailing list?
  3. Do I have to be subscribed to post to the list?
  4. Is there an archive for the list?
  5. How can I search the archive for a specific question?
  6. Are there other ways to search the Web for information on a particular Linux kernel issue?
  7. How heavy is the traffic on the list?
  8. What kind of question can I ask on the list?
  9. What posting style should I use for the list?
  10. Is the list moderated?
  11. Can I be ejected from the list?
  12. Are there any implicit rules on this list that I should be aware of?
  13. How do I post to the list?
  14. Does the list get spammed?
  15. I am not getting any mail anymore from the list! Is it down or what?
  16. Is there an NNTP gateway somewhere for the mailing list?
  17. I want to post a Great Idea (tm) to the list. What should I do?
  18. There is a long thread going on about something completely offtopic, unrelated to the kernel, and even some people who are in the "Who's who" section of this FAQ are mingling in it. What should I do to fight this "noise"?
  19. Can we have the Subject: line modified to help mail filters?
  20. Can we have a Reply-To: header automatically added to the list traffic?
  21. Can I post job offers/requests to the list?
  22. Why do I get bounces when I send private email to some people?
  23. Why don't you split the list, such as having one each for the development and stable series?

Section 4 - "How do I" questions

  1. How do I post a patch?
  2. How do I capture an Oops?
  3. How do I post an Oops?
  4. I think I found a bug, how do I report it?
  5. What information should go in a bug report?
  6. I found a bug in an "old" version of the kernel, should I report it?
  7. How do I compile the kernel?

Section 5 - "Who's who" questions

  1. Who is in charge here?
  2. Why don't we have a Linux Kernel Team page, same as there are for other projects?
  3. Why doesn't <any of the below> answer my mails? Isn't that rude?
  4. Why do I get bounces when I send private email to some of these people?
  5. Who is Matti Aarnio?
  6. Who is H. Peter Anvin?
  7. Who is Donald Becker?
  8. Who is Alan Cox?
  9. Who is Richard E. Gooch?
  10. Who is Paul Gortmaker?
  11. Who is Mark Lord?
  12. Who is Larry McVoy?
  13. Who is David S. Miller?
  14. Who is Linus Torvalds?
  15. Who is Theodore Y. T'so?
  16. Who is Roger Wolff?

Other OS developers

Rogier Wolff (REW) suggested we add a section on OS developers who influenced/preceded the design of Linux.

Section 6 - CPU questions

  1. What is the "best" CPU for GNU/Linux?
  2. What is the fastest CPU for GNU/Linux?
  3. I want to implement the Linux kernel for CPU Hyper123, how do I get started?
  4. Why is my Cyrix 6x86/L/MX/MII detected by the kernel as a Cx486?
  5. What about those x86 CPU bugs I read about?
  6. I grabbed the standard kernel tarball from ftp.kernel.org or some mirror of it, and it doesn't compile on the Sparc, what gives?
  7. Does the Linux kernel execute the Halt instruction to power down the CPU?
  8. I have a non-Intel x86 CPU. What is the [best|correct] kernel config option for my CPU?
  9. What CPU types does Linux run on?

Section 7 - OS questions

  1. OS $toomuch has this Nice feature, so it must be better than GNU/Linux.
  2. Why doesn't the Linux kernel have a graphical boot screen like $toomuch OS?
  3. The kernel in OS CTE-variant has this Nice-very-nice feature, can I port it to the Linux kernel?
  4. How about adding feature Nice-also-very-nice to the Linux kernel?
  5. Are there more bugs in later versions of the Linux kernel, compared to earlier versions?
  6. Why does the Linux kernel source code keep getting larger and larger?
  7. The kernel source is HUUUUGE and takes too long to download. Couldn't it be split in various tarballs?
  8. What are the licensing/copying terms on the Linux kernel?
  9. What are those references to "bazaar" and "cathedral"?
  10. What is this "World Domination" thing?
  11. What are the plans for future versions of the Linux kernel?
  12. Why does it show BogoMips instead of MHz in the kernel boot message?
  13. I installed kernel x.y.z and package foo doesn't work anymore, what should I do?
  14. People talk about user space vs. kernel space. What's the advantage of each?
  15. What are threads?
  16. Can I use threads with GNU/Linux?
  17. You mean threads are implemented in kernel space in GNU/Linux? Why not a hybrid kernel/user space implementation? Wouldn't that be more efficient?
  18. Can GNU/Linux machines be clustered?
  19. How well does Linux scale for SMP?
  20. Can I lock a process/thread to a CPU?
  21. How efficient are threads under Linux?
  22. How does the Linux networking/TCP stack work?
  23. Can we put the networking/TCP stack into user-space?

Section 8 - Compiler/binutils questions

  1. I downloaded the newest kernel and it doesn't even compile! What's wrong?
  2. What are the recommended compiler/binutils for building kernels?
  3. Why the recommended compiler? I like xyz-compiler better.
  4. Can I compile the kernel with gcc 2.8.x, egcs, (add your xyz compiler here)? What about optimizations? How do I get to use -O99, etc.?
  5. I compiled the kernel with xyz compiler and get the following warnings/errors/strange-behavior, should I post a bug report to the list? Should I post a patch?
  6. Why does my kernel compilation stops at random locations with: "Internal compiler error: program cc1 caught fatal signal 11."?
  7. What compiler flags should I use to compile modules?
  8. Why do I get unresolved symbols like foo__ver_foo in modules?
  9. Why do I get unresolved symbols with __bad_ in the name?

Section 9 - Feature specific questions

  1. GNU/Linux Y2K compliance?
  2. What is the maximum file size supported under ext2fs? 2 GB?
  3. GGI/KGI or the Graphics Interface in Kernel Space debate?
  4. How do I get more than 16 SCSI disks?
  5. What's devfs and why is it a Good Idea (tm)?
  6. Linux memory management? Zone allocation?
  7. How many open files can I have?
  8. When will the Linux accept(2) bug be fixed?
  9. What about STREAMS? I noticed Caldera has a STREAMS package, when will that go in the kernel source proper?
  10. I need encryption and steganography*. Why isn't it in the kernel?
  11. How about an undelete facility in the kernel?
  12. How about tmpfs for Linux?
  13. What is the maximum file size/filesystem size?
  14. Linux uses lots of swap while I still have stuff in cache. Isn't this wrong?
  15. Why don't we add resource forks/streams to Linux filesystems like NT has?
  16. Why don't we internationalise kernel messages?

Section 10 - "What's changed between kernels 2.0.x and 2.2.x" questions

  1. Size (source and executable)?
  2. Can I use a 2.2.x kernel with a distribution based on a 2.0.x kernel?
  3. New filesystems supported?
  4. Performance?
  5. New drivers not available under 2.0.x?
  6. What are those __initxxx macros?
  7. I have seen many posts on a "Memory Rusting Effect". Under what circumstances/why does it occur?
  8. Why does ifconfig show incorrect statistics with 2.2.x kernels?
  9. My pseudo-tty devices don't work any more. What happened?
  10. Can I use Unix 98 ptys?
  11. Capabilities?
  12. Kernel API changes

Section 11 - Primer documents

  1. What's a primer document and why should I read it first?
  2. How about having I/O completion ports?
  3. What is the VFS and how does it work?
  4. What's the Linux kernel's notion of time?
  5. Is there any magic in /proc/scsi that I can use to rescan the SCSI bus?

Section 12 - Kernel Programming Questions

  1. When is cli() needed?
  2. Why do I see sometimes a cli()-sti() pair, and sometimes a save_flags-cli()-restore_flags sequence?
  3. Can I call printk() when interrupts are disabled?
  4. What is the exact purpose of start_bh_atomic() and end_bh_atomic()?
  5. Is it safe to grab the global kernel lock multiple times?
  6. When do I need to initialise variables?

Section 13 - Mysterious kernel messages

  1. What exactly does a "Socket destroy delayed" mean?
  2. What do I do about "inconsistent MTRRs"?
  3. Why does my kernel report lots of "DriveStatusError BadCRC" messages?
  4. Why does my kernel report lots of "APIC error" messages?

Section 14 - Odd kernel behaviour

  1. Why is kapmd using so much CPU time?
  2. Why does the 2.4 kernel report Connection refused when connecting to sites which work fine with earlier kernels?
  3. Why does the kernel now report zero shared memory?
  4. Why does lsmod report a use count of -1 for some modules? Is this a bug?
  5. Why doesn't the kernel see all of my RAM?
  6. I've mounted a filesystem in two different places and it worked. Why?

Section 15 - Programming Religion

  1. Why is the Linux kernel written in C/assembly?
  2. Why don't we rewrite it all in assembly language for processor Mega666?
  3. Why don't we rewrite the Linux kernel in C++?
  4. Why is the Linux kernel monolithic? Why don't we rewrite it as a microkernel?
  5. Why don't we replace all the goto's with C exceptions?
  6. Why are the kernel developers so dismissive of new techniques?

Section 16 - User-space programming questions

  1. Why does setsockopt() double SO_RCVBUF?

Contributing

Contributions are welcome on this FAQ. These can be submitted, preferably in diff -u format, (against this HTML document source) by Email to Richard (see the Contributors section above).

Sometimes, we may feel your contribution is controversial and/or incomplete and/or could be improved somehow. Also, the turnaround time has a wide range, from hours to months, depending on how busy Richard is. Please do not email him to chase changes as it slows him down. Suggestions and patches are queued, and will be processed eventually. Acknowledgements are usually sent when the change is made. Please be patient, FAQ updates are rarely urgent. Note that small, "obviously correct" patches are more likely to be processed faster, and often jump the queue ahead of larger patches.


Last updated on 19 Sep 2003 by Richard Gooch. This document is GPL'ed by its various contributors.