> Thursday, January 29, 2009 > Version 6 > > The following major milestones have been identified by > organizing the initial tasks into related development chunks. > > 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, NetEEE 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.22 Linux ported onto the TxRx Sibyte 1480 socket on Cougar > > Port the Linux 2.6.22 from SSC on TxRx cores. This should be a > direct task on the order of a week. > > ASSIGNED PERSON: Andy Sharp > BEST_CASE_ESTIMATE: 5 Days > STATUS: DONE; Was delayed by xem escalations, > Linux 2.6.22 SMP booted on Cougar hardware, dying due > to watchdog timeout; 11/20/2008; Watchdog timeout solved, 11/25/2008. > > 1.2 Port SSC Linux mgmt-bus network driver and NET_EEE module onto TuxRx Linux. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 2 Days > STATUS: DONE, mgmt_bus.c driver and neteee.c changes coded and compiled > for both SSC and TxRx. Actual time was 5 days > > 1.3 Code extensions to the mgmt-bus driver to handle IP packets > on TxRx to/from SSC. This allows the PPP mgmt bus link between > TuxRx and SSC to support NetEEE, TCP/IP and NFS packets. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 3 Days > STATUS: DONE, mgmt_bus.c changes coded and compiled > Actual time was 2 days > > 1.4 Code test program to exercise mgmt-bus driver and neteee module > between SSC to/from TxRx. This exercises the PPP mgmt bus link between > SSC and TxRx to support NetEEE packets. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 3 Days > STATUS: DONE, neteee-msgtest.c coded and compiled > Actual time was 2 days > > 1.5 Debug and test NetEEE between SSC and TuxRx Linux'es > using mgmt-bus PCI memory driver and NetEEE protocol module. > This validates proper working of mailbox interrupts, device > driver and protocol module on both ends. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: DONE > > 1.6 TuxRx IP packet forwarding to/from the SSC from it's networking > interfaces, using kernel packet forwarding functions. This entails > debugging the IP over mgmtbus code and using stock IP packets over link. > The mgmtbus device currently supports the SIOCSIFADDR/SIOCDIFADDR ioctl's > for IP address'es on the SSC today. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: DONE > > 1.7 Test and debug TuxRx NFS Linux Client remote mounting SSC's Compact Flash > resident along with reading/writing files using NFS, etc. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started, Deferred > > 1.8 Adapt and test RCON functionality under SSC to TXRX and to FP > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started, Deferred > > TOTAL BEST_CASE_ESTIMATE: 36 Days, 7 Weeks > > > 2.0 Milestone 2: SSC/TuxRx Virtual Server and Configuration DBMS > ------------ > > This milestone covers obtaining two major services running on > the SSC communicating to TuxRx via it's counter parts. > The two services are Virtual Server supporting messages described > in sm-ipm/ipm.h and the Cluster DBMS Configuration service. > > 2.1 Develop TuxRx user level daemon and netfilter functions to implement > all Virtual Server messages to/from the SSC. The message types are > contained in the header file sm-ipm/ipm.h. > The daemon implements the virtual server functions via appropriate > network IOCTL's and using a netlink socket to setup netfilter functionalty. > > ASSIGNED PERSON: Andy Sharp > STATUS: Not-Started > BEST_CASE_ESTIMATE: 5 Days > > 2.2 Develop SSC IPM test program communicating with TuxRx Virtual Server daemon > by sending/receiving IPM messages. > > ASSIGNED PERSON: Andy Sharp > STATUS: Not-Started > STATUS: Coded basic vsvr-msgtest.c program as starting SSC test program. > William Fisher, 2 Days. > BEST_CASE_ESTIMATE: 5 Days > > 2.3 Test TuxRx code using working SSC Virtual Server. This covers testing > all Virtual Server messages and ensuring correct implementation semantics. > > ASSIGNED PERSON: Andy Sharp > STATUS: Not-Started > BEST_CASE_ESTIMATE: 10 Days > > 2.4 Develop TuxRx user level daemon to receive/send configuration messages > sent by SSC running configuration DBMS. This user level daemon will > supports the communication between SSC and TuxRx for all > configuration specific message types. > > ASSIGNED PERSON: Andy Sharp > STATUS: Not-Started > BEST_CASE_ESTIMATE: 5 Days > > 2.5 Develop SSC test program communicating with TuxRx Configuration daemon > by sending/receiving IPM messages. > > ASSIGNED PERSON: Andy Sharp > STATUS: Not-Started > STATUS: Coded basic vs-mid-msgtest.c program as starting SSC test program. > William Fisher, 3 Days. > BEST_CASE_ESTIMATE: 5 Days > > 2.6 Test TuxRx for Configuration Service using configuration DBMS on SSC. > ASSIGNED PERSON: Andy Sharp > STATUS: Not-Started > BEST_CASE_ESTIMATE: 5 Days > > TOTAL BEST_CASE_ESTIMATE for Section 2.X: 35 Days, 7 Weeks > > > 3.0 Milestone 3: Linux changes for Shared Memory, IPC Queues and SKB allocation > ------------ > > 3.1 Add Linux support for EEE memory layout for memory regions, used by > shared IPC queue's and SKB Slab allocation from specific pages. > The changes includes the zone, pglist and header files and > the code changes to exploit assign and use these memory regions. > > The EEE's virtual address assignments are: > > 0x01 E000 0000 Shared Memory Hole => RETAINED, skb's and buffers > 0x01 F800 0000 Shared Memory Hole Ending Address, Starting at 8GB, 400MB hole > > 0x10 0000 0000 malloc Region => DEPRECIATED, Use Linux slab allocator > 0x20 0000 0000 txrx Region => DEPRECIATED, Use Linux slab allocator > 0x30 0000 0000 SAC Region => DEPRECIATED, Use Linux slab allocator > > 0x40 0000 0000 FP Region => RETAINED for FP Usage > > 0x50 0000 0000 Thread Stack Region => DEPRECIATED, Use Linux slab allocator > 0x60 0000 0000 TxRx Cache Region => DEPRECIATED, Use Linux slab allocator > 0x70 0000 0000 FP Cache Region => DEPRECIATED, Use Linux slab allocator > > ASSIGNED PERSON: William Fisher Probably will fall to me instead of you. > BEST_CASE_ESTIMATE: 5 Days > STATUS: TuxRx kernel changes done for Mgmtbus, Shared memory area Not-Started > > 3.2 Linux kernel Slab/Zone/Page changes for SKB Allocation > > This task includes modifying kernel slab allocator to obtain memory > from the shared memory region when so designated by state flags. > The changes will co-exist with standard Linux kernel memory allocation policies > but use shared memory areas for IPC Queue's and skb's. The changes include adding > add new status flags, creating a new ZONE_SHAREDMEM and changing the slab allocator > to use the new zone and special page region. These changes support the IPC and > zero-copy networking and file system operations between NCPU, ACPU and FP cores. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: Determined kernel changes to header files and code to "insert" > a new "zone", ZONE_SHAREDMEM, in the contig_page_data structure. > Identified slab allocator changes. > Coding not started; Preliminary work took 2 days ended 11/21/2008. > > 3.3 Obtain a working kgdb debugger for development. > > ASSIGNED PERSON: William Fisher/Andy Sharp > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started > > > 3.4 Rework SM-TPL code for Linux kernel operation > > 1) Rework the makefiles and related supporting files to get the > code to compile under the Linux headers. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 3 Days > Status: Done for the first pass > > 2) First pass adaption code by starting with BSD/VSTACK code > and removing the layer violations, IP, UDP and TCP header > construction code, the IP checksum code, the VSTACK hooks > and the use of skb's rather than pkt_desc's. > This included cutting down the files to include > under the sm-tpl directory: > tpl.c,tpl-ipc.c,tpl-msg.c, tpl-rcv.c, tpl-xmt.c, tpl-utils.c > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 8 Days > Status: About 50% done > > 3) Design a replacement for the TxRx Global Connection and Bind > tables with sometehing that works under the Linux kernel. > One proposal is to extend the Linux socket to hold this > information and allocate space for it. We would then add > some new equivalent interfaces to perform the lookup, create > and delete operations. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 2 Days > Status: Not-Started > discussion > 4) Implement the new TxRx Global Connection and Bind table > replacement scheme. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 5 Days > Status: Not-Started > discussion > 3.5 Port EEE IPC message queue code, memory layout and EEE IPC test program > to Linux kernel. Code in particular is: > sm-eee/{eee-msgs..c,eee-ipc.[hc],eee-rq.[hc],eee-test.[hc],eee-init.c} > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 10 Days > STATUS: Not-Started > > 3.6 Rework/Port/Adapt the EEE Packet Queue code and test programs to Linux > sm-pkt/{pkt-queue-api.c, pkt-queue-api.h, pkt-queue-struct.h, pkt-utils.c, pkt-queue-test.c} > There are some design issues remaining in several areas, including memory waiting, > connection queue'ing in certain cases, various copy and flattenming procedures > which use eee_desc and pkt_desc which need to be reworked. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 10 Days > STATUS: Reworked pkt-queue-api.c, pkt-queue-api.h, pkt-queue-struct.h to > use skb's and separate out test code; > About 25% done. > > 3.7 Test reworked Packet Queue code and extend the test programs under linux > sm-pkt/{pkt-queue-api.c, pkt-queue-api.h, pkt-queue-struct.h, pkt-utils.c, pkt-queue-test.c} > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 10 Days > STATUS: Not-Started > > 3.8 Virtual Server hooks into the sm-tpl and sm-pkt(requestQueue) code > need to be designed and implemented. > The initial push to get NFS/CIFS working under Linux will allow > this task to be defered for awhile. All TXRX <-> FP IPC > messages contain and pass the Virtual Server ID (vsid) around. > Under the BSD Protocol stack this was used to get the > correct vstack instance setup. > > ASSIGNED PERSON: Andy Sharp > BEST_CASE_ESTIMATE: TBD > STATUS: Not-Started > > 3.9 Rework the tpl-fp code in light of skb adaption and the socket > hooks previously used in the BSD staack. Some of this code resides > in sm-tpl/tpl-msg.c and some in the FP side of the world. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: TBD > STATUS: Not-Started > > 3.10 Develop some tpl-fp test code to verify the request/reply messages > are working correctly and the Linux socket operations are working > as required. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: TBD > STATUS: Not-Started > > 3.11 Test direct IPC messaging between the SSC and NCPU ACPU and FP queue's. > This maintains the NCPU's forwarding of messages to/from the FP. > The test program will modify and existing EEE IPC test program. > > ASSIGNED PERSON: William Fisher > BEST_CASE_ESTIMATE: 3 Days > STATUS: Not-Started > > 3.12 Linux 2.6.26 executing on only 3 of 4 Sibyte MIPS Cores > > This task covers restricting the Linux kernel to run on > a subset of the processors and adjusting the hardware > discovery/assignment changes if required. This also > includes using the NFS/CIFS module(s) as the test cases. > > ASSIGNED PERSON: Andy Sharp > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started > > > 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 Code and compile the ACPU NFS/CIFS code to be kernel loadable > modules running on a dedicate CPU core polling the IPC queue's. > > ASSIGNED PERSON: Willaim Fisher probably falls to me > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started > > 4.2 Convert ACPU NFS/CIFS code to use skb's rather than pkt_desc's. > > ASSIGNED PERSON: Willaim Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started > > 4.3 Add TPL_XXX calls, aka "hooks" into the Linux > TCP/IP stack to make ACPU aware of particular > socket operations. > > ASSIGNED PERSON: Willaim Fisher > BEST_CASE_ESTIMATE: 4 Days > STATUS: Not-Started > discussion > 4.4 Code changes to FP to release skb's and buffers > > ASSIGNED PERSON: Willaim Fisher > BEST_CASE_ESTIMATE: 2 Days > STATUS: Not-Started > > 4.5 Develop and test the ACPU to FP messaging is > properly working. These are both control and data > specific messages. > > ASSIGNED PERSON: Willaim Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started > > 4.6 Test and debug the NFS code after steps 1-5, > aka the above items, have been completed. > > ASSIGNED PERSON: Andy Sharp and Willaim Fisher > BEST_CASE_ESTIMATE: 10 Days > STATUS: Not-Started > > 4.7 Test and debug the CIFS code after steps 1-5, > aka the above items, have been completed. > > ASSIGNED PERSON: Andy Sharp and Willaim Fisher > BEST_CASE_ESTIMATE: 10 Days > STATUS: Not-Started > > TOTAL BEST_CASE_ESTIMATE for Section 4.X: 41 Days, 8 Weeks > > > 5.0 Milestone 5: Obtain equivalent kgdb/gdb debugging support > ------------ > > 5.1 Support the three scenario's for compatability with > existing debugging support under gdb under EEE. > These particular scenario's that exist today that > must be supported include: > > a) Attaching gdb to a crashed kernel instance > under TxRx and FP. > > b) Single step debugging using and instance > under gdb on another Linux system and > connecting via RCON to the remote system > inside the box. > > c) Debugging via RCON from the SSC Linux system > to allow the existing embedded shells to be > work under the exception handler or equivalent > to the hard polling loop task under EEE. > > ASSIGNED PERSON: Andy Sharp > BEST_CASE_ESTIMATE: TBD > STATUS: Not-Started > > 6.0 Milestone 6: Support core dumps > ------------ > > 6.1 Adding Linux kernel support to get kernel core dumps > onto the management volume supported by the FP. > The initial thinking was to adapt the EEE code to > the Linux kernel. > > ASSIGNED PERSON: Andy Sharp > BEST_CASE_ESTIMATE: TBD > STATUS: Not-Started > ACPU thread group core dumps, not kernel core dumps > 6.1 Extend/adapt the EEE exception handler and core shutdown code > to Linux > > ASSIGNED PERSON: Andy Sharp > BEST_CASE_ESTIMATE: TBD > STATUS: Not-Started > > 7.0 Milestone 7: Full System Integration of Networking, NFS/CIFS and FP > ------------ > > This milestone covers integrating the TuxRx networking, > the NFS and CIFS and the FP functions. > > 7.1 Verify the TuxRx IPC specific messages to/from FP Core. > > ASSIGNED PERSON: Willaim Fisher > BEST_CASE_ESTIMATE: 5 Days > STATUS: Not-Started > > 7.2 Test DMIP using a fully integrated set of software. > > ASSIGNED PERSON: Andy Sharp > BEST_CASE_ESTIMATE: 10 Days > STATUS: Not-Started > > 7.3 Test NFS using a fully integrated set of software. > > ASSIGNED PERSON: Andy Sharp and Willaim Fisher > BEST_CASE_ESTIMATE: 10 Days > STATUS: Not-Started > > 7.4 Test CIFS CIFS using a fully integrated set of software. > > ASSIGNED PERSON: Andy Sharp and Willaim Fisher > BEST_CASE_ESTIMATE: 10 Days > STATUS: Not-Started > > TOTAL BEST_CASE_ESTIMATE for Section 5.X: 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: 20 Days, 4 Weeks > > Milestone 2: SSC System Configurer and Virtual Server Running > TOTAL BEST_CASE_ESTIMATE: 30 Days, 6 Weeks > > Milestone 3: Linux Kernel Memory Changes and IPC''s to APCU and FP > TOTAL BEST_CASE_ESTIMATE: 17 Days, 3.5 Weeks > > Milestone 4: Modification and Testing of ACPU NFS/CIFS > TOTAL BEST_CASE_ESTIMATE: 41 Days, 8 Weeks > > Milestone 5: Full System Integration of Networking, NFS/CIFS and FP > TOTAL BEST_CASE_ESTIMATE: 35 Days, 7 Weeks > > GRAND TOTALS: > > BEST_CASE_ESTIMATE: 25 Weeks, 1 person, approximately 6 months > MID_RANGE_ESTIMATE: 50 Weeks, 1 person, approximately 12.5 months > > >