On 7/27/10 5:28 PM, Tristan Cheever (tcheever) wrote:
> One more note...
>
> I added printk to fc_frame_alloc and fc_frame_free to show the number of
> frames allocated vs freed.
>
> Without Direct I/O: Number of allocated frames is much greater than
> number freed.
> With Direct I/O: They are identical
>
> When going through the code, it seemed as though not all frames are
> freed via fc_frame_free.

The fc_frames are actually sk_buffs, so when frames are sent out
the ethernet they'll be freed by kfree_skb() or something like that.
Frames received by Ethernet are usually converted into fc_frames
and freed by fc_frame_free().  Maybe we should call them sk_buffs
everywhere, but we don't.

One could add a destructor function to the sk_buffs to count them
being freed.

Are you doing dd with and without iflag=direct and noticing that
difference?

I wonder if the difference might be the I/O size.  With direct I/O
are you doing 512-byte reads or writes?   Maybe you could try 4K
or larger and see if they're still different.

Not sure what's going on here.

        Joe


_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to