<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl/test/lhash_test.c, branch dependabot/github_actions/actions/setup-python-7</title>
<subtitle>TLS/SSL and crypto library.</subtitle>
<id>http://git.bktus.com/gpgfrontend/openssl/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/openssl/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/'/>
<updated>2026-05-21T09:09:28Z</updated>
<entry>
<title>Add mfail test for ossl_ht_free</title>
<updated>2026-05-21T09:09:28Z</updated>
<author>
<name>Jakub Zelenka</name>
<email>jakub.zelenka@openssl.foundation</email>
</author>
<published>2026-05-12T18:27:38Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=fad1c77059655e646c5caaf41a6435123e2fe17e'/>
<id>urn:sha1:fad1c77059655e646c5caaf41a6435123e2fe17e</id>
<content type='text'>
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
MergeDate: Thu May 21 09:09:37 2026
(Merged from https://github.com/openssl/openssl/pull/31237)
</content>
</entry>
<entry>
<title>Add various MFAIL tests to excercise ht insert</title>
<updated>2026-05-11T08:21:48Z</updated>
<author>
<name>Jakub Zelenka</name>
<email>jakub.zelenka@openssl.foundation</email>
</author>
<published>2026-05-05T17:56:34Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=658181faa860aa3902b1f5e486e76d3b938ec342'/>
<id>urn:sha1:658181faa860aa3902b1f5e486e76d3b938ec342</id>
<content type='text'>
Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
MergeDate: Mon May 11 08:21:56 2026
(Merged from https://github.com/openssl/openssl/pull/31092)
</content>
</entry>
<entry>
<title>Add ability to extract computed hash from hashtable</title>
<updated>2026-03-24T16:22:47Z</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@openssl.org</email>
</author>
<published>2026-03-01T20:18:30Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=060193019ae75ca4dea1a8c14092502d48ea8500'/>
<id>urn:sha1:060193019ae75ca4dea1a8c14092502d48ea8500</id>
<content type='text'>
One thing we can do to speed up hash table lookups is to cache/reuse
computed hash values when interrogating a hash table multiple times in
rapid succession.

We follow this pattern frequently when using hashtables:

value = lookup_hash(key)
if (value == NULL)
 value = new_value()
 insert_to_hash(key, value)

Note that we use the same key for the lookup and the insert.  So if we
had a way to preserve the value this key hashed to, we can avoid having
to do a second hash computation during the lookup.

These new macros give us that.  The HT_KEY structure now stores the
computed hash value in the key, which can be extracted and reused by the
caller with the HT_INIT_KEY_CACHED macro.  When set, the cached hash
value is used, rather than needing to recompute the hash for any
subsequent operations

Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
Reviewed-by: Saša Nedvědický &lt;sashan@openssl.org&gt;
MergeDate: Tue Mar 24 16:23:05 2026
(Merged from https://github.com/openssl/openssl/pull/30254)
</content>
</entry>
<entry>
<title>Defang the lhash test</title>
<updated>2025-12-17T13:45:38Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2025-12-15T17:42:28Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=131c2a1adba13fa549e68dc3ebeb8447b8667348'/>
<id>urn:sha1:131c2a1adba13fa549e68dc3ebeb8447b8667348</id>
<content type='text'>
This is bascially eating my mac, as it now runs for 80 seconds
and eats all the CPU's exercising lock contention.

This dials it back to consume at most a quarter of the CPU's in
use by HARNESS_JOBS, unless LHASH_WORKERS is set to override it
in which case we use that.

Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Tom Cosgrove &lt;tom.cosgrove@arm.com&gt;
(Merged from https://github.com/openssl/openssl/pull/29406)
</content>
</entry>
<entry>
<title>4.0-POST-CLANG-FORMAT-WEBKIT</title>
<updated>2025-12-09T07:28:19Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2025-12-09T07:08:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=2fab90bb5e1937f1c2125eab144f7f6c39e70087'/>
<id>urn:sha1:2fab90bb5e1937f1c2125eab144f7f6c39e70087</id>
<content type='text'>
Reviewed-by: Saša Nedvědický &lt;sashan@openssl.org&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/29242)
</content>
</entry>
<entry>
<title>hashtable: add option to disable RCU locks</title>
<updated>2025-10-02T12:05:02Z</updated>
<author>
<name>Nikola Pajkovsky</name>
<email>nikolap@openssl.org</email>
</author>
<published>2025-09-25T16:32:17Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=512f176185ebcd98810e181601fcaf7f340439e9'/>
<id>urn:sha1:512f176185ebcd98810e181601fcaf7f340439e9</id>
<content type='text'>
a new config option _no_rcu_ is added into HT_CONFIG. When _no_rcu_ is
set then hashtable can be guarded with any other locking primitives,
and behives as ordinary hashtable. Also, all the impact of the
atomics used internally to the hash table was mitigated.

RCU performance

   # INFO:  @ test/lhash_test.c:747
   # multithread stress runs 40000 ops in 40.779656 seconds

No RCU, guarded with RWLOCK

   # INFO:  @ test/lhash_test.c:747
   # multithread stress runs 40000 ops in 36.976926 seconds

Signed-off-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;

Reviewed-by: Saša Nedvědický &lt;sashan@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/28677)
</content>
</entry>
<entry>
<title>hashtable: pass HT into hash function</title>
<updated>2025-10-02T12:04:47Z</updated>
<author>
<name>Nikola Pajkovsky</name>
<email>nikolap@openssl.org</email>
</author>
<published>2025-09-24T15:12:39Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=18763ea15507ecd3cb24d717fd6e738223272391'/>
<id>urn:sha1:18763ea15507ecd3cb24d717fd6e738223272391</id>
<content type='text'>
When defining a custom hash function for a hashtable key, you typically start with:

  HT_START_KEY_DEFN(key)
  HT_DEF_KEY_FIELD(k, unsigned char *)
  HT_END_KEY_DEFN(KEY)

In this setup, the hash function signature requires keybuf and len as
parameters rather than the hashtable key itself. As a result,
accessing members of the hashtable structure becomes awkward, since
you must do something like:

  #define FROM_KEYBUF_TO_HT_KEY(keybuf, type) (type)((keybuf) - sizeof(HT_KEY))

  static uint64_t ht_hash(uint8_t *keybuf, size_t keylen)
  {
      KEY *k = FROM_KEYBUF_TO_HT_KEY(keybuf, KEY *);
      ...
  }

This kind of pointer arithmetic is both unnecessary and error-prone.
A cleaner approach is to pass the HT pointer directly into the hash
function. From there, you can safely cast it to the required type
without the pointer gymnastics.

Signed-off-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;

Reviewed-by: Saša Nedvědický &lt;sashan@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/28677)
</content>
</entry>
<entry>
<title>Fix failure checking on rcu_read_lock</title>
<updated>2025-08-09T13:22:13Z</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@openssl.org</email>
</author>
<published>2025-08-07T13:50:58Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=036a46d2a4b00a004d05dc6a6d19be7184f8ecf1'/>
<id>urn:sha1:036a46d2a4b00a004d05dc6a6d19be7184f8ecf1</id>
<content type='text'>
during memfail testing:
https://github.com/openssl/openssl/actions/runs/16794088536/job/47561223902

We get lots of test failures in ossl_rcu_read_lock.  This occurs
because we have a few cases in the read lock path that attempt mallocs,
which, if they fail, trigger an assert or a silent failure, which isn't
really appropriate.  We should instead fail gracefully, by informing the
caller that the lock failed, like we do for CRYPTO_THREAD_read_lock.

Fortunately, these are all internal apis, so we can convert
ossl_rcu_read_lock to return an int indicating success/failure, and fail
gracefully during the test, rather than hitting an assert abort.

Fixes openssl/project#1315

Reviewed-by: Paul Yang &lt;paulyang.inf@gmail.com&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
Reviewed-by: Paul Dale &lt;ppzgs1@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/28195)
</content>
</entry>
<entry>
<title>test: Silence warnings on Win64 builds</title>
<updated>2025-07-02T15:26:26Z</updated>
<author>
<name>Tomas Mraz</name>
<email>tomas@openssl.org</email>
</author>
<published>2025-06-18T09:59:04Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=a3af1c036cd25da58017d59a375f7de8ccbd9fd8'/>
<id>urn:sha1:a3af1c036cd25da58017d59a375f7de8ccbd9fd8</id>
<content type='text'>
Reviewed-by: Saša Nedvědický &lt;sashan@openssl.org&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/27806)
</content>
</entry>
<entry>
<title>Copyright year updates</title>
<updated>2025-03-12T13:35:59Z</updated>
<author>
<name>openssl-machine</name>
<email>openssl-machine@openssl.org</email>
</author>
<published>2025-03-12T13:35:59Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=0c679f556669e32499a827a081afe3bcf973c9ad'/>
<id>urn:sha1:0c679f556669e32499a827a081afe3bcf973c9ad</id>
<content type='text'>
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Matt Caswell &lt;matt@openssl.org&gt;
Release: yes
</content>
</entry>
</feed>
