X-Sylpheed-Account-Id:1
S:andy.sharp@onstor.com
SCF:#mh/Mailbox/sent
X-Sylpheed-Sign:0
X-Sylpheed-Encrypt:0
X-Sylpheed-Privacy-System:
RMID:#imap/andys@onstor.net@onstor-exch02.onstor.net/INBOX	0	4901158D.80203@onstor.com
X-Sylpheed-End-Special-Headers: 1
Date: Mon, 27 Oct 2008 17:33:08 -0700
From: Andrew Sharp <andy.sharp@onstor.com>
To: William Fisher <bfisher@onstor.com>
Subject: Re: Major Schedule Milestone Proposal, Version 3 with
 Guess-Estimates
Message-ID: <20081027173308.2ab33562@ripper.onstor.net>
References: <4901158D.80203@onstor.com>
Organization: Onstor
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Thu, 23 Oct 2008 17:23:41 -0700 William Fisher <bfisher@onstor.com>
wrote:

> Guys:
>
> Here is the latest version, including Max's comments and suggestions
> on task reordering, etc.
>
> Let me know what you want to do next. I think Andy can make a strong
> case about the technical risk of the various tasks. I added a
> summary section to the end that gives both best case and mi-range
> time estimates. I assumed the mid-range case is a factor of 2x
> over the best case, aka the most agressive time estimates
> I included in version 2.
>
> Thanks,
>
> -- Bill


