Hi Hanlin, If a worker’s mq uses eventfds for notifications, we could nest it in libc_epfd, i.e.,the epoll fd we create for the linux fds. So, if an app's worker calls epoll_wait, in ldp we can epoll_wait on libc_epfd and if we get an event on the mq’s eventfd, we can call vls_epoll_wait with a 0 timeout to drain the events from vcl.
Having said that, keep in mind that we typically recommend that people use vcl because ldp, through vls, enforces a rather strict locking policy. That is needed in order to avoid invalidating vcl’s assumption that sessions are owned by only one vcl worker. Moreover, we’ve tested ldp only against a limited set of applications. Regards, Florin > On Oct 31, 2019, at 7:58 PM, wanghanlin <[email protected]> wrote: > > Do you mean, if just use eventfds only, then I needn't set timeout to 0 in > ldp_epoll_pwait? > If so, then how to process unhandled_evts_vector in vppcom_epoll_wait timely? > What I'm saying is, another thread add event to unhandled_evts_vector during > epoll_wait, or unhandled_evts_vector not process completely because of > reaching maxevents. > > Regards, > Hanlin > > > wanghanlin > > [email protected] > > <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=wanghanlin&uid=wanghanlin%40corp.netease.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22wanghanlin%40corp.netease.com%22%5D&logoUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyeicon%2F209a2912f40f6683af56bb7caff1cb54.png> > 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制 > On 10/31/2019 23:34,Florin Coras<[email protected]> > <mailto:[email protected]> wrote: > Hi, > > use_mq_eventfd will help with vcl but as you’ve noticed it won’t help for ldp > because there we need to poll both vcl and linux fds. Because mutex-condvar > notifications can’t be epolled we have to constantly switch between linux and > vcl epolled fds. One option going forward would be to change ldp to detect if > vcl is using mutex-condvars or eventfds and in case of the latter poll linux > fds and the mq’s eventfd in a linux epoll. > > Regards, > Florin > >> On Oct 31, 2019, at 5:54 AM, wanghanlin <[email protected] >> <mailto:[email protected]>> wrote: >> >> hi ALL, >> I found app using VCL "epoll_wait" still occupy 70% cpu with >> "use_mq_eventfd" configuration even if very little traffic. >> Then I investigate code in ldp_epoll_pwait, vls_epoll_wait is called with >> timeout equal to 0. >> Then I have two questions: >> 1. What problems can "use_mq_eventfd" solve? >> 2.Any other way to decrease cpu usage? >> Thanks! >> >> code in ldp_epoll_pwait: >> do >> { >> if (!ldpw->epoll_wait_vcl) >> { >> rv = vls_epoll_wait (ep_vlsh, events, maxevents, 0); >> if (rv > 0) >> { >> ldpw->epoll_wait_vcl = 1; >> goto done; >> } >> else if (rv < 0) >> { >> errno = -rv; >> rv = -1; >> goto done; >> } >> } >> else >> ldpw->epoll_wait_vcl = 0; >> >> if (libc_epfd > 0) >> { >> rv = libc_epoll_pwait (libc_epfd, events, maxevents, 0, sigmask); >> if (rv != 0) >> goto done; >> } >> } >> while ((timeout == -1) || (clib_time_now (&ldpw->clib_time) < max_time)); >> >> wanghanlin >> >> [email protected] >> >> <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=wanghanlin&uid=wanghanlin%40corp.netease.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22wanghanlin%40corp.netease.com%22%5D&logoUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyeicon%2F209a2912f40f6683af56bb7caff1cb54.png> >> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制 >> -=-=-=-=-=-=-=-=-=-=-=- >> Links: You receive all messages sent to this group. >> >> View/Reply Online (#14413): https://lists.fd.io/g/vpp-dev/message/14413 >> <https://lists.fd.io/g/vpp-dev/message/14413> >> Mute This Topic: https://lists.fd.io/mt/40123765/675152 >> <https://lists.fd.io/mt/40123765/675152> >> Group Owner: [email protected] <mailto:[email protected]> >> Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub >> <https://lists.fd.io/g/vpp-dev/unsub> [[email protected] >> <mailto:[email protected]>] >> -=-=-=-=-=-=-=-=-=-=-=- > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > > View/Reply Online (#14448): https://lists.fd.io/g/vpp-dev/message/14448 > <https://lists.fd.io/g/vpp-dev/message/14448> > Mute This Topic: https://lists.fd.io/mt/40351193/675152 > <https://lists.fd.io/mt/40351193/675152> > Group Owner: [email protected] <mailto:[email protected]> > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub > <https://lists.fd.io/g/vpp-dev/unsub> [[email protected] > <mailto:[email protected]>] > -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#14450): https://lists.fd.io/g/vpp-dev/message/14450 Mute This Topic: https://lists.fd.io/mt/40367295/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
