[LUG.ro] Low latency y Preemtible kernel para el 2.4.19
Sebastián D. Criado
lugro@lugro.org.ar
Sun, 27 Oct 2002 12:48:41 -0300
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Mucho se ha hablado sobre las posibilidades de la nueva versión del kernel
(la 3.0 según dicen ) que ya traen las versiones 2.5.x.
Entre ellas están la low latency y el preemtible kernel.
Estas dos características prometen aumentar el desempeño del sistema.
Si no saben de que se trata les paso unos links muy informativos al respecto:
Links
0. http://www.linuxdevices.com/news/NS3989618385.html
1. http://www.linuxdevices.com/articles/AT8267298734.html
2. http://www.linuxdevices.com/articles/AT4185744181.html
Lo bueno es que se puede parchear el código del kernel 2.4.19 para que pueda
soportarlas.
A continuación les mando un extracto del mail de Marcelo Ramos
<mramos@montevideo.com.uy> del UYLUG el cual ha hecho la prueba y dice haber
aumentado sensiblemente el rendimiento con ello.
Como nota tengo que decir que el aumento no se va a ver reflejado en
programas que requieran gran uso de la CPU, si no más bien en aquellos
ámbitos los cuales la latencia es crucial como escuchar MP3 o ver peliculas
en DivX.
<Extracto>------------------------------------------------------------------------------------</Extracto>
1) Descargar y descomprimir el kernel 2.4.19 en /usr/src
2) Hacer los siguientes enlaces:
/usr/src/linux-2.4.19 (directorio que busca el parche preemtible kernel)
/usr/src/2.4.19-akpm (es el directorio que busca el parche low latency)
que apunten al directorio donde se descomprimió el kernel en /usr/src
3) Bajar los parches:
http://www.zip.com.au/~akpm/linux/2.4.19-low-latency.patch.gz
http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4/preempt-kernel-rml-2.4.19-2.patch
4) Copiarlos a /usr/src
5) Parado en el directorio /usr/src aplicar los parches:
patch -p0 < preempt-kernel-rml-2.4.19-2.patch
gzip -d 2.4.19-low-latency.patch.gz
patch -p0 < 2.4.19-low-latency.patch
6) Entrar en /usr/src/linux.
Configurar el kernel con make menuconfig (o xconfig).
Nota: Los que tengan el .config de una compilación anterior pueden copiarlo
a /usr/src/linux después de hacer un "make mrproper" en ése directorio.
En ése caso pueden hacer make oldconfig en ése caso sólo les preguntará
sobre las opciones relativas a los dos parches recién aplicados.
7) Opciones del kernel:
Processor type and features -> Low latency scheduling (*)
-> Control low latency with sysctl (*)
-> Preemptible Kernel (*)
Otras cosas que yo hice:
Esto es para usar el dma con los discos IDE:
ATA/IDE/MFM/RLL support -> IDE, ATA and ATAPI Block devices
|--> Generic PCI bus-master DMA
support (*)
+--> Use PCI DMA by default when
available (*)
Esto es para que el kernel pueda acceder al reloj hardware de la pc:
Character devices -> Enhanced Real Time Clock Support (*)
8) Editar el archivo /usr/src/linux/Makefile y hacer la siguiente
modificación:
EXTRAVERSION = -lowlatencypreemtible
Esto es para identificar nuestro kernel. Cuando se instalen los módulos se
instalarán en /lib/modules/2.4.19-lowlatencypreemtible
Ustedes pueden poner lo que quieran como EXTRAVERSION.
De todas formas si quieren estar seguros pueden respaldar el directorio
/lib/modules/2.4.19 si ya estaban usando el kernel 2.4.19
9) Guardar configuración.
make dep
make bzImage (o zImage)
make modules
make modules_install
10) Copiar /usr/src/linux/arch/i386/boot/bzImage (o zImage) a
/boot/2.4.19-lowlpree Respaldar /boot/System.map y copiar
/usr/src/linux/System.map a /boot
Declarar el nuevo kernel en /etc/lilo.conf y aplicar los cambios
ejecutando
lilo
11) Para activar el parche low latency /proc/sys/kernel/lowlatency tiene que
contener 1.
Para éso pueden poner en algún archivo de configuración de Linux:
echo "1" > /proc/sys/kernel/lowlatency
o poniendo en /etc/sysctl.conf :
kernel/lowlatency=1
si tienen el paquete procps (no sé si todas las distribuciones lo tienen
instalado por defecto).
12) Listo. Ya pueden probar el nuevo kernel.
<Extracto>------------------------------------------------------------------------------------</Extracto>
Sería bueno que lo probaramos para ver, de acuerdo a las distintas máquinas
que tenemos, cual es el grado de mejora.
Por supuesto, como la religión lo pide, haré esta tarde el culto de la
compilación del kernel para ver que pasa : )
Saludos.-
- --
- --
Sebastián D. Criado - scriado@ciudad.com.ar
L.U.G.R.o - http://www.lugro.org.ar
GNU/Linux Registered User # 146768
- -------------------------------------------------------------------
"Si el Universo fuera un programa estaría hecho en C, y correría sobre
un sistema UNIX"
Anónimo.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE9vAra8hmHQ8ZCg0IRAk7zAJ9wBcAxJ93Lcvgr896IeuL/YApMVACdFEwx
vupHdNfjr4v7kKAgZC+tAtY=
=um6I
-----END PGP SIGNATURE-----