>		Thursday, October 22, 2008
>		Version 3
>
> The following major milestones have been identified by
> moving the initial tasks around into deliverable pieces.
>
> This document assume the mnemonic, TuxRx is the name given
> to the Linux kernel running on one of Sibyte 1480 processor sockets.
>
>
> 1.0 Milestone 1: Linux kernel, Mgmt-Bus, and IPC messaging between
> SSC and TuxRx ------------
>
> This milestone covers the tasks resulting in running Linux kernels
> on both the SSC and TuxRx sending/receiving messages via the mgmt-bus
> driver and protocol modules. In addition basic IP support and NFS
> communication between the SSC and TuxRx are supported.
>
> 1.1 Stock 2.6.26 Linux ported and on the two socket Sibyte 1480
> hardware.
>
>     With the port of 2.6.22 onto the SSC, this should be a very direct
>     task on the order of a few days best case.
>     BEST_CASE_ESTIMATE: 2 Days
>
> 1.2 Porting SSC Linux mgmt-bus driver and NET_EEE modules onto TuxRx
> Linux. BEST_CASE_ESTIMATE: 2 Days
>
> 1.3 Code extensions to the mgmt-bus driver and modify NET_EEE module
>     to handle IP packets to/from SSC. This allows a Point-to-point
> link from TuxRx to SSC supporting TCP/IP and NFS traffic.
>     BEST_CASE_ESTIMATE: 3 Days
>
> 1.4 Test IPC between the SSC and TuxRx Linux using the
>     mgmt-bus PCI driver and EEE protocol module. This validates
>     the proper working of the DMA and interrupts on both ends.
>     BEST_CASE_ESTIMATE: 5 Days
>
> 1.5 TuxRx NFS Linux Client mounting CF from SSC along with
>     reading/writing files, etc.
>     BEST_CASE_ESTIMATE: 2 Days
>
>     TOTAL BEST_CASE_ESTIMATE: 14 Days, 3 Weeks
>
>
> 2.0 Milestone 2: SSC System Configurer and Virtual Server Running
>     ------------
>
> This milestone covers obtaining two major working functions running on
> the SSC and communicating to the TuxRx. These include the configurer
> and the Virtual Server with support for all their message types.
>
> 2.1  Develop the TuxRx code to receive and send the configuraiton
> messages sent by the SSC running the configuration DBMS. This entails
> developing a user level daemon supporting the communication between
> SSC and TuxRx for all configuration specific messages.
>      BEST_CASE_ESTIMATE: 5 Days
>
> 2.2 Develop the TuxRx user level daemon and appropriate netfilter
> functions to support all Virtual Server specific messages to/from the
> SSC. BEST_CASE_ESTIMATE: 5 Days
>
> 2.3  Test TuxRx code to obtain working Configurer using configuration
> DBMS on SSC. BEST_CASE_ESTIMATE: 5 Days
>
> 2.4 Test TuxRx code to obtain a working SSC Virtual Server. This will
> entain testing the user daemon and netfilter functions to ensure all
> Virtual Server messages to/from the SSC are correct.
>     BEST_CASE_ESTIMATE: 10 Days
>
> 2.5 TuxRx IP packet forwarding to/from the SSC from it's networking
>     interfaces. This assumes the kernel packet forwarding functions
>     and NOT the netfiler functions are used.
>     BEST_CASE_ESTIMATE: 4 Days
>
>     TOTAL BEST_CASE_ESTIMATE: 25 Days, 5 Weeks
>
>
> 3.0 Milestone 3: Linux Kernel Memory Changes and IPC''s to APCU and FP
>     ------------
>
> 3.1 Add Linux support for EEE memory layout for shared
>      IPC queue's and the memory regions. The EEE's existing
>      virtual address assignments are:
>
>     1 0x0 1E0 000 000 Shared Memory Hole => RETAINED, skb's and
> buffers
>
>     2 0x1 000 000 000 malloc Region => DEPRECIATED, Use Linux slab
> allocator 3 0x2 000 000 000 txrx Region => DEPRECIATED, Use Linux
> slab allocator 4 0x3 000 000 000 SAC Region => DEPRECIATED, Use Linux
> slab allocator
>
>     5 0x4 000 000 000 FP Region => RETAINED for FP Usage
>
>     6 0x5 000 000 000 Thread Stack Region => DEPRECIATED, Use Linux
> slab allocator 7 0x6 000 000 000 TxRx Cache Region => DEPRECIATED,
> Use Linux slab allocator 8 0x7 000 000 000 FP Cache Region =>
> DEPRECIATED, Use Linux slab allocator
>
>     The Shared Memory hole will be used to allocate skb's and buffers.
>     The changes to the Linux SKB allocator and co-existance of
>     Linux kernel memory allocation policies with the shared
>     regions used under EEE are also included here.
>     BEST_CASE_ESTIMATE: 5 Days
>
> 3.2 IPC Shared Queue's Assignments and code Porting
>
>     Porting the IPC queue's code including initial debugging.
>     BEST_CASE_ESTIMATE: 2 Days
>
> 3.3 Testing the direct IPC messaging between the SSC and NCPU
>     ACPU and FP queue's. This also includes the elimination
>     of the NCPU's forwarding of messages to/from the FP in favor of
>     direct communication.
>     BEST_CASE_ESTIMATE: 7 Days
>
> 3.4 Linux 2.6.26 cut-back to run on only three cores
>
>     This task covers restricting the Linux kernel to run on
>     a subset of the processors and adjusting what-ever hardware
>     discovery/assignment changes required.
>     BEST_CASE_ESTIMATE: 2 Days
>
>     TOTAL BEST_CASE_ESTIMATE: 16 Days, 3+ Weeks
>
>
> 4.0 Milestone 4: Modification and Testing of ACPU NFS/CIFS
>     ------------
>
> This milestone covers obtaining getting basic NFS and CIFS
> functionality and TuxRx networking communicating to
> the NFS and CIFS code.
>
> 4.1 Converting the ACPU NFS/CIFS code to be modules and
>     runing as kernel thread pinned to a cpu core.
>     BEST_CASE_ESTIMATE: 5 Days
>
> 4.2 Conversion of the ACPU NFS/CIFS code to
>     use skb's rather than pkt_desc's.
>     BEST_CASE_ESTIMATE: 5 Days
>
> 4.3 Adding the TPL_XXX calls into the Linux
>     TCP/IP stack to be ACPU aware for socket operations.
>     BEST_CASE_ESTIMATE: 4 Days
>
> 4.4 Code changes to FP to release skb's and buffers
>     BEST_CASE_ESTIMATE: 2 Days
>
> 4.5 Developing and testing the ACPU to FP
>     messages are properly working. These
>     are both control and data specific messages.
>     BEST_CASE_ESTIMATE: 5 Days
>
> 4.6 Testing and debugging the NFS code after
>     the above steps have been completed.
>     BEST_CASE_ESTIMATE: 10 Days
>
> 4.7 Testing and debugging the CIFS code after
>     the above steps have been completed.
>     BEST_CASE_ESTIMATE: 10 Days
>
>     TOTAL BEST_CASE_ESTIMATE: 41 Days, 8 Weeks
>
> 5.0 Milestone 5: Full System Integration of Networking, NFS/CIFS and
> FP ------------
>
> This milestone covers integrating the TuxRx networking,
> the NFS and CIFS and the FP functions.
>
> 5.1 Verify the TuxRx IPC specific messages to/from FP Core.
>     BEST_CASE_ESTIMATE: 5 Days
>
> 5.2 Test DMIP using a fully integrated set of software.
>     BEST_CASE_ESTIMATE: 10 Days
>
> 5.3 Test NFS using a fully integrated set of software.
>     BEST_CASE_ESTIMATE: 10 Days
>
> 5.4 Test CIFS CIFS using a fully integrated set of software.
>     BEST_CASE_ESTIMATE: 10 Days
>
>     TOTAL BEST_CASE_ESTIMATE: 35 Days, 7 Weeks
>
>
> Summary of First Pass Time-Estimates
> ------------------------------------
>
>  If we assume an average "middle" range estimate would be about 2x
>  the most agressive estimates, the following numbers present the
>  best and middle range cases.
>
>  All of the above estimates are assume a single person working on
>  the tasks serially with no help. Hence assuming two engineers, the
>  project looks do-able in a reasonable time-frame.
>
>  Milestone 1: Linux kernel, Mgmt-Bus, and IPC messaging between SSC
> and TuxRx TOTAL BEST_CASE_ESTIMATE: 19 Days, 4 Weeks
>
>  Milestone 2: SSC System Configurer and Virtual Server Running
>  TOTAL BEST_CASE_ESTIMATE: 25 Days, 5 Weeks
>
>  Milestone 3: Linux Kernel Memory Changes and IPC''s to APCU and FP
>  TOTAL BEST_CASE_ESTIMATE: 16 Days, 3 Weeks
>
>  Milestone 4: Modification and Testing of ACPU NFS/CIFS
>  TOTAL BEST_CASE_ESTIMATE: 38 Days, 7.5 Weeks
>
>  Milestone 5: Full System Integration of Networking, NFS/CIFS and FP
>  TOTAL BEST_CASE_ESTIMATE: 25 Days, 5 Weeks
>
>  GRAND TOTALS:
>
>       BEST_CASE_ESTIMATE: 25 Weeks, 1 person, approximately 6 months
>       MID_RANGE_ESTIMATE: 50 Weeks, 1 person, approximately 12.5
> months
