Date: Tue, 15 May 2007 12:22:08 +0530 From: <sivakumar.subramani@wipro.com> To: <freebsd-net@freebsd.org> Subject: IXGB networl driver and locking Message-ID: <821C7AD2A9F78942B8605979226257739CFBF5@blr-m3-msg.wipro.com>
next in thread | raw e-mail | index | archive | help
Hi all, =20 Same lock is being used in ixgb_intr and ixgb_start. If we get Receive interrupt while processing Xmit (ixgb_start), Will the calling of ixgb_intr() handler be delayed as we will not be getting lock in ixgb_intr since it is already locked in ixgb_start. If it is the case, are we making it as Half duplex, I mean we are allowing either of one Tx (or) Rx. Please clarify. =20 488 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L488> ixgb_start <http://fxr.watson.org/fxr/ident?i=3Dixgb_start> (struct ifnet <http://fxr.watson.org/fxr/ident?i=3Difnet> *ifp <http://fxr.watson.org/fxr/ident?i=3Difp> ) 489 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L489> { 490 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L490> struct adapter <http://fxr.watson.org/fxr/ident?i=3Dadapter> *adapter <http://fxr.watson.org/fxr/ident?i=3Dadapter> =3D ifp <http://fxr.watson.org/fxr/ident?i=3Difp> ->if_softc; 491 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L491> =20 492 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L492> IXGB_LOCK <http://fxr.watson.org/fxr/ident?i=3DIXGB_LOCK> (adapter <http://fxr.watson.org/fxr/ident?i=3Dadapter> ); 493 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L493> ixgb_start_locked <http://fxr.watson.org/fxr/ident?i=3Dixgb_start_locked> (ifp <http://fxr.watson.org/fxr/ident?i=3Difp> ); 494 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L494> IXGB_UNLOCK <http://fxr.watson.org/fxr/ident?i=3DIXGB_UNLOCK> (adapter <http://fxr.watson.org/fxr/ident?i=3Dadapter> ); 495 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L495> return; 496 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L496> } =20 =20 static void 795 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L795> ixgb_intr <http://fxr.watson.org/fxr/ident?i=3Dixgb_intr> (void *arg <http://fxr.watson.org/fxr/ident?i=3Darg> ) 796 <http://fxr.watson.org/fxr/source/dev/ixgb/if_ixgb.c#L796> { ............. ............ IXGB_LOCK <http://fxr.watson.org/fxr/ident?i=3DIXGB_LOCK> (adapter <http://fxr.watson.org/fxr/ident?i=3Dadapter> ); ..................... IXGB_UNLOCK <http://fxr.watson.org/fxr/ident?i=3DIXGB_UNLOCK> (adapter <http://fxr.watson.org/fxr/ident?i=3Dadapter> ); =20 Thanks, ~Siva The information contained in this electronic message and any attachments to= this message are intended for the exclusive use of the addressee(s) and= may contain proprietary, confidential or privileged information. If you= are not the intended recipient, you should not disseminate, distribute or= copy this e-mail. Please notify the sender immediately and destroy all= copies of this message and any attachments.=20 WARNING: Computer viruses can be transmitted via email. The recipient= should check this email and any attachments for the presence of viruses.= The company accepts no liability for any damage caused by any virus= transmitted by this email. =20 www.wipro.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?821C7AD2A9F78942B8605979226257739CFBF5>