On 25/03/2021 14:30, Thomas Monjalon wrote: > 07/12/2020 12:08, wangyunjian: >> From: Yunjian Wang <wangyunj...@huawei.com> >> >> Currently, user mem maps will check if the newly mapped area is adjacent >> to any existing mapping, but will not check if the mapping is identical >> because it assumes that the API will never get called with the same >> mapping twice. This will result in duplicate entries in the user mem >> maps list. >> >> Fix it by also checking for duplicate mappings, and skipping them if >> they are found. > > Sorry, that's still difficult to read, > and it is not clear what is the impact of the bug. >
I agree the impact of the bug is not clear from the description. It seems to be explained at a low level in http://inbox.dpdk.org/dev/34efbca9f01b0748beb6b629ce643ae60db32...@dggemm533-mbx.china.huawei.com/ that the array size is 256 (VFIO_MAX_USER_MEM_MAPS) and it may fill up due to duplicate mem maps. How about something like: -- New user mem maps are checked if they are adjacent to an existing mem map and if so, the mem map entries are merged. It did not check for duplicate mem maps, so if the API is called with the same mem map multiple times, they will occupy multiple mem map entries. This will reduce the amount of entries available for unique mem maps. Check for duplicate mem maps and merge them into one mem map entry if any found. -- You might want to add something about the possible impact for applications that is being fixed here too. > +Cc some english native speakers for help. (Probably the worst people to ask) > >> Fixes: 0cbce3a167f1 ("vfio: skip DMA map failure if already mapped") >> Cc: sta...@dpdk.org >> >> Signed-off-by: Yunjian Wang <wangyunj...@huawei.com> >> Acked-by: Anatoly Burakov <anatoly.bura...@intel.com> > > >