> -----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