Paul Durrant wrote:
> On 11/05/07, Cathy Zhou <Cathy.Zhou at sun.com> wrote:
>> Think about this more, one question comes up:
>>
>> Based on the Nemo design doc, no traffic is allowed before m_start() 
>> entry
>> point is called. But the aggr driver calls mac_start() to start each 
>> port's
>> MAC only in aggr_m_start(), when the aggregation is plumbed.
>>
>> How LACP traffic is able to get through before m_start() is called.
> 
> Indeed. Looks like I was wrong. The underlying MACs are not started
> until the aggregation is started. The RX function is hooked earlier on
> but no traffic should be passed up before the m_start entry point is
> called. Might be worth checking this really is the case though.
> 
If so, I guess there is some bug in the aggr driver. I hit a panic which 
shows the port is not started, but the aggregation is already trying to send 
packets in lacp_xmit_sm().

Nicolas,

Can you comment on this?

Thanks
- Cathy

---------------------------------------

 > ffffffff92c35a48::print aggr_port_t lp_state lp_started
lp_state = 2 (AGGR_PORT_STATE_ATTACHED)
lp_started = 0

 > $C
ffffff00076efa90 vpanic()
ffffff00076efae0 assfail+0x7e(fffffffff7e721a8, fffffffff7e72180, 21f)
ffffff00076efb20 lacp_xmit_sm+0x187(ffffffff92c35a48)
ffffff00076efb50 periodic_timer_pop_locked+0x60(ffffffff92c35a48)
ffffff00076efb80 periodic_timer_pop+0x33(ffffffff92c35a48)
ffffff00076efbd0 callout_execute+0xb1(fffffffecc5db000)
ffffff00076efc60 taskq_thread+0x1dc(fffffffecb457698)
ffffff00076efc70 thread_start+8()

Reply via email to