From: amit sehas <cun23@yahoo.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: Nishant Verma <vnish11@gmail.com>, "users@dpdk.org" <users@dpdk.org>
Subject: Re: core performance
Date: Thu, 26 Sep 2024 16:56:04 +0000 (UTC) [thread overview]
Message-ID: <47151973.13053687.1727369764729@mail.yahoo.com> (raw)
In-Reply-To: <810098753.12902128.1727353971978@mail.yahoo.com>
Belos is the lscpu that was requested, it appears to suggest an 8 vCPU thread setup ... if am reading it correctly:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: GenuineIntel
BIOS Vendor ID: Intel(R) Corporation
Model name: Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
BIOS Model name: Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
CPU family: 6
Model: 85
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Stepping: 7
BogoMIPS: 4999.99
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 cl
flush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc re
p_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclm
ulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_t
imer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpci
d_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx5
12f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xs
aveopt xsavec xgetbv1 xsaves ida arat pku ospke
Virtualization features:
Hypervisor vendor: KVM
Virtualization type: full
Caches (sum of all):
L1d: 128 KiB (4 instances)
L1i: 128 KiB (4 instances)
L2: 4 MiB (4 instances)
L3: 35.8 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-7
Vulnerabilities:
Gather data sampling: Unknown: Dependent on hypervisor status
Itlb multihit: KVM: Mitigation: VMX unsupported
L1tf: Mitigation; PTE Inversion
Mds: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unkn
own
Meltdown: Mitigation; PTI
Mmio stale data: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unkn
own
Reg file data sampling: Not affected
Retbleed: Vulnerable
Spec rstack overflow: Not affected
Spec store bypass: Vulnerable
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affec
ted; BHI Retpoline
Srbds: Not affected
Tsx async abort: Not affected
On Thursday, September 26, 2024 at 05:32:52 AM PDT, amit sehas <cun23@yahoo.com> wrote:
Simply reordering the launch of different threads brings back a lot of the lost performance, this is a clear evidence that some CPU threads are more predisposed to context switches than the others.
This is a thread scheduling issue at the CPU level as we have expected. In a previous exchange someone has suggested that utilizing rte_thread_set_priority to RTE_THREAD_PRIORITY_REALTIME_CRITICAL is not a good idea
we should be able to prioritize some threads over the other threads ... since we are utilizing rte_eal_remote_launch, one would think that such a functonality should be a part of the library ...
any ideas folks?
regards
On Tuesday, September 24, 2024 at 01:47:05 PM PDT, amit sehas <cun23@yahoo.com> wrote:
Thanks for the suggestions, so this is a database server which is doing lots of stuff, not every thread is heavily involved in dpdk packet processing. As a result the guidelines for attaining the most dpdk performance are applicable to only a few threads.
In this particular issue we are specificially looking at CPU scheduling of threads that are primarily heavily processing database queries. These threads, from our measurements, are not being uniformly scheduled on the CPU ...
This is our primary concern, since we utilized rte_eal_remote_launch to spawn the threads, we are wondering if there are any options in this API that will allow us to more uniformly allocate the CPU to threads that are critical...
regards
On Tuesday, September 24, 2024 at 09:38:16 AM PDT, Stephen Hemminger <stephen@networkplumber.org> wrote:
On Tue, 24 Sep 2024 14:40:49 +0000 (UTC)
amit sehas <cun23@yahoo.com> wrote:
> Thanks for your response, and thanks for your input on the set_priority,
>
> The best guess we have at this point is that this is not a dpdk performance issue. This is an issue with some threads running into more context switches than the others and hence not getting the same slice of the CPU. We are certain that this is not a dpdk performance issue, the code
> is uniformly slow in one thread versus the other and the threads are doing a very large amount of work including accessing databases. The threads in question are not really doing packet processing as much as other work.
>
> So this is certainly not a dpdk performance issue. This is an issue of kernel threads not being scheduled properly or in the worse case the cores running on different frequency (which is quite unlikely no the AWS Xeons we are running this on).
>
> If you are asking for the dpdk config files to check for dpdk related performance issue then we are quite certain the issue is not with dpdk performance ...
> On Mon, Sep 23, 2024 at 10:06 PM amit sehas <cun23@yahoo.com> wrote:
> > Thanks for your response, i am not sure i understand your question ... we have our product that utilizes dpdk ... the commands are just our server commands and parameters ... and the lscpu is the hyperthreaded 8 thread Xeon instance in AWS ...
The rules of getting performance in DPDK:
- use DPDK threads (pinned) for datapath
- use isolated CPU's for those DPDK threads
- do not do any system calls
- avoid floating point
You can use tracing tools like strace or BPF to see what the thread is doing.
next prev parent reply other threads:[~2024-09-26 16:56 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1987164393.11670398.1727125003663.ref@mail.yahoo.com>
2024-09-23 20:56 ` amit sehas
2024-09-23 21:56 ` Wisam Jaddo
2024-09-23 22:17 ` Nishant Verma
2024-09-23 23:17 ` amit sehas
2024-09-24 1:14 ` Nishant Verma
[not found] ` <2025533199.11789856.1727143607670@mail.yahoo.com>
[not found] ` <CAHhCjUFjqobchJ79z0BLLRXrLZdb2QyVPM6fbji6T7jpiKLa2Q@mail.gmail.com>
2024-09-24 14:40 ` amit sehas
2024-09-24 16:38 ` Stephen Hemminger
2024-09-24 20:47 ` amit sehas
2024-09-26 12:32 ` amit sehas
2024-09-26 16:56 ` amit sehas [this message]
2024-09-26 17:03 ` amit sehas
2024-09-27 3:03 ` Stephen Hemminger
2024-09-27 3:13 ` amit sehas
2024-09-27 3:23 ` amit sehas
2024-09-24 13:25 ` Stephen Hemminger
[not found] <595544330.11681349.1727123476579.ref@mail.yahoo.com>
2024-09-23 20:31 ` amit sehas
2024-09-30 15:57 ` Stephen Hemminger
2024-09-30 17:27 ` Stephen Hemminger
2024-09-30 17:31 ` amit sehas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47151973.13053687.1727369764729@mail.yahoo.com \
--to=cun23@yahoo.com \
--cc=stephen@networkplumber.org \
--cc=users@dpdk.org \
--cc=vnish11@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).