IO-Perf-HOWTO(1).pdf
(
28 KB
)
Pobierz
I/O Performance HOWTO
I/O Performance HOWTO
Sharon Snider
v1.1, 05/2002
Revision History
Revision v1.1
2002−05−01
Revised by: sds
Updated technical information and links.
Revision v1.0
2002−04−01
Revised by: sds
Wrote and converted to DocBook XML.
This HOWTO covers information on available patches for the 2.4 kernel that can improve the I/O
performance of your Linux" operating system.
I/O Performance HOWTO
Table of Contents
1. Distribution Policy.
.........................................................................................................................................1
2. Introduction.
....................................................................................................................................................2
3. Avoiding Bounce Buffers.
...............................................................................................................................3
3.1. Memory and Addressing in the Linux 2.4 Kernel.
...........................................................................3
3.2. The Problem with Bounce Buffers.
..................................................................................................3
3.3. Locating the Patch..
...........................................................................................................................3
3.3.1. Configuring the Linux Kernel to Avoid Bounce Buffers.
................................................3
3.3.2. Enabled Device Drivers.
...................................................................................................4
3.4. Modifying Your Device Driver to Avoid Bounce Buffers.
..............................................................4
4. Raw I/O Variable−Size Optimization Patch..
...............................................................................................6
4.1. Locating the Patch..
...........................................................................................................................6
4.2. Modifying Your Driver for the Raw I/O Variable−Size Optimization Patch.
..................................6
5. I/O Request Lock Patch.
.................................................................................................................................7
5.1. Locating the Patch..
...........................................................................................................................7
5.2. Modifying Your Driver for the I/O Request Lock Patch.
.................................................................7
6. Additional Resources.
.....................................................................................................................................8
i
1. Distribution Policy
The I/O Performance−HOWTO is copyrighted © 2002, by IBM Corporation
Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no
Invariant Sections, no Front−Cover text, and no Back−Cover text. A copy of the license can be found at
http://www.gnu.org/licenses/fdl.txt
.
1. Distribution Policy
1
2. Introduction
This HOWTO provides information on improving the input/output (I/O) performance of the Linux operating
system for the 2.4 kernel. Additional patches will be added as they become available.
Please send any comments, or contributions via e−mail to
Sharon Snider
.
2. Introduction
2
3. Avoiding Bounce Buffers
This section provides information on applying and using the bounce buffer patch on the Linux 2.4 kernel. The
bounce buffer patch, written by Jens Axboe, enables device drivers that support direct memory access (DMA)
I/O to high−address physical memory to avoid bounce buffers.
This document provides a brief overview on memory and addressing in the Linux kernel, followed by
information on why and how to make use of the bounce buffer patch.
3.1. Memory and Addressing in the Linux 2.4 Kernel
The Linux 2.4 kernel includes configuration options for specifying the amount of physical memory in the
target computer. By default, the configuration is limited to the amount of memory that can be directly
mapped into the kernel's virtual address space starting at PAGE_OFFSET. On i386 systems the default
mapping scheme limits kernel−mode addressability to the first gigabyte (GB) of physical memory, also
known as low memory. Conversely, high memory is normally the memory above 1 GB. High memory is not
directly accessible or permanently mapped by the kernel. Support for high memory is an option that is
enabled during
configuration of the Linux kernel
.
3.2. The Problem with Bounce Buffers
When DMA I/O is performed to or from high memory, an area is allocated in low memory known as a
bounce buffer. When data travels between a device and high memory, it is first copied through the bounce
buffer.
Systems with a large amount of high memory and intense I/O activity can create a large number of bounce
buffers that can cause memory shortage problems. In addition, the excessive number of bounce buffer data
copies can lead to performance degradation.
Peripheral component interface (PCI) devices normally address up to 4 GB of physical memory. When a
bounce buffer is used for high memory that is below 4 GB, time and memory are wasted because the
peripheral has the ability to address that memory directly. Using the bounce buffer patch can decrease, and
possibly eliminate, the use of bounce buffers.
3.3. Locating the Patch
The latest version of the bounce buffer patch is
block−highmem−all−18b.bz2
, and it is available from
Andrea Arcangeli's −aa series kernels at
http://kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/
.
3.3.1. Configuring the Linux Kernel to Avoid Bounce Buffers
This section includes information on configuring the Linux kernel to avoid bounce buffers. The Linux
Kernel−HOWTO at
http://www.linuxdoc.org/HOWTO/Kernel−HOWTO.html
explains the process of
3. Avoiding Bounce Buffers
3
Plik z chomika:
megaskrypty
Inne pliki z tego folderu:
3-Button-Mouse(1).pdf
(58 KB)
XWindow-Overview-HOWTO(1).pdf
(30 KB)
Xterm-Title(1).pdf
(39 KB)
Xterminals(1).pdf
(30 KB)
Xinerama-HOWTO(1).pdf
(33 KB)
Inne foldery tego chomika:
Programowanie
Zgłoś jeśli
naruszono regulamin