From: "Chen, Hongzhan" <hongzhan.chen@intel.com>
To: "Kiszka, Jan" <jan.kiszka@siemens.com>,
"xenomai@lists.linux.dev" <xenomai@lists.linux.dev>
Subject: RE: [PATCH] testsuite: dpdk: Add l2fwd example which is based on DPDK.
Date: Thu, 2 Feb 2023 00:36:53 +0000 [thread overview]
Message-ID: <MN2PR11MB428547F18BFB15831E98B7EBF2D69@MN2PR11MB4285.namprd11.prod.outlook.com> (raw)
In-Reply-To: <32e8a845-7f5b-3e0e-db97-087e123a662f@siemens.com>
>-----Original Message-----
>From: Jan Kiszka <jan.kiszka@siemens.com>
>Sent: Tuesday, January 31, 2023 3:27 PM
>To: Chen, Hongzhan <hongzhan.chen@intel.com>; xenomai@lists.linux.dev
>Subject: Re: [PATCH] testsuite: dpdk: Add l2fwd example which is based on
>DPDK.
>
>On 31.01.23 06:10, Chen, Hongzhan wrote:
>>
>>
>>> -----Original Message-----
>>> From: Jan Kiszka <jan.kiszka@siemens.com>
>>> Sent: Thursday, January 19, 2023 1:44 AM
>>> To: Chen, Hongzhan <hongzhan.chen@intel.com>;
>xenomai@lists.linux.dev
>>> Subject: Re: [PATCH] testsuite: dpdk: Add l2fwd example which is based on
>>> DPDK.
>>>
>>> On 18.01.23 14:05, Hongzhan Chen wrote:
>>>> The L2 Forwarding sample application(l2fwd) is a simple
>>>> example of packet processing using the Data Plane
>>>> Development Kit (DPDK).
>>>
>>> Can you elaborate a bit on the envisioned use cases here and go more
>>> into details in the accompanied documentation? The latter only describes
>>> the "how", not at all the "why" (or "which use cases"). Some words on
>>> the threading model (or limitations of it) would surely be good as well
>>> ("how can I integrate this pattern into a real application?").
>>>
>>> Regarding the patch itself, you should go over it again and eliminate
>>> debugging left-overs as well as unrelated changes (there is one at least
>>> in testsuite/Makefile.am). The way of the integration looks fine to me
>>> in principle.
>>>
>>> BTW, what prevents the usage of the VFIO driver so far?
>>
>> I have not looked into and tried VFIO driver so far. Last time you told me
>that we may need to
>> develop or port VFIO related drivers if we want to use VFIO-based dpdk in
>Xenomai but UIO-based
>> does not such issue. I maybe misunderstood what you guided. If the main
>difference between uio and vfio is that vfio is capable of programming the
>platform's IOMMU as described in [1], after vfio init, there is no linux syscall
>involved during receiving and transmitting packets just as UIO case, we can do
>same thing for VFIO with ported l2fwd.
>
>I haven't looked into VFIO myself, but the key question is whether some
>userspace activity in the primary domain could trigger mapping activity
>of the driver in the secondary one. If not, VFIO should be fine. If so,
>and that was the case for some RTnet drivers, we would need to avoid
>that. I was just wondering if you explored the path already and could
>share your experience.
According to my test, the patch works [1] on I255 NIC with vfio-pci module & iommu=pt
& intel_iommu=on & VT-D enabled in BIOS. There is no mapping
activities found during receiving and transmitting packets at least in
main loop of the l2fwd case after run about 17 hours and I checked with strace log[2].
Regards
Hongzhan Chen
[1]: cat /proc/xenomai/sched/stat
CPU PID MSW CSW XSC PF STAT %CPU NAME
0 0 0 3 0 0 00218000 100.0 [ROOT/0]
1 0 0 72641414 0 0 00218000 99.9 [ROOT/1]
2 0 0 0 0 0 00218000 100.0 [ROOT/2]
3 0 0 0 0 0 00218000 100.0 [ROOT/3]
4 0 0 1 0 0 00218000 100.0 [ROOT/4]
5 0 0 2 0 0 00218000 100.0 [ROOT/5]
5 935 1 1 5 0 002680c0 0.0 l2fwd
1 954 6718 13436 6722 0 00268042 0.0 display-935
1 955 1 67171569 67178287 0 00248044 0.1 l2fwd
[2]: Strace log:
13:36:14.266949 futex(0x7ffed97d59b8, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1675258579, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = 0
13:36:14.266984 sched_get_priority_min(SCHED_FIFO) = 1
13:36:14.267004 sched_get_priority_max(SCHED_FIFO) = 99
13:36:14.267028 mmap(NULL, 69632, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1e13fef000
13:36:14.267102 mprotect(0x7f1e13ff0000, 65536, PROT_READ|PROT_WRITE) = 0
13:36:14.267347 clone(child_stack=0x7f1e13ffddf0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f1e13fff9d0, tls=0x7f1e13fff700, child_tidptr=0x7f1e13fff9d0) = 955
13:36:14.267380 sched_setaffinity(955, 128, [1]) = 0
13:36:14.267422 futex(0x7ffed97d59b8, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1675258579, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
13:36:14.267480 rt_sigtimedwait([HUP INT ALRM TERM], {si_signo=SIGINT, si_code=SI_KERNEL}, NULL, 8) = 2 (SIGINT)
08:16:50.286528 getpid() = 935
08:16:50.286556 tgkill(935, 954, SIGRTMIN) = 0
08:16:50.286586 getpid() = 935
>
>Jan
>
>>
>> Regards
>>
>> Hongzhan Chen
>>
>> [1]:
>https://spdk.io/doc/userspace.html#:~:text=The%20primary%20difference%2
>0between%20uio,User%20Space%20for%20full%20details.
>>>
>>> Jan
>>>
>>> --
>>> Siemens AG, Technology
>>> Competence Center Embedded Linux
>>
>
>--
>Siemens AG, Technology
>Competence Center Embedded Linux
>
next prev parent reply other threads:[~2023-02-02 0:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-18 13:05 [PATCH] testsuite: dpdk: Add l2fwd example which is based on DPDK Hongzhan Chen
2023-01-18 17:43 ` Jan Kiszka
2023-01-31 5:10 ` Chen, Hongzhan
2023-01-31 7:26 ` Jan Kiszka
2023-02-02 0:36 ` Chen, Hongzhan [this message]
2023-02-02 1:09 ` Chen, Hongzhan
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=MN2PR11MB428547F18BFB15831E98B7EBF2D69@MN2PR11MB4285.namprd11.prod.outlook.com \
--to=hongzhan.chen@intel.com \
--cc=jan.kiszka@siemens.com \
--cc=xenomai@lists.linux.dev \
/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).