Hi Sumit,

Paul Durrant wrote:
> Sumit Gupta wrote:
>   
>> Inside gld_mac_info->gldm_capabilities, there is a flag defined as 
>> GLD_CAP_ZEROCOPY. Doing some research, it seem to map to 
>> DL_CAPAB_ZEROCOPY which means that the NIC driver is zero copy safe. 
>> What is the meaning of zero copy safe ?
>>
>>     
>
> The meaning may have changed, but when this capability was introduced 
> the meaning of it was that the driver guaranteed to complete transmits 
> in a timely fashion.
> The problem is that if you do a sendfile() and the network stack simply 
> maps the file and wraps it in a set of STREAMS blocks then it must 
> obviously hold a reference on that file; and if a driver holds onto the 
> STREAMS blocks on its transmit side then it is essentally holding that 
> file to ransom. So, if the driver exports the GLD_CAP_ZEROCOPY 
> capability then it is essentially declaring that it is not going to hold 
>   onto transmitted blocks for an unreasonable amount of time (i.e. 
> significantly longer than it takes to put them on the wire) and thus 
> will not hold a file to ransom in this way.
>   
In case you are unclear about the concept of zero copy, there is a paper 
(very dated
at this point) by Jerry Chu describing zero-copy tcp on solaris (2.6, I 
believe) at:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.31.3960

max


_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to