<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://etherboot.org/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://etherboot.org/wiki/feed.php">
        <title>Etherboot/gPXE Wiki soc:2010:cooldavid:notes</title>
        <description></description>
        <link>http://etherboot.org/wiki/</link>
        <image rdf:resource="http://etherboot.org/wiki/lib/tpl/monobook/images/favicon.ico" />
       <dc:date>2026-04-04T03:11:53-07:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/benchmark?rev=1273653137&amp;do=diff"/>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/bkobench?rev=1273932716&amp;do=diff"/>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/expandheap?rev=1275639831&amp;do=diff"/>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/gpxememlayout?rev=1275509522&amp;do=diff"/>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/gpxeprogflow?rev=1279425540&amp;do=diff"/>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/start?rev=1279423197&amp;do=diff"/>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/tcpoorxtest?rev=1273925003&amp;do=diff"/>
                <rdf:li rdf:resource="http://etherboot.org/wiki/soc/2010/cooldavid/notes/tracetcpstack?rev=1273701339&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://etherboot.org/wiki/lib/tpl/monobook/images/favicon.ico">
        <title>Etherboot/gPXE Wiki</title>
        <link>http://etherboot.org/wiki/</link>
        <url>http://etherboot.org/wiki/lib/tpl/monobook/images/favicon.ico</url>
    </image>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/benchmark?rev=1273653137&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-05-12T01:32:17-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:benchmark</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/benchmark?rev=1273653137&amp;do=diff</link>
        <description>Guo-Fu Tseng: Implement and Port Ethernet Drivers for gPXE

Notes: TCP Window Size and RX Csum Offload Benchmark

I've done some benchmark with imgfetch a 500MByte image via HTTP.
The test was done by directly connect two computer with a CAT.6 cable:</description>
    </item>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/bkobench?rev=1273932716&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-05-15T07:11:56-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:bkobench</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/bkobench?rev=1273932716&amp;do=diff</link>
        <description>Test image: &lt;http://130.239.17.17/bko/live/fedora/f13-alpha/i686/initrd0.img&gt;

This benchmark downloads the image from bko via local DHCP/NAT server.
The following are dstat outputs against different code branch.

(With extra modification: #define TCP_MAX_WINDOW_SIZE ( 65536 - 4 ))

With jme driver

&lt;http://git.etherboot.org/?p=people/cooldavid/gpxe.git;a=shortlog;h=refs/heads/jme_driver&gt;

4096 TCP_MAX_WINDOW_SIZE</description>
    </item>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/expandheap?rev=1275639831&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-06-04T01:23:51-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:expandheap</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/expandheap?rev=1275639831&amp;do=diff</link>
        <description>Expand gPXE heap

Real-mode compatibility

The gPXE's code can be executed on both real-mode and
protected-mode because of the GDT's base address was filled with
the starting point of the code. Which makes all the function,
global variable's pointer valid between the transition.</description>
    </item>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/gpxememlayout?rev=1275509522&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-06-02T13:12:02-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:gpxememlayout</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/gpxememlayout?rev=1275509522&amp;do=diff</link>
        <description>gPXE memory layout

Currently the linker script for each arch is locate at:

	*  src/arch/x86/scripts/efi.lds
	*  src/arch/i386/scripts/i386-kir.lds
	*  src/arch/i386/scripts/i386.lds

We can reference src/arch/i386/README.i386 for the difference
between</description>
    </item>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/gpxeprogflow?rev=1279425540&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-07-17T20:59:00-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:gpxeprogflow</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/gpxeprogflow?rev=1279425540&amp;do=diff</link>
        <description>gPXE Program Flow

Prefixes

	*  The very first entry point of gPXE
	*  Image type and architecture dependent
	*  Mostly written in assembly
	*  Setup basic hardware environment
		*  Virtual memory
		*  Interrupt services.
		*  Bus status.
		*  Disk status.</description>
    </item>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/start?rev=1279423197&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-07-17T20:19:57-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:start</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/start?rev=1279423197&amp;do=diff</link>
        <description>Guo-Fu Tseng: Implement and Port Ethernet Drivers for gPXE

Notes

	*  TCP Window Size and RX Csum Offload Benchmark
	*  TCP Stack Trace Note
	*  TCP out-of-order receive dstat test logs
	*  Benchmarks for downloading image from boot.kernel.org
	*  gPXE memory layout
	*  Expand gPXE heap
	*  gPXE Program Flow</description>
    </item>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/tcpoorxtest?rev=1273925003&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-05-15T05:03:23-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:tcpoorxtest</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/tcpoorxtest?rev=1273925003&amp;do=diff</link>
        <description>TCP out-of-order receive dstat test logs

The setup is same as TCP Window Size and RX Csum Offload Benchmark except with following netem parameters bind to the server interface.


tc qdisc add dev eth0 root netem loss 0.3% 25% duplicate 1% delay 10ms reorder 25% 50%


Following test shows the result of this patch:</description>
    </item>
    <item rdf:about="http://etherboot.org/wiki/soc/2010/cooldavid/notes/tracetcpstack?rev=1273701339&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-05-12T14:55:39-07:00</dc:date>
        <title>soc:2010:cooldavid:notes:tracetcpstack</title>
        <link>http://etherboot.org/wiki/soc/2010/cooldavid/notes/tracetcpstack?rev=1273701339&amp;do=diff</link>
        <description>TCP Out-Of-Order Receving handling

It's a little tricky about already_rcvd (uint32_t).

if tcp-&gt;rcv_ack == seq : Normal case

	*  already_rcvd = 0

if tcp-&gt;rcv_ack &gt;  seq : Segment contains previous data

	*  already_rcvd = small positive number

if</description>
    </item>
</rdf:RDF>
