[PATCH 3/3] resolv: Optimize inet_ntop

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Wed Jun 4 14:13:01 GMT 2025



On 03/06/25 19:32, Collin Funk wrote:
> Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
> 
>> The performance results on aarch64 Neoverse1 with gcc 14.2.1:
>>
>> * master
>>
>> aarch64-linux-gnu-master$ ./benchtests/bench-inet_ntop_ipv4
>>   "inet_ntop_ipv4": {
>>    "workload-ipv4-random": {
>>     "duration": 1.43067e+09,
>>     "iterations": 8e+06,
>>     "reciprocal-throughput": 178.572,
>>     "latency": 179.096,
>>     "max-throughput": 5.59997e+06,
>>     "min-throughput": 5.58359e+06
>>    }
>> aarch64-linux-gnu-master$ ./benchtests/bench-inet_ntop_ipv6
>>   "inet_ntop_ipv6": {
>>    "workload-ipv6-random": {
>>     "duration": 1.68539e+09,
>>     "iterations": 4e+06,
>>     "reciprocal-throughput": 421.307,
>>     "latency": 421.388,
>>     "max-throughput": 2.37357e+06,
>>     "min-throughput": 2.37311e+06
>>    }
>>   }
>>
>> * patched
>>
>> aarch64-linux-gnu$ ./benchtests/bench-inet_ntop_ipv4
>>   "inet_ntop_ipv4": {
>>    "workload-ipv4-random": {
>>     "duration": 1.06324e+09,
>>     "iterations": 4.4e+07,
>>     "reciprocal-throughput": 24.1509,
>>     "latency": 24.178,
>>     "max-throughput": 4.14063e+07,
>>     "min-throughput": 4.13599e+07
>>    }
>> aarch64-linux-gnu$ ./benchtests/bench-inet_ntop_ipv6
>>   "inet_ntop_ipv6": {
>>    "workload-ipv6-random": {
>>     "duration": 1.08476e+09,
>>     "iterations": 2.4e+07,
>>     "reciprocal-throughput": 45.2794,
>>     "latency": 45.1174,
>>     "max-throughput": 2.20851e+07,
>>     "min-throughput": 2.21644e+07
>>    }
>>   }
>>
>> Checked on aarch64-linux-gnu and x86_64-linux-gnu.
>> ---
>>  resolv/inet_ntop.c | 134 +++++++++++++++++++++++++++++----------------
>>  1 file changed, 87 insertions(+), 47 deletions(-)
> 
> This part of the patch series looks good to me. So:
> 
> Reviewed-by: Collin Funk <collin.funk1@gmail.com>

Thanks.

> 
> I see similar results as well:
> 
>     $ grep '^model name' /proc/cpuinfo | sed 1q
>     model name	: AMD Ryzen 7 3700X 8-Core Processor
>     $ gcc --version | sed 1q
>     gcc (GCC) 15.1.1 20250521 (Red Hat 15.1.1-2)
>     # Pre patch
>     $ cat benchtests/bench.out 
>     {"timing_type": "hp_timing",
>      "functions": {
>       "inet_ntop_ipv4": {
>        "workload-ipv4-random": {
>         "duration": 3.94723e+09,
>         "iterations": 8e+06,
>         "reciprocal-throughput": 492.274,
>         "latency": 494.534,
>         "max-throughput": 2.03139e+06,
>         "min-throughput": 2.0221e+06
>        }
>       }
>     ,
>       "inet_ntop_ipv6": {
>        "workload-ipv6-random": {
>         "duration": 4.67659e+09,
>         "iterations": 4e+06,
>         "reciprocal-throughput": 1164.13,
>         "latency": 1174.17,
>         "max-throughput": 859010,
>         "min-throughput": 851668
>        }
>       }
>     
>      }
>     }
>     # Post patch
>     $ cat benchtests/bench.out 
>     {"timing_type": "hp_timing",
>      "functions": {
>       "inet_ntop_ipv4": {
>        "workload-ipv4-random": {
>         "duration": 3.67214e+09,
>         "iterations": 8.4e+07,
>         "reciprocal-throughput": 43.7862,
>         "latency": 43.6457,
>         "max-throughput": 2.28382e+07,
>         "min-throughput": 2.29118e+07
>        }
>       }
>     ,
>       "inet_ntop_ipv6": {
>        "workload-ipv6-random": {
>         "duration": 3.9483e+09,
>         "iterations": 3.6e+07,
>         "reciprocal-throughput": 109.916,
>         "latency": 109.434,
>         "max-throughput": 9.09786e+06,
>         "min-throughput": 9.13793e+06
>        }
>       }
>     
>      }
>     }
>     
> Thanks,
> Collin



More information about the Libc-alpha mailing list