Jason Wang
2022-Jan-10 06:43 UTC
[PATCH 2/6] virtio: split: alloc indirect desc with extra
? 2022/1/7 ??2:33, Xuan Zhuo ??:> In the scenario where indirect is not used, each desc corresponds to an > extra, which is used to record information such as dma, flags, and > next. > > In the scenario of using indirect, the assigned desc does not have the > corresponding extra record dma information, and the dma information must > be obtained from the desc when unmap. > > This patch allocates the corresponding extra array when indirect desc is > allocated. This has these advantages: > 1. Record the dma information of desc, no need to read desc when unmap > 2. It will be more convenient and unified in processing > 3. Some additional information can be recorded in extra, which will be > used in subsequent patches.Two questions: 1) Is there any performance number for this change? I guess it gives more stress on the cache. 2) Is there a requirement to mix the pre mapped sg with unmapped sg? If not, a per virtqueue flag looks sufficient Thanks
On Mon, 10 Jan 2022 14:43:39 +0800, Jason Wang <jasowang at redhat.com> wrote:> > ? 2022/1/7 ??2:33, Xuan Zhuo ??: > > In the scenario where indirect is not used, each desc corresponds to an > > extra, which is used to record information such as dma, flags, and > > next. > > > > In the scenario of using indirect, the assigned desc does not have the > > corresponding extra record dma information, and the dma information must > > be obtained from the desc when unmap. > > > > This patch allocates the corresponding extra array when indirect desc is > > allocated. This has these advantages: > > 1. Record the dma information of desc, no need to read desc when unmap > > 2. It will be more convenient and unified in processing > > 3. Some additional information can be recorded in extra, which will be > > used in subsequent patches. > > > Two questions: > > 1) Is there any performance number for this change? I guess it gives > more stress on the cache.I will add performance test data in the next version.> 2) Is there a requirement to mix the pre mapped sg with unmapped sg? If > not, a per virtqueue flag looks sufficientThere is this requirement. For example, in the case of AF_XDP, a patcket contains two parts, one is virtio_net_hdr, and the other is the actual data packet from AF_XDP. The former is unmapped sg, and the latter is pre mapped sg. Thanks.> > Thanks > >