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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to