old-www/HOWTO/Modules/speedup.html

366 lines
4.8 KiB
HTML

<HTML
><HEAD
><TITLE
>Compiler Speed-up</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
"><LINK
REL="HOME"
TITLE="Linux Kernel Modules Installation HOWTO"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Pre-requisites"
HREF="require.html"><LINK
REL="NEXT"
TITLE="Recompiling the Kernel for Modules"
HREF="kernel.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux Kernel Modules Installation HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="require.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="kernel.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="SPEEDUP"
>3. Compiler Speed-up</A
></H1
><P
> If your machine has 16 or more Megabytes of RAM, there is a useful
speed-up that can be done, which is to permit the kernel to compile two or
modules in parallel. This will increase the load on the machine whilst the
kernel is being recompiled, but will reduce the time during which the
compilation will be taking place.
</P
><P
> Before you can use this method, you need to check the amount of RAM
present in your machine, as if you set this too high, the compilation will
actually slow down. Experience has shown that the optimum value depends on
the amount of RAM in your system according to the following formula, at
least for systems with up to 32 Megabytes of RAM, although it may be a
little conservative for systems with larger amounts of RAM:
</P
><P
> N = [RAM in Megabytes] / 8 + 1
</P
><P
> For the benefit of those with a dislike of math, the values for the
common amounts of RAM are as follows:
</P
><P
>
<DIV
CLASS="TABLE"
><A
NAME="AEN48"
></A
><P
><B
>Table 1. Sample Table</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>RAM Size</TH
><TH
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>Value to Use</TH
></TR
></THEAD
><TBODY
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>16 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>3</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>24 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>4</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>32 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>5</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>40 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>6</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>48 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>7</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>56 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>8</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>64 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>9</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>80 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>11</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>96 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>13</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>112 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>15</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>128 Megs</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>17</TD
></TR
></TBODY
></TABLE
></DIV
>
</P
><P
> When you have decided on the correct number, edit the file
<TT
CLASS="FILENAME"
>/usr/src/linux/Makefile</TT
> and find the line that currently reads:
</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>MAKE=make
</PRE
></FONT
></TD
></TR
></TABLE
><P
> Replace it with one reading:
</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>MAKE=make -j N
</PRE
></FONT
></TD
></TR
></TABLE
><P
> where <TT
CLASS="VARNAME"
>N</TT
> is the number determined above.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="require.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="kernel.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Pre-requisites</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Recompiling the Kernel for Modules</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>