-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…
…t/torvalds/linux-2.6
- Loading branch information
Showing
144 changed files
with
3,141 additions
and
1,303 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" | ||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> | ||
|
||
<book id="LinuxNetworking"> | ||
<bookinfo> | ||
<title>Linux Networking and Network Devices APIs</title> | ||
|
||
<legalnotice> | ||
<para> | ||
This documentation is free software; you can redistribute | ||
it and/or modify it under the terms of the GNU General Public | ||
License as published by the Free Software Foundation; either | ||
version 2 of the License, or (at your option) any later | ||
version. | ||
</para> | ||
|
||
<para> | ||
This program is distributed in the hope that it will be | ||
useful, but WITHOUT ANY WARRANTY; without even the implied | ||
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
See the GNU General Public License for more details. | ||
</para> | ||
|
||
<para> | ||
You should have received a copy of the GNU General Public | ||
License along with this program; if not, write to the Free | ||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
MA 02111-1307 USA | ||
</para> | ||
|
||
<para> | ||
For more details see the file COPYING in the source | ||
distribution of Linux. | ||
</para> | ||
</legalnotice> | ||
</bookinfo> | ||
|
||
<toc></toc> | ||
|
||
<chapter id="netcore"> | ||
<title>Linux Networking</title> | ||
<sect1><title>Networking Base Types</title> | ||
!Iinclude/linux/net.h | ||
</sect1> | ||
<sect1><title>Socket Buffer Functions</title> | ||
!Iinclude/linux/skbuff.h | ||
!Iinclude/net/sock.h | ||
!Enet/socket.c | ||
!Enet/core/skbuff.c | ||
!Enet/core/sock.c | ||
!Enet/core/datagram.c | ||
!Enet/core/stream.c | ||
</sect1> | ||
<sect1><title>Socket Filter</title> | ||
!Enet/core/filter.c | ||
</sect1> | ||
<sect1><title>Generic Network Statistics</title> | ||
!Iinclude/linux/gen_stats.h | ||
!Enet/core/gen_stats.c | ||
!Enet/core/gen_estimator.c | ||
</sect1> | ||
<sect1><title>SUN RPC subsystem</title> | ||
<!-- The !D functionality is not perfect, garbage has to be protected by comments | ||
!Dnet/sunrpc/sunrpc_syms.c | ||
--> | ||
!Enet/sunrpc/xdr.c | ||
!Enet/sunrpc/svc_xprt.c | ||
!Enet/sunrpc/xprt.c | ||
!Enet/sunrpc/sched.c | ||
!Enet/sunrpc/socklib.c | ||
!Enet/sunrpc/stats.c | ||
!Enet/sunrpc/rpc_pipe.c | ||
!Enet/sunrpc/rpcb_clnt.c | ||
!Enet/sunrpc/clnt.c | ||
</sect1> | ||
</chapter> | ||
|
||
<chapter id="netdev"> | ||
<title>Network device support</title> | ||
<sect1><title>Driver Support</title> | ||
!Enet/core/dev.c | ||
!Enet/ethernet/eth.c | ||
!Enet/sched/sch_generic.c | ||
!Iinclude/linux/etherdevice.h | ||
!Iinclude/linux/netdevice.h | ||
</sect1> | ||
<sect1><title>PHY Support</title> | ||
!Edrivers/net/phy/phy.c | ||
!Idrivers/net/phy/phy.c | ||
!Edrivers/net/phy/phy_device.c | ||
!Idrivers/net/phy/phy_device.c | ||
!Edrivers/net/phy/mdio_bus.c | ||
!Idrivers/net/phy/mdio_bus.c | ||
</sect1> | ||
<!-- FIXME: Removed for now since no structured comments in source | ||
<sect1><title>Wireless</title> | ||
X!Enet/core/wireless.c | ||
</sect1> | ||
--> | ||
<sect1><title>Synchronous PPP</title> | ||
!Edrivers/net/wan/syncppp.c | ||
</sect1> | ||
</chapter> | ||
|
||
</book> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
|
||
|
||
Real-Time group scheduling. | ||
|
||
The problem space: | ||
|
||
In order to schedule multiple groups of realtime tasks each group must | ||
be assigned a fixed portion of the CPU time available. Without a minimum | ||
guarantee a realtime group can obviously fall short. A fuzzy upper limit | ||
is of no use since it cannot be relied upon. Which leaves us with just | ||
the single fixed portion. | ||
|
||
CPU time is divided by means of specifying how much time can be spent | ||
running in a given period. Say a frame fixed realtime renderer must | ||
deliver 25 frames a second, which yields a period of 0.04s. Now say | ||
it will also have to play some music and respond to input, leaving it | ||
with around 80% for the graphics. We can then give this group a runtime | ||
of 0.8 * 0.04s = 0.032s. | ||
|
||
This way the graphics group will have a 0.04s period with a 0.032s runtime | ||
limit. | ||
|
||
Now if the audio thread needs to refill the DMA buffer every 0.005s, but | ||
needs only about 3% CPU time to do so, it can do with a 0.03 * 0.005s | ||
= 0.00015s. | ||
|
||
|
||
The Interface: | ||
|
||
system wide: | ||
|
||
/proc/sys/kernel/sched_rt_period_ms | ||
/proc/sys/kernel/sched_rt_runtime_us | ||
|
||
CONFIG_FAIR_USER_SCHED | ||
|
||
/sys/kernel/uids/<uid>/cpu_rt_runtime_us | ||
|
||
or | ||
|
||
CONFIG_FAIR_CGROUP_SCHED | ||
|
||
/cgroup/<cgroup>/cpu.rt_runtime_us | ||
|
||
[ time is specified in us because the interface is s32; this gives an | ||
operating range of ~35m to 1us ] | ||
|
||
The period takes values in [ 1, INT_MAX ], runtime in [ -1, INT_MAX - 1 ]. | ||
|
||
A runtime of -1 specifies runtime == period, ie. no limit. | ||
|
||
New groups get the period from /proc/sys/kernel/sched_rt_period_us and | ||
a runtime of 0. | ||
|
||
Settings are constrained to: | ||
|
||
\Sum_{i} runtime_{i} / global_period <= global_runtime / global_period | ||
|
||
in order to keep the configuration schedulable. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.