AF:
NF:0
PS:10
SRH:1
SFN:
DSR:
MID:
CFG:
PT:0
S:andy.sharp@lsi.com
RQ:
SSV:mhbs.lsil.com
NSV:
SSH:
R:<Bill.Fisher@lsi.com>,<rendell.fong@lsi.com>
MAID:2
X-Sylpheed-Privacy-System:
X-Sylpheed-Sign:0
SCF:#mh/Mailbox/sent
RMID:#imap/LSI/INBOX	0	4B1DB837.5090200@lsi.com
X-Sylpheed-End-Special-Headers: 1
Date: Tue, 8 Dec 2009 11:43:35 -0800
From: Andrew Sharp <andy.sharp@lsi.com>
To: "Fisher, Bill" <Bill.Fisher@lsi.com>, Rendell Fong
 <rendell.fong@lsi.com>
Subject: Re: TXRX onstor-nas.o undefined symbols; Subtracting
 code/{tpl/neteee2/neteee-ui} directories
Message-ID: <20091208114335.27471ffa@ripper.onstor.net>
In-Reply-To: <4B1DB837.5090200@lsi.com>
References: <DEC609CD0E54B2448DAF023C89AE9755E9275AD2@cosmail02.lsi.com>
	<4B1DB837.5090200@lsi.com>
