This jumbo allocator has been removed from the kernel.
This commit is contained in:
parent
ed03569c49
commit
07533d22c5
@ -118,7 +118,6 @@ MAN= accept_filter.9 \
|
||||
inittodr.9 \
|
||||
intro.9 \
|
||||
ithread.9 \
|
||||
jumbo.9 \
|
||||
KASSERT.9 \
|
||||
kernacc.9 \
|
||||
kobj.9 \
|
||||
@ -535,12 +534,6 @@ MLINKS+=ithread.9 ithread_add_handler.9 \
|
||||
ithread.9 ithread_priority.9 \
|
||||
ithread.9 ithread_remove_handler.9 \
|
||||
ithread.9 ithread_schedule.9
|
||||
MLINKS+=jumbo.9 jumbo_freem.9 \
|
||||
jumbo.9 jumbo_pg_alloc.9 \
|
||||
jumbo.9 jumbo_pg_free.9 \
|
||||
jumbo.9 jumbo_pg_steal.9 \
|
||||
jumbo.9 jumbo_phys_to_kva.9 \
|
||||
jumbo.9 jumbo_vm_init.9
|
||||
MLINKS+=kernacc.9 useracc.9
|
||||
MLINKS+=kobj.9 DEFINE_CLASS.9 \
|
||||
kobj.9 kobj_class_compile.9 \
|
||||
|
@ -1,151 +0,0 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2002 Kenneth D. Merry.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions, and the following disclaimer,
|
||||
.\" without modification, immediately at the beginning of the file.
|
||||
.\" 2. The name of the author may not be used to endorse or promote products
|
||||
.\" derived from this software without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
|
||||
.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 23, 2002
|
||||
.Dt JUMBO 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm jumbo ,
|
||||
.Nm jumbo_vm_init ,
|
||||
.Nm jumbo_pg_alloc ,
|
||||
.Nm jumbo_pg_free ,
|
||||
.Nm jumbo_freem ,
|
||||
.Nm jumbo_pg_steal ,
|
||||
.Nm jumbo_phys_to_kva
|
||||
.Nd kernel interface for allocating and freeing page-sized disposable buffers
|
||||
.Sh SYNOPSIS
|
||||
.In sys/jumbo.h
|
||||
.Ft int
|
||||
.Fn jumbo_vm_init void
|
||||
.Ft vm_page_t
|
||||
.Fn jumbo_pg_alloc void
|
||||
.Ft void
|
||||
.Fn jumbo_pg_free "vm_offset_t addr"
|
||||
.Ft void
|
||||
.Fn jumbo_freem "caddr_t addr" "void *args"
|
||||
.Ft void
|
||||
.Fn jumbo_pg_steal "vm_page_t pg"
|
||||
.Ft caddr_t
|
||||
.Fn jumbo_phys_to_kva "vm_offset_t pa"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
buffer facility is designed for allocating disposable page-sized
|
||||
buffers.
|
||||
Buffers allocated via this facility can either be returned or not.
|
||||
This facility is primarily intended for use with network adapters
|
||||
that have MTUs of a page or greater size.
|
||||
The buffers will normally be disposed of by the
|
||||
.Xr zero_copy 9
|
||||
receive code.
|
||||
.Pp
|
||||
.Fn jumbo_vm_init
|
||||
initializes the pool of KVA the
|
||||
.Nm
|
||||
code needs to operate and does some
|
||||
other initialization to prepare the subsystem for operation.
|
||||
This routine only needs to be called once.
|
||||
Calling it multiple times will have no effect.
|
||||
It is recommended that this initialization routine be called in a
|
||||
device driver attach routine, so that resources are not allocated if the
|
||||
.Nm
|
||||
subsystem will not end up being used.
|
||||
.Fn jumbo_vm_init
|
||||
returns 1 upon successful completion, and 0 upon failure.
|
||||
.Pp
|
||||
.Fn jumbo_pg_alloc
|
||||
allocates a physical page and assigns a piece of KVA from the
|
||||
.Nm
|
||||
KVA pool.
|
||||
It returns the allocated page if successful, and
|
||||
.Dv NULL
|
||||
in the case of failure.
|
||||
.Pp
|
||||
.Fn jumbo_pg_free
|
||||
frees a page allocated by
|
||||
.Fn jumbo_pg_alloc .
|
||||
It takes the address of the memory in question as an argument.
|
||||
This routine will normally be used in cases where the allocated
|
||||
.Nm
|
||||
page cannot be used for some reason.
|
||||
The normal free path is via
|
||||
.Fn jumbo_freem .
|
||||
.Pp
|
||||
.Fn jumbo_freem
|
||||
is the routine that should be given as the external free routine when an
|
||||
external
|
||||
.Vt mbuf
|
||||
is allocated using pages from the
|
||||
.Nm
|
||||
allocator.
|
||||
It takes the virtual address of the page in question, and
|
||||
ignores the second argument.
|
||||
.Pp
|
||||
.Fn jumbo_pg_steal
|
||||
.Dq steals
|
||||
a page and recycles its KVA space.
|
||||
.Pp
|
||||
.Fn jumbo_phys_to_kva
|
||||
translates the physical address of a
|
||||
.Nm
|
||||
allocated page to the proper kernel virtual address.
|
||||
.Sh SEE ALSO
|
||||
.Xr ti 4 ,
|
||||
.Xr zero_copy 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
allocator is primarily based on a page allocator system originally written
|
||||
by
|
||||
.An Andrew Gallatin Aq gallatin@FreeBSD.org
|
||||
as part of a set of zero copy patches for the
|
||||
.Xr ti 4
|
||||
driver.
|
||||
The allocator was taken out of the
|
||||
.Xr ti 4
|
||||
driver, cleaned up and ported to the new
|
||||
.Xr mutex 9
|
||||
interface by
|
||||
.An Kenneth Merry Aq ken@FreeBSD.org .
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
allocator first appeared in
|
||||
.Fx 5.0 ,
|
||||
and has existed in patch form since at least 1999.
|
||||
.Sh AUTHORS
|
||||
.An Andrew Gallatin Aq gallatin@FreeBSD.org
|
||||
.An Kenneth Merry Aq ken@FreeBSD.org
|
||||
.Sh BUGS
|
||||
There is currently a static number of KVA pages allocated by the
|
||||
.Nm
|
||||
allocator, with no real provision for increasing the number of pages
|
||||
allocated should demand exceed supply.
|
||||
.Pp
|
||||
The
|
||||
.Fn jumbo_pg_steal
|
||||
function is not currently used anywhere.
|
@ -25,7 +25,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 23, 2002
|
||||
.Dd December 5, 2004
|
||||
.Dt ZERO_COPY 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -155,8 +155,7 @@ variables respectively.
|
||||
.Sh SEE ALSO
|
||||
.Xr sendfile 2 ,
|
||||
.Xr socket 2 ,
|
||||
.Xr ti 4 ,
|
||||
.Xr jumbo 9
|
||||
.Xr ti 4
|
||||
.Sh HISTORY
|
||||
The zero copy sockets code first appeared in
|
||||
.Fx 5.0 ,
|
||||
|
Loading…
Reference in New Issue
Block a user