On Wed, Jan 27, 2016 at 06:16:37AM +0000, Xie, Huawei wrote: > On 1/27/2016 2:02 PM, Yuanhan Liu wrote: > > On Wed, Jan 27, 2016 at 05:56:56AM +0000, Xie, Huawei wrote: > >> On 1/27/2016 11:22 AM, Yuanhan Liu wrote: > >>> On Wed, Jan 27, 2016 at 02:46:39AM +0000, Xie, Huawei wrote: > >>>> On 12/3/2015 2:03 PM, Yuanhan Liu wrote: > >>>>> + if (vq->vhost_hlen == sizeof(struct virtio_net_hdr_mrg_rxbuf)) { > >>>>> + *(struct virtio_net_hdr_mrg_rxbuf > >>>>> *)(uintptr_t)desc_addr = hdr; > >>>>> + } else { > >>>>> + *(struct virtio_net_hdr *)(uintptr_t)desc_addr = > >>>>> hdr.hdr; > >>>>> + } > >>>> Thanks! > >>>> We might simplify this further. Just reset the first two fields flags > >>>> and gso_type. > >>> What's this "simplification" for? Don't even to say that we will add > >>> TSO support, which modifies few more files, such as csum_start: reseting > >>> the first two fields only is wrong here. > >> I know TSO before commenting, but at least in this implementation and > >> this specific patch, i guess zeroing two fields are enough. > >> > >> What is wrong resetting only two fields? > > I then have to ask "What is the benifit of resetting only two fields"? > > If doing so, we have to change it back for TSO. My proposal requires no > > extra change when adding TSO support. > > ? Benefit is we save four unnecessary stores.
Hmm..., the hdr size is 12 bytes at most. I mean, does it really matter, coping 3 bytes, or coping 12 bytes in a row? --yliu