Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 May 2014 01:48:11 -0300
From:      Fred Pedrisa <fredhps10@hotmail.com>
To:        "'Adrian Chadd'" <adrian@freebsd.org>
Cc:        'freebsd-current' <freebsd-current@freebsd.org>, 'Jan Bramkamp' <crest@rlwinm.de>
Subject:   RES: KQueue vs Select (NetMap)
Message-ID:  <COL131-DS1365793231D36C08BC1079B0240@phx.gbl>
In-Reply-To: <CAJ-VmomB=30k1T8u6p1Zd-eQhhkb1FygX87OrTpziHe0gYPC8w@mail.gmail.com>
References:  <COL131-DS24C9EC384D928E5FEB71C3B0240@phx.gbl>	<00c301cf7aee$b00caea0$10260be0$@rlwinm.de>	<COL131-DS25BDC42287725E7A2D3344B0240@phx.gbl> <CAJ-VmomB=30k1T8u6p1Zd-eQhhkb1FygX87OrTpziHe0gYPC8w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@gmail.com [mailto:adrian.chadd@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@hotmail.com> wrote:
> Hello,
>
> Yes, but kqueue support was added in recent commits as it says in the=20
> netmap changelog, is there any advantage ?
>
> -----Mensagem original-----
> De: owner-freebsd-current@freebsd.org
> [mailto:owner-freebsd-current@freebsd.org] Em nome de Jan Bramkamp=20
> Enviada em: quinta-feira, 29 de maio de 2014 00:30
> Para: freebsd-current@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=20
> 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.=20
> It is mostly used by application dealing with a large amount of=20
> non-blocking sockets (or other file descriptors). It reduces overhead=20
> inherent in
> select() and poll() by preserving state between calls. It also=20
> supports multiple types of events (read ready, write ready, timer=20
> 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=20
> 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=20
> FreeBSD IP stack.
> _______________________________________________
> freebsd-current@freebsd.org mailing list=20
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to =
"freebsd-current-unsubscribe@freebsd.org"
>
> _______________________________________________
> freebsd-current@freebsd.org mailing list=20
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to =
"freebsd-current-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?COL131-DS1365793231D36C08BC1079B0240>