FreeBSD & Linux disk AIO support

Igor Sysoev is at rambler-co.ru
Mon Aug 31 09:03:45 MSD 2009


On Sun, Aug 30, 2009 at 11:40:57PM +0200, Valery Kholodkov wrote:

> Igor Sysoev пишет:
> >Патч сейча сделать не могу, просто уберите:
> >
> >         if (events == 0) {
> >-            ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
> >-                          "io_getevents() did not return %uL events", 
> >ready);
> >             return;
> >         }
> >
> >
> >18446744073709551615 - это -1. Там похоже, есть небольшой race condition,
> >когда io_getevents() сначала возвращает на одно событие больше, чем
> >сообщил eventfd(), а потом - на одно событие меньше.
> 
> Вот кстати, если уж тут началось такое интенсивное использование 
> eventfd, то почему бы семафоры (или как вы их там называете -- busy 
> locks) не сделать на eventfd?
> 
> А именно, если завершилось получение ресурса, которого ждут запросы из 
> другого воркера, то возобновлять их через eventfd?

Чтобы это работало только в Linux 2.6.22+ ?
Да я даже отдладить это не cмогу.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list