Organization: LSI
X-Mailer: Sylpheed-Claws 2.6.0 (GTK+ 2.8.20; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 7 Dec 2009 19:21:43 -0700 William Fisher <bill.fisher@lsi.com>
wrote:

> Scheer, Larry wrote:
> > [larrys@linux-compile nfx-tree]$ /usr/bin/mipsel-linux-gnu-nm
> > --undefined code/onstor-nas.o U __kmalloc
> >                  U __kzalloc
> >                  U _ctype
> >                  U _spin_lock
> >                  U acpu_conn_cancel_pendings
> >                  U acpu_conn_close_list
> >                  U acpu_conn_has_become_active
> >                  U acpu_conn_has_become_idle
> >                  U acpu_conn_hold
> >                  U acpu_conn_init
> >                  U acpu_conn_remove_pending_request
> >                  U acpu_conn_uninit
> >                  U count_per_msec
> >                  U count_per_sec
> >                  U count_per_usec
> >                  U cpu_data
> >                  U crc32_le
> >                  U crc32c_le
> >                  U creq
> >                  U dcache_show_stats
> >                  U dcache_show_tune
> >                  U die
> >                  U dump_stack
> >                  U edesc_calc_space
> >                  U edesc_iter_advance
> >                  U edesc_iter_init
> >                  U eee
> >                  U eee_allocateApplicationId
> >                  U eee_allocateBlock
> >                  U eee_allocateBuffer
> >                  U eee_allocateDesc
> >                  U eee_buf_valid
> >                  U eee_copyPacketData
> >                  U eee_copyPacketToLocalBuffer
> >                  U eee_createPacketFromLocalBuffer
> >                  U eee_deallocateBuffer
> >                  U eee_deallocateDesc
> >                  U eee_forwardLocalPktUni
> >                  U eee_forwardPacket
> >                  U eee_freePacket
> >                  U eee_getAppNameFromId
> >                  U eee_getApplicationId
> >                  U eee_getAvailableNbrOfBufs
> >                  U eee_getAvailableNbrOfDesc
> >                  U eee_getAvailableNbrOfDescs
> >                  U eee_getBufSize
> >                  U eee_getTotalNbrOfBufs
> >                  U eee_make_desc
> >                  U eee_mktime
> >                  U eee_nextBuf
> >                  U eee_rcvContigData
> >                  U eee_registerReceiveFunc
> >                  U eee_rtc
> >                  U eee_rtcGMT
> >                  U eee_rtcToGMT
> >                  U eee_sendFragmentedMessage
> >                  U eee_sendMessage
> >                  U eee_skipBufsFromStart
> >                  U eee_timerCreate
> >                  U eee_timerDestroy
> >                  U eee_timerStart
> >                  U eee_timerStop
> >                  U eee_timestamp
> >                  U elog
> >                  U esm_currEsmCanYield
> >                  U esm_deliverEvent
> >                  U esm_destroy
> >                  U esm_getCurrHandle
> >                  U esm_getInstFromHandle
> >                  U esm_instantiate
> >                  U esm_yield
> >                  U in_aton
> >                  U kfree
> >                  U kmem_cache_alloc
> >                  U kmem_cache_create
> >                  U kmem_cache_free
> >                  U kmem_cache_zalloc
> >                  U localtime
> >                  U luc_sndGmcData
> >                  U malloc_sizes
> >                  U memcmp
> >                  U memcpy
> >                  U memmove
> >                  U memorysize_MB
> >                  U memset
> >                  U mm_isMallocBuffer
> >                  U nfxMyCPUId
> >                  U nfxMySlotId
> >                  U panic
> >                  U pkt_acpu_alloc
> >                  U pkt_acpu_free
> >                  U pkt_acpu_free_chain
> >                  U pkt_acpu_free_list
> >                  U pkt_acpu_send
> >                  U pkt_acpu_send_slow
> >                  U pkt_acpu_wait
> >                  U pkt_align
> >                  U pkt_free
> >                  U pkt_freePkt
> >                  U pkt_free_chain_except_first
> >                  U pkt_raddr
> >                  U pkt_reuse_request_packet_for_reply
> >                  U pkt_rport
> >                  U pkt_usable_len
> >                  U pq_adjust
> >                  U pq_alignAtOffset
> >                  U pq_alloc_packets
> >                  U pq_append_queue
> >                  U pq_copyBufPkt
> >                  U pq_copyEdescPkt
> >                  U pq_copyPkt
> >                  U pq_discard
> >                  U pq_init_from_packet
> >                  U pq_is_contig
> >                  U pq_make_empty
> >                  U pq_pad
> >                  U pq_pullup
> >                  U pq_pullup_finish
> >                  U pq_seek_to
> >                  U pq_split_current_packet_left
> >                  U pq_split_current_packet_right
> >                  U pq_usable_len
> >                  U pq_validate
> >                  U pq_validate_after_alloc
> >                  U print_stack_trace
> >                  U printf
> >                  U printk
> >                  U random32
> >                  U req_alloc_packet
> >                  U req_alloc_packet_continue
> >                  U req_copy_cod_entry
> >                  U req_copy_dcaches
> >                  U req_copy_dcaches_compact_proc
> >                  U req_copy_dcaches_cont
> >                  U req_copy_dcaches_wait_pending
> >                  U rmc_alloc_msg
> >                  U rmc_call
> >                  U rmc_clear_nodealloc
> >                  U rmc_client_init
> >                  U rmc_copy_buf_into_msg
> >                  U rmc_free_msg
> >                  U rmc_init_ex
> >                  U rmc_lookup_sess
> >                  U rmc_msg_buf
> >                  U rmc_msg_make_contig
> >                  U rmc_msg_truncate
> >                  U rmc_printf
> >                  U rmc_register_free_fn
> >                  U rmc_reply
> >                  U rmc_send
> >                  U rmc_server_init
> >                  U rmc_wrap_nonrmc_in
> >                  U save_stack_trace
> >                  U simple_strtol
> >                  U simple_strtoul
> >                  U snprintf
> >                  U sprintf
> >                  U srandom32
> >                  U sscanf
> >                  U strcasecmp
> >                  U strcat
> >                  U strchr
> >                  U strcmp
> >                  U strcpy
> >                  U strlen
> >                  U strncasecmp
> >                  U strnchr
> >                  U strncmp
> >                  U strncpy
> >                  U strrchr
> >                  U strstr
> >                  U tpl_bindReq
> >                  U tpl_delConnAck
> >                  U tpl_delConnReq
> >                  U tpl_unbindReq
> >                  U txrx_request_complete
> >                  U txrx_requests_pending
> >                  U vmalloc_node
> >                  U vs_endp
> >                  U vsprintf
> 
> Folks:
> 
> Above is the list of undefined externals Larry got after building the
> TXRX module without the TPL/NETEEE2/NETEEE-UI directories commented
> out under the code tree.
> 
> This is pretty consistent with what I expected.
> 
> Below is the attached version of the list, tracking down
> various symbols in different places. There are still
> some unknowns that I haven't tracked down.
> 
> In addition, there are some that normally reside in
> Linux libc, but are variants under the sm-libc code
> which was the BSD libc code. These need some work.
> 
> I ahve converted the BSD string library Rick recoded
> and moved those used by the rcon shell into str-utils.c
> under the neteee-ui directory.

None of this should be necessary, including the export_symbol thing,
since this module used to compile.  Bill, there were many
things in your checkin that needed to be fixed before you checked it
in: you should have waitied for my review.  In any event, those things
need to be fixed, and then the module needs to be built the right way in
order to solve this problem.

My connection is poor here in the airport so I'll send more details once
I get back.  our flight was delayed an hour and a half.


> I will add the EXPORT_SYMBOL()
> macro's to the various kernel files in order to address
> the symbols contained under tpl/neteee2 and neteee-ui
> directories. However there remains others
> 
> This should help in the next step of getting the
> TXRX to module load.
> 
> Rendell is working on a Virtual Server module,
> and he pointed out this might be one of the circular
> dependencies Andy noted. Both the NFS/CIFS/NETBIOS
> code calling into the VS as well as the VS calling
> various NFS/CIFS/NETBIOS initialization functions.
> 
> These are probably in addition to the huge static
> arrays that need to be either eliminated or cut
> down.
> 
> Anyone volunteering to hack the TXRX module to make
> some of these changes?
> 
> Comments?
> 
> later,
> 
> -- Bill
