Re: [vpp-dev] Race condition between bihash deletion and searching - misuse or bug?

2023-03-15 Thread Andrew Yourtchenko
Hao, I noticed the same behavior when stress-testing the multi thread session handling for the ACL plugin a while ago. I thought this trade off is there to avoid having to do the hard locks in bihash code, rather than it being a bug. As you say - the special value comes only if the deletion is

Re: [vpp-dev] Race condition between bihash deletion and searching - misuse or bug?

2023-03-15 Thread Hao Tian
Hi Dave, Thanks for your work. I am ready to test whenever needed. Best regards, Hao Tian From: vpp-dev@lists.fd.io on behalf of Dave Barach Sent: Thursday, March 16, 2023 7:02 AM To: vpp-dev@lists.fd.io Subject: Re: [vpp-dev] Race condition between

Re: [vpp-dev] Race condition between bihash deletion and searching - misuse or bug?

2023-03-15 Thread Hao Tian
Hi Andrew, Thanks for the insight, the idea about treating it as optimization is quite interesting. This is fine for newly added code, but I'm a bit concerned about existing code - there are a lot of bihash callers that use the value from bihash as vec/pool/... index as long as the search

Re: [vpp-dev] Race condition between bihash deletion and searching - misuse or bug?

2023-03-15 Thread Dave Barach
I'm doing a bit of work to straighten out the template, hopefully without causing a measurable performance regression. Hao's test code is a bit of a corner-case: there is exactly one record in the database which the code thrashes as hard as possible. D. -Original Message- From:

[vpp-dev] VPP not dropping packets with incorrect vlan tags on untagged interface

2023-03-15 Thread Krishna, Parameswaran via lists.fd.io
Hi Experts, I'm using VPP v22.02.0-26. I have a physical interface TwentyFiveGigabitEthernet3/0/0/4096 in bridge-domain 10(untagged) and I have configured "l2 efp-filter" on all the interfaces. I expected that at the ingress of interface TwentyFiveGigabitEthernet3/0/0/4096, only untagged

Re: [vpp-dev] Race condition between bihash deletion and searching - misuse or bug?

2023-03-15 Thread Dave Barach
Doubling the number of atomic ops was expected to cause a severe performance regression. This hack demonstrates that the test code wasn't responsible. A bit of extra suspicion in clib_bihash_search_inline_2_with_hash() will likely solve the problem without the huge performance regression. D.

Re: [vpp-dev] Race condition between bihash deletion and searching - misuse or bug?

2023-03-15 Thread Hao Tian
Hi, I tried but could not come up with any way that is able to ensure the kvp being valid upon return without using the full bucket lock. Maybe we can make a copy of the value before returning, validate the copy and return that copy instead. Critical section can be shrinked to cover only the