Re: KQueue vs Select (NetMap)

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Wed, 28 May 2014 21:49:59 -0700
On 28 May 2014 21:48, Fred Pedrisa <fredhps10_at_hotmail.com> wrote:
> Hello,
>
> Ok, but in practice, is there any performance gain by moving from select to kQueue implementation ? Or is it not significant at all ?
>
> -----Mensagem original-----
> De: adrian.chadd_at_gmail.com [mailto:adrian.chadd_at_gmail.com] Em nome de Adrian Chadd
> Enviada em: quinta-feira, 29 de maio de 2014 01:46
> Para: Fred Pedrisa
> Cc: Jan Bramkamp; freebsd-current
> Assunto: Re: KQueue vs Select (NetMap)
>
> The advantage is being able to include it in the rest of a kqueue IO loop where it's doing other things.
>
>
> -a
>
> On 28 May 2014 20:53, Fred Pedrisa <fredhps10_at_hotmail.com> wrote:
>> Hello,
>>
>> Yes, but kqueue support was added in recent commits as it says in the
>> netmap changelog, is there any advantage ?
>>
>> -----Mensagem original-----
>> De: owner-freebsd-current_at_freebsd.org
>> [mailto:owner-freebsd-current_at_freebsd.org] Em nome de Jan Bramkamp
>> Enviada em: quinta-feira, 29 de maio de 2014 00:30
>> Para: freebsd-current_at_freebsd.org
>> Assunto: Re: KQueue vs Select (NetMap)
>>
>>
>> On 29.05.2014 03:04, Fred Pedrisa wrote:
>>> Hey Guys,
>>>
>>>
>>>
>>> How does kQueue performs over select with netmap ?
>> You are asking for a comparison between apples and oranges. Netmap is
>> an API for high performance access to the low-level features of modern
>> NICs. It works on batches of frames in hardware queues.
>>
>> The kqueue() and kevent() system calls are an event notification API.
>> It is mostly used by application dealing with a large amount of
>> non-blocking sockets (or other file descriptors). It reduces overhead
>> inherent in
>> select() and poll() by preserving state between calls. It also
>> supports multiple types of events (read ready, write ready, timer
>> expired, async i/o, etc.).
>>
>> Afaik the netmap pseudo-device supports only select() and poll(). This
>> is no performance problem because every thread will only deal with a
>> small number of file descriptors to netmap devices.
>>
>> Netmap is designed to bypass the FreeBSD IP stack (for most frames).
>> Kqueue is designed to scale to many sockets per process within the
>> FreeBSD IP stack.
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>>
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Thu May 29 2014 - 02:50:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:49 UTC