Subject: Re: /etc/services duplicates - suggestion for fixes
To: Christos Zoulas <christos@astron.com>
From: Thilo Jeremias <jeremias@optushome.com.au>
List: netbsd-users
Date: 06/24/2007 09:57:48
Isn't that jut during  init / interrupt time (the open/stat) ?

I that case I believe it doesn't matter how inefficient that all is!
(well not exactly doesn't but I wouldn't be worried too much - yet)

I'll prepare a patch, this week and post it on the list.

thilo


Christos Zoulas wrote:
> In article <20070623061401.GB1247@moray.salmi.ch>,
> Jukka Salmi  <j+nbsd@2007.salmi.ch> wrote:
>   
>> Christos Zoulas --> netbsd-users (2007-06-23 01:10:09 +0000):
>>     
>>> It does make a lot of sense, but this is not what we do with the other
>>> databases currently. And this will cost 2 more stats...
>>>       
>> Speaking of some more stats: why is services.db stat()ed and open()ed
>> several times when doing something like:
>>
>> $ ktrace telnet mail.netbsd.org. smtp
>> Trying 2001:4f8:4:7:2e0:81ff:fe52:9ab6...
>> Trying 204.152.190.11...
>> Connected to mail.netbsd.org.
>> Escape character is '^]'.
>> 220 mail.netbsd.org ESMTP Postfix
>> quit
>> 221 Bye
>> Connection closed by foreign host.
>> $ kdump | grep -B1 services               
>>  6137      1 telnet   CALL  __stat30(0xbb9e6d63,0xbfbfe360)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>> --
>>  6137      1 telnet   CALL  open(0xbb9e6d63,0,0)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>> --
>>  6137      1 telnet   CALL  __stat30(0xbb9e6d63,0xbfbfe360)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>> --
>>  6137      1 telnet   CALL  open(0xbb9e6d63,0,0)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>> [...]
>>  6137      1 telnet   CALL  __stat30(0xbb9e6d63,0xbfbfe360)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>> --
>>  6137      1 telnet   CALL  open(0xbb9e6d63,0,0)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>> --
>>  6137      1 telnet   CALL  __stat30(0xbb9e6d63,0xbfbfe360)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>> --
>>  6137      1 telnet   CALL  open(0xbb9e6d63,0,0)
>>  6137      1 telnet   NAMI  "/var/db/services.db"
>>
>> Hmm, twelve stat()s and twelve open()s, always just to look up `smtp
>> 25/tcp mail'... Shouldn't this be done only once?
>>
>>
>> Regards, Jukka
>>     
>
> Maybe the other ones have to do with other lookups (resolv)?
> There is no "stayopen" function for services...
>
> christos
>
>