> -----Original Message-----
> From: Jeff Kirsher [mailto:jeffrey.t.kirs...@intel.com]
> Sent: Tuesday, March 10, 2015 6:38 AM
> To: Bob Liu
> Cc: e1000-devel; Tantilov, Emil S
> Subject: Re: [E1000-devel] ixgbe: kernel BUG at include/linux/mm.h
> 
> On Tue, 2015-03-10 at 21:29 +0800, Bob Liu wrote:
> > > Would you mind sending your actual test cases to prove that the page
> > > is free when calling _skb_frag_unref
> >
> > I'm afraid not, it's a complex testing program and difficult to run on
> > external environment because of many dependencies.
> >
> > > from the ixgbe code. This seems like a viable area this would be
> > going
> > > wrong and we need synchronization
> > > for packets calling dev_kfree_skb_any in ixgbe_clean_tx_irq if this
> > is
> > > happening.
> >
> > Since it's a iSCSI device, I'd like to know whether ixgbe driver will
> > notifiy the upper layer "transmit package complete" before
> > dev_kfree_skb_any()?
> >
> > The situation I'm worry about is like this:
> >
> > block driver:                               net driver:
> > submit_bio()
> >
> > ixgbe_xmit_frame_ring()
> >                                                 notify block driver tx
> > done
> >
> > bio_done()
> > {
> >     free_page()
> > }
> >
> >                                                  dev_kfree_skb_any()
> >                                                  ^^^ Here the page
> > already freed by block driver.
> 
> Bob-
> I am sorry you had to deal with Nick.  He is not an Intel developer, even
> though he talks as if he was.  He has now been banned from our mailing list
> (this has been coming for some time now).
> 
> In a few hours, most of the ixgbe developers will be in the office and can
> assist you with your questions/inquiries.
> 
> Cheers,
> Jeff
Hi Bob,

There is really no way for a base Ethernet driver to do this.  There is no 
kernel interface for it.  It's the drivers responsibility to free the skb and 
any associated buffers on transmit.  So I have to ask, why are you freeing a 
buffer (page) that you have sent off to be transmitted?  Normally once a buffer 
is sent down the stack to be transmitted the agent sending stops worrying about 
it and leaves it to the stack to free once it's been transmitted.

Cheers,
John


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to