Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Jul 2007 15:00:28 -0700 (PDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Diane Bruce <db@db.net>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: select timings
Message-ID:  <20070708145900.Y537@10.0.0.1>
In-Reply-To: <20070709004640.GA61639@night.db.net>
References:  <20070709004640.GA61639@night.db.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 8 Jul 2007, Diane Bruce wrote:

> Hi,
>
> It is a rather naive test program, close all fd's except
> for 0,1,2 of course, then open /dev/null multiple times, then do
> a select() on each descriptor.  ~db/selt.c

I should mention that select2.diff embeds a selfd in each selinfo which 
means that with no collision we avoid malloc().  selfd is the structure 
that is allocated for each file descriptor by each thread that is 
selecting.  select.diff allocates them on demand every time.  The first 
select is slower as we have to fill the uma cache but after that it's 
remarkably faster.

Thanks,
Jeff

>
> Each fd "fires" so select() goes through each bit.
>
> First two tests are with STOCK -7 kernel
>
> STOCK
> MAXFD = 1024
>
> ./selt
> First select 0 4052
> Second select 0 4011
> dark# ./selt
> First select 0 4037
> Second select 0 3991
> dark# ./selt
> First select 0 4006
> Second select 0 4018
> dark# ./selt
> First select 0 4008
> Second select 0 4583
> dark# ./selt
> First select 0 4041
> Second select 0 4012
>
> MAXFD 8192
>
> dark# ./selt
> First select 0 28736
> Second select 0 28607
> dark# ./selt
> First select 0 28655
> Second select 0 28641
> dark# ./selt
> First select 0 28629
> Second select 0 28592
> dark# ./selt
> First select 0 28890
> Second select 0 29189
> dark# ./selt
> First select 0 28629
> Second select 0 28963
> dark# ./selt
> First select 0 28960
> Second select 0 28593
> dark# ./selt
> First select 0 28622
> Second select 0 28689
>
> With Jeffr select2.diff
> MAXFD 8192
> ./selt
> First select 30328
> Second select 0 30375
> dark% ./selt
> First select 0 30423
> Second select 0 30214
> dark% ./selt
> First select 0 30444
> Second select 0 30200
> dark% ./selt
> First select 0 30362
> Second select 0 30797
> dark% ./selt
> First select 0 30372
> Second select 0 30365
>
> Using Jeffr's original select.diff
>
> with 8192 fds
> First select 0 30738
> Second select 0 28906
> dark% ./selt
> First select 0 29242
> Second select 0 28880
> dark% ./selt
> First select 0 28612
> Second select 0 28684
> dark% ./selt
> First select 0 28617
> Second select 0 28709
> dark% ./selt
> First select 0 28926
> Second select 0 28784
>
> with 1024 fds
> ./selt
> First select 0 4056
> Second select 0 4063
> dark# ./selt
> First select 0 4297
> Second select 0 4163
> dark# ./selt
> First select 0 4101
> Second select 0 4728
> dark# ./selt
> First select 0 4137
> Second select 0 4218
> dark# ./selt
> First select 0 4034
> Second select 0 4036
> dark# ./selt
> First select 0 4075
> Second select 0 4062
>
> I will be trying some other select tests.
> I suspect with a sparse fd_set, jeffr's results will be better than stock.
> We'll see.
>
> - Diane
> --
> - db@FreeBSD.org db@db.net http://www.db.net/~db
> _______________________________________________
> freebsd-arch@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
>



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