Re: Odd ACL question

2004-02-09 Thread Harti Brandt
On Sun, 8 Feb 2004, Tim Kientzle wrote:

TK>On Sat, 7 Feb 2004, Tim Kientzle wrote:
TK>>Joerg Schilling's "star" archives ACLs as follows:
TK>>
TK>>"user::rwx,group::r--,group:mail:rw-:6,mask::rw-,other::r--"
TK>>
TK>>Note the "group:mail:rw-:6" entry that contains a fourth
TK>>field with the uid/gid number. ...
TK>>
TK>>Question:  Is this a useful extension?
TK>
TK>Harti Brandt responded:
TK>> It definitely is. Joerg and I had several hours of talk on this issue.
TK>> If you, for example, restore on a system that usually gets its passwd from
TK>> YP or LDAP and you don't have it available ...
TK>
TK>Ah.  That's the example I needed.  Now to figure out how to implement
TK>such functionality; hacking the acl library functions may
TK>not be the best approach, but I'm equally dismayed by the prospect
TK>of duplicating the acl library functions in my code.  ;-(
TK>
TK>> As far as I know there are options to star that let you select the exact
TK>> behaviour in these cases.
TK>
TK>This is one difference between 'star' and my work:  'star' offers
TK>a great deal of control over the archiving/dearchiving
TK>process; my work tries to remove the need for such control
TK>by using intelligent algorithms.  For example, bsdtar/libarchive
TK>doesn't require you to specify the compression when reading archives;
TK>it determines it automatically.
TK>
TK>In this case, I'm considering:
TK>   * If the username exists, use that.
TK>   * If the username does not exist and the UID is not already in
TK>   use, issue a warning and use the UID.
TK>   * If the username exists and the UID conflicts with the local
TK>   system, ???
TK>
TK>This last case is the tough one.  My temptation:  map it to
TK>an unused UID, issue a warning about the remap, and keep going.

That may cause the problem I described. This may leave a file in a user
directory that the user cannot delete without intervention of the root
user, but its probably the simplest solution. What about non-existing
groups?

I remember talking with Joerg about this, but cannot remember the outcome
of this. You may want to ask him.

TK>There are certainly rare cases where manual control is
TK>needed.  That's why I'm pleased that 'star' is available
TK>in ports.  ;-)

Are you going to replace that horrible thing called GNU tar in the bases
system?

harti
-- 
harti brandt,
http://www.fokus.fraunhofer.de/research/cc/cats/employees/hartmut.brandt/private
[EMAIL PROTECTED], [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: bktr video card - VBI

2004-02-09 Thread Simon Barner
Danny Braniss wrote:
>   Looking at the driver, i see that somethings changed :-) but
> can't find much documentation, (yes i know the source is the force)
> 
> While im studying the driver, some program/documentation would speed up
> things.

Hi,

did you already have a look at the following two applications that use
the vbi interface?

Perhaps you can find something usefull there...

ports/multimedia/nxtvepg
ports/misc/alevt

Simon


pgp0.pgp
Description: PGP signature


Re: mostly-reentrant resolver/getaddrinfo(3)

2004-02-09 Thread Jacques A. Vidrine
  [
Brian: I've noticed that in the recent past, I cannot receive email
from you due to

   reject: RCPT from mx2.freebsd.org[216.136.204.119]:
   450 <[EMAIL PROTECTED]>:
   Sender address rejected: Domain not found

Requests for any green.bikeshed.org RRs results in SERVFAIL.
  ]

On Sat, Feb 07, 2004 at 07:01:47PM -0500, Brian F. Feldman wrote:
> BTW, a slightly more complete patch that has the diffs for
> /usr/include/resolv.h and also should correctly close the sockets that each
> thread opens for the resolver can be found here:
>
>   http://green.homeunix.org/~green/mostly_reentrant_resolver.patch

Cool!

Use pthread_once for creating keys, not a mutex (referring to
res_init_mutex/res_keys_inited).

I prefer to see `_pthread_*' in libc source (rather than `thr_*'), but
that's just me.

Cheers,
-- 
Jacques Vidrine   NTT/Verio SME  FreeBSD UNIX   Heimdal
[EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: bktr video card - VBI

2004-02-09 Thread Danny Braniss

> Hi,
> 
> did you already have a look at the following two applications that use
> the vbi interface?
> 
> Perhaps you can find something usefull there...
> 
> ports/multimedia/nxtvepg
> ports/misc/alevt

thanks, i checked alevt - there was a comment about it in the driver :-)
now i know that /dev/vbi is for teletext - not exactly what i was
looking for.

danny


___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Can we extend VolumeGroup after creation?

2004-02-09 Thread ahmed mohiuddin

   Hi,

   Can u guys tel me, i have created a VolumeGroup(myvg) of 120GB size,
   which holds oraclefiles and these files will be access by 2nodes which
   are on cluster.

   So can you please tell that i can increase the size of VolumeGroup or
   i cannot?

   Will AIX allows us to increase size of VolumeGroup in the Future?

   Please Advise.
   Ahmed
 _

   Marriage? [1]Join BharatMatrimony.com.

References

   1. http://g.msn.com/8HMAENIN/2728??PS=
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


[call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Dung Patrick
Hi

Beaver Challenge 2004 is coming!.
Details in http://osuosl.org/benchmarks/bc/

We are preparing the tuning guide. Definitely we need suggestions and comments.

Please see this forum to view the latest tuning guide:
http://osuosl.org/forums/viewforum.php?f=8

Attached is a ver0.4 of the tuning guide.

Regards
Patrick

==
FreeBSD tuning guide for the beaver challenge 2004
For "stock" class
Draft ver 0.4
==

=
Changelog
=
0.1 Initial release
0.2 Add some notes about the packages for the benchmarking
0.3 sysctl.conf, loader.conf, more tuning on Apache and other minor updates
0.4 Partition order, 2.2.1(cron), 2.2.3 (sysctl), 2.2.5(flags), 2.2.6, 2.2.7

=
1. Background information
=
The machine:
Dell PowerEdge 2650 
2 - 2.8Ghz Intel Xeon processors 
2GB of RAM 
5 - 36GB U320 disks @ 10,000 RPM configured as RAID0 stripe 
Adaptec AAC raid controller 
It's full spec can be downloaded in here:
http://www.dell.com/downloads/global/products/pedge/en/2650_specs.pdf

From http://osuosl.org/benchmarks/bc/methodology/ .They will run these benchmarks:
Bonnie++ - file system performance.
lmbench - bandwidth and latency performance.
VolanoMark - a Java benchmark.
mySQL server throughput 
Apache server throughput 

Their testing script is also avaliable on their web page.
For Bonnie, there testing parameters is this:
my $file_size = "4g";
my $file_num= "128";
my $small_min_size = "16";
my $small_max_size = "2";
my $large_min_size = "2";
my $large_max_size = "10";
my $num_dir = "512";
my $test_runs = 1;
my $symlink_runs = 1;
my $hardlink_runs = 1;

=
2. Tuning section
=
In this section, we are going to tune the system to provide the best benchmark.


2.1 Installation


Partitioning

There will be about 180GB harddisk space and 2GB RAM. How are we going to partition 
the FreeBSD system? Suggested layout be like this (in order)

/home   >4GB (their bonnie++ script benchmark on this partition, if we do not create 
/home, then /home will be a symobilc link to /usr/home)
/   xxGB
swap4GB (It have 2GB RAM)
/usrxxGB (need some space to hold the ports, and possibly to build the jdk)

The /home is the first because we want to use the outside part of the hard disk. (So 
/home will be a separate partition instead of a slide?)
Use UFS1 for FBSD4 (no choice), and UFS2 for FBSD5.
Turn on soft updates for all partitions.

Some thought:
1) /home can be reformatted (to use different block/fragment size).
By looking at their bonnie script, it seems increasing the blocksize (default is 16KB) 
would benefit. But I do not have actual testing or supporting materials.
Unless we have any good reasons, we would stick to the default.
2) In the long run, will those /usr/src, /usr/ports, /usr/obj make the /usr partition 
becomes more and more fragments? Should we make separate partitions for them?

--
2.2 Tweaking (First stage)
--

After the installation, we are going to tune in different areas.

2.2.1 Turn off all unneeded services

Remember for "stock" class:
The tweaks must reflect a system that could be placed into production. 

Turn off run these services:
inetd
portmap
sendmail
sshd (we use serial console access?)
cron
usbd? (I doubt it has any USB devices in the BC)

Question:
Turn these off for the sake of the bechmarking? (which should not be done in a 
production server)
syslog

2.2.2 /etc/fstab

By default, the file system will be mounted with atime. 
Let's change it. For more information, refer to man 8 mount.

To do it without reboot
# mount -o update,noatime /
Then, add 'noatime' to the appropriate place in /etc/fstab.
So that it will be done automatically in next reboot.

2.2.3 /etc/sysctl.conf
--
This is a very critical file that many tweaking will be done in here.

To be completed, refer to
Tuning man page
TCP man page
More parameters to tune in http://sinuspl.net/txt/ (look for sysctl.txt) 

kern.ipc.somaxconn=8192 
kern.ipc.maxsockbuf=2097152 
net.inet.ip.portrange.last=3 
net.inet.tcp.rfc1323=1 
net.inet.tcp.delayed_ack=0 
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=32768
net.inet.udp.recvspace=32768
net.inet.icmp.icmplim=0 
# We will stick to the defaults unless we have any good reasons
#net.inet.udp.maxdgram=
#net.local.stream.sendspace=
#net.local.stream.recvspace=
#net.local.dgram.maxdgram=
#net.local.dgram.recvspace=
# Disable features that we are not going to use in the BC 
net.inet.icmp.drop_redirect=1 
net.inet.icmp.log_redirect=0 
net.inet.ip.redirect=0 
net.inet6.ip6.redirect=0 
net.inet.ip.sourceroute=0 
net.inet.ip.accept_sourceroute=0 
# Turn off ARP wrong interface log messages 
net.link.ether.inet.log_arp_wrong_iface=0 

Question:

Making inheritance of group ID configurable

2004-02-09 Thread Andre Albsmeier
New items created on an ufs normally inherit their group ID from
the parent directory. I have the need for making this configurable.

Since the set-group-ID bit is not used for directories on BSD,
I would like to use it to decide on this: If it is set, the group
ID of the newly created item corresponds to the one of the creating
process. (Yeah, this is exactly the wrong way around compared to
what "the Others" do but I don't want to change the BSD default).

I am currently using this patch. It seems to work great but I would
like to know if I have forgotten something ;-)

--- sys/ufs/ufs/ufs_vnops.c.ORI Fri Jan  3 08:41:47 2003
+++ sys/ufs/ufs/ufs_vnops.c Mon Feb  9 16:32:46 2004
@@ -1276,6 +1276,11 @@
if (error)
goto out;
ip = VTOI(tvp);
+#ifdef ANDRE
+   if( (dp->i_mode & ISGID) )
+ ip->i_gid = cnp->cn_cred->cr_gid;
+   else
+#endif
ip->i_gid = dp->i_gid;
 #ifdef SUIDDIR
{
@@ -2070,6 +2075,11 @@
if (error)
return (error);
ip = VTOI(tvp);
+#ifdef ANDRE
+   if( (pdir->i_mode & ISGID) )
+ ip->i_gid = cnp->cn_cred->cr_gid;
+   else
+#endif
ip->i_gid = pdir->i_gid;
 #ifdef SUIDDIR
{


Any hints are welcome.

Thanks,

-Andre
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: mostly-reentrant resolver/getaddrinfo(3)

2004-02-09 Thread Brian F. Feldman
"Jacques A. Vidrine" <[EMAIL PROTECTED]> wrote:
> > BTW, a slightly more complete patch that has the diffs for
> > /usr/include/resolv.h and also should correctly close the sockets that each
> > thread opens for the resolver can be found here:
> >
> > http://green.homeunix.org/~green/mostly_reentrant_resolver.patch
> 
> Cool!
> 
> Use pthread_once for creating keys, not a mutex (referring to
> res_init_mutex/res_keys_inited).
> 
> I prefer to see `_pthread_*' in libc source (rather than `thr_*'), but
> that's just me.

If I try to use pthread_once(3) then I still need to have a variable which 
stores whether the call to pthread_key_create(3) succeeded from the 
pthread_once(3), right?  So at the least, I'd have something like:

static once_t keyonce;
static int keyfailed;
static void
key_allocate(void)
{
if (thr_keycreate(foo, bar) != 0)
keyfailed = 1;
}

static void
allocate(void)
{
if (thr_once(&keyonce, key_allocate) != 0 || keyfailed)
return (&_res_bogus);
}

It would be so much nicer if pthread_once(once, func, retval) existed, but I 
guess this would probably still work

-- 
Brian Fundakowski Feldman   \'[ FreeBSD ]''\
  <> [EMAIL PROTECTED]   \  The Power to Serve! \
 Opinions expressed are my own.   \,,\


___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Odd ACL question

2004-02-09 Thread Dan Nelson
In the last episode (Feb 09), Harti Brandt said:
> On Sun, 8 Feb 2004, Tim Kientzle wrote:
> TK>On Sat, 7 Feb 2004, Tim Kientzle wrote:
> TK>>Joerg Schilling's "star" archives ACLs as follows:
> TK>>
> TK>>"user::rwx,group::r--,group:mail:rw-:6,mask::rw-,other::r--"
> TK>>
> TK>>Note the "group:mail:rw-:6" entry that contains a fourth
> TK>>field with the uid/gid number. ...
> TK>
> TK>   * If the username exists and the UID conflicts with the local
> TK>   system, ???
> TK>
> TK>This last case is the tough one.  My temptation:  map it to
> TK>an unused UID, issue a warning about the remap, and keep going.
> 
> That may cause the problem I described. This may leave a file in a
> user directory that the user cannot delete without intervention of
> the root user, but its probably the simplest solution. What about
> non-existing groups?

Any file that a user creates, that user can delete.  If you're talking
about a root user extracting something into a user's directory, that's
different, but you have the same problem even without ACLs.

-- 
Dan Nelson
[EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Making inheritance of group ID configurable

2004-02-09 Thread David Malone
On Mon, Feb 09, 2004 at 05:10:59PM +0100, Andre Albsmeier wrote:
> New items created on an ufs normally inherit their group ID from
> the parent directory. I have the need for making this configurable.
> 
> Since the set-group-ID bit is not used for directories on BSD,
> I would like to use it to decide on this: If it is set, the group
> ID of the newly created item corresponds to the one of the creating
> process. (Yeah, this is exactly the wrong way around compared to
> what "the Others" do but I don't want to change the BSD default).

Would making this a filesystem option be a good idea? You could
have the default behaviour be as always and an option that makes
the filesystem behave as you've described.

David.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Can we extend VolumeGroup after creation?

2004-02-09 Thread Dan Nelson
In the last episode (Feb 08), ahmed mohiuddin said:
>Can u guys tel me, i have created a VolumeGroup(myvg) of 120GB
>size, which holds oraclefiles and these files will be access by
>2nodes which are on cluster.
> 
>So can you please tell that i can increase the size of VolumeGroup
>or i cannot?
> 
>Will AIX allows us to increase size of VolumeGroup in the Future?

You're asking the wrong people.  AIX does let you grow volume graoups
and the filesystems mounted on them.  Please see

http://publib16.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixbman/baseadmn/lvm_maint.htm

-- 
Dan Nelson
[EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Odd ACL question

2004-02-09 Thread Harti Brandt
On Mon, 9 Feb 2004, Dan Nelson wrote:

DN>In the last episode (Feb 09), Harti Brandt said:
DN>> On Sun, 8 Feb 2004, Tim Kientzle wrote:
DN>> TK>On Sat, 7 Feb 2004, Tim Kientzle wrote:
DN>> TK>>Joerg Schilling's "star" archives ACLs as follows:
DN>> TK>>
DN>> TK>>"user::rwx,group::r--,group:mail:rw-:6,mask::rw-,other::r--"
DN>> TK>>
DN>> TK>>Note the "group:mail:rw-:6" entry that contains a fourth
DN>> TK>>field with the uid/gid number. ...
DN>> TK>
DN>> TK>   * If the username exists and the UID conflicts with the local
DN>> TK>   system, ???
DN>> TK>
DN>> TK>This last case is the tough one.  My temptation:  map it to
DN>> TK>an unused UID, issue a warning about the remap, and keep going.
DN>>
DN>> That may cause the problem I described. This may leave a file in a
DN>> user directory that the user cannot delete without intervention of
DN>> the root user, but its probably the simplest solution. What about
DN>> non-existing groups?
DN>
DN>Any file that a user creates, that user can delete.  If you're talking
DN>about a root user extracting something into a user's directory, that's
DN>different, but you have the same problem even without ACLs.

Yes, the question was, what to do with a file whose UID does not exist on
the system. And, yes, this is about the root user. If you restore a file
server for a couple of hundereds or thousands of user you probably don't
want to fix undeleteable (by the users) file handish.

harti
-- 
harti brandt,
http://www.fokus.fraunhofer.de/research/cc/cats/employees/hartmut.brandt/private
[EMAIL PROTECTED], [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Mike Silbersack

Bascially everything in section 2.2.3 (/etc/sysctl.conf) is wrong; some
values may need tweaking, but changing them blindly will not be helpful.
The one setting that I do suggest you keep is:

kern.ipc.somaxconn=512 (128 may be too low for http testing)

The settings from section 2.2.4 will _probably_ be ok, but you'll have to
run netstat -m after a benchmarking run to really know.  One setting which
you'll need to change for the apache2 run is kern.ipc.nsfbufs.
Unfortunately, -stable doesn't have any way to tell if you're running out,
so you'll have to just guess there.  Under -current, netstat -m will tell
you what you need to know.

Also, you'll probably want to increase KVA_PAGES from 256 to 512 so that
the kernel does not run out of memory.

Under section 2.2.7, take out the section talking about
CPU_FASTER_5X86_FPU through CPU_UPGRADE_HW_CACHE - none of these options
is going to help, and it will just increase the likelyhood that something
goes wrong.

In general, it appears that you can run most of the benchmarks locally, so
I suggest that you do that when trying to decide how to tweak settings.

For the threads-related benchmarks (volcanomark and apache2 with worker)
start asking for help on the -threads mailing list.  This is the one thing
that is likely to benefit from tweaking.

Mike "Silby" Silbersack

On Tue, 10 Feb 2004, Dung Patrick wrote:

> Hi
>
> Beaver Challenge 2004 is coming!.
> Details in http://osuosl.org/benchmarks/bc/
>
> We are preparing the tuning guide. Definitely we need suggestions and comments.
>
> Please see this forum to view the latest tuning guide:
> http://osuosl.org/forums/viewforum.php?f=8
>
> Attached is a ver0.4 of the tuning guide.
>
> Regards
> Patrick
>
>
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Aniruddha Bohra
Hello,

The one setting that I do suggest you keep is:

kern.ipc.somaxconn=512 (128 may be too low for http testing)
In our experience with Apache and clients that do not use
Keep Alive (are short lived), 512 is also very low. It
causes listen queue overflows and leads to a very low
throughput.
Another place that we had to look at was the IP sw interrupt
queue length.
# IP sw interrupt queue len, default 50;
# check queue drops stats in net.inet.ip.intr_queue_drops
net.inet.ip.intr_queue_maxlen=1000
Hope this helps

Aniruddha

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Subversion/CVS experiment summary

2004-02-09 Thread Craig Boston
This is a bit of a long email, so please skip unless you're into source code 
revision management :)

This is an informal report on the viability of using Subversion to manage the 
FreeBSD source code repository.  Some of this is generic and will be familiar 
to anyone who has looked at SVN before, some is more FreeBSD-specific.

NOTE: I'm not trying to push one SCM over the other or suggest that CVS is 
wholly inadequate.  This is merely the result of an evaluation for my personal 
use, and I thought I'd post it in case anyone was interested.  CVS has been 
used by the FreeBSD project for a LONG time for good reasons.  Despite its 
shortcomings, I suspect that it will be in use for quite a while longer.

-
Section the 1st - Motive
-
My main motivation for these tests was to bring my local modifications to 
FreeBSD into some semblance of order.  It seems I've amassed a bit of a 
collection of local patches, 3rd party patches, and side projects -- some of 
which are mutually exclusive or apply to different branches.  Simply keeping 
a working copy with my changes in it works fine for one project but becomes 
painful when there are several.  I'd also like to be able to keep version 
history for my modifications.

I've heard good things about Perforce, and its effortless merge functionality 
looks really slick.  If I'm ever involved with a major commercial coding 
project, I'll definitely give it some consideration.  For my "free-time" 
projects however it's not really an option.  A couple of my local mods are in 
a bit of a grey area as far as the 'non-commercial' license goes, so I'd 
rather avoid that whole issue.

-
Section the 2nd - Setup and conversion
-
Most of my tests were performed on the src/sys portion of the repository.  It 
seemed to be large enough that I could get a general idea of how well 
Subversion scales, but small enough that I wouldn't spend all week waiting 
for the import to complete.  All tests were done on a Pentium 4 2.8 GHz 
system with 512MB RAM.  I used a local repository on one disk and the working 
directories on another (for both CVS and SVN).  These tests have been done 
over the course of the last week and a half, using subversion-0.35.1_1.

I've heard of attempts to convert the repo for testing using the cvs2svn.py 
failing (for more details, see the thread at 
http://docs.freebsd.org/cgi/getmsg.cgi?fetch=640133+0+archive/2004/freebsd-hackers/20040111.freebsd-hackers).
These problems seem to be fixed in the most recent version of the script -- I 
have been able to successfully import sys, bin, sbin, and lib so far.  The 
next target for testing is contrib as it seems to be the most likely 
candidate for problems with all those vendor branches.

Comments on importing: It's SLOOW.  It took 43.9 hours just for 
src/sys, and this is a relatively speedy system!  It starts out at a pretty 
good pace, but the more commits it processes, the slower each one seems to 
take.

For my purposes I would also need some method of incrementally updating the 
repository with any new commits made to CVS.  This doesn't exist yet, but I'm 
thinking about trying to hack cvs2svn to do this.  Kind of an inverse vendor 
branch I guess.

-
Section the 3rd - Head to Head
-
Yeah, I know comparing Subversion and CVS isn't a fair test -- SVN is
designed to be much more than CVS.  But it's a comparison that will be 
inevitably made, so might as well get it out of the way.

Bad points (for SVN):
  * Repo size: The src/sys part of the tree alone is 1.2GB.  The same portion
of the repo in CVS is only 313MB.  I had to keep a script running to
routeinly purge unused database logs to avoid running out of disk space
during the import.
  * Working set size: SVN keeps a complete copy of every file that is checked
out in a hidden directory analogous to "CVS" directories.  This does have
some advantages outlined below, but effectively doubles the size of your
working directory.
  * Speed: 0.35 is considerably slower than CVS for some operations.  svn
checkout is on average about 6 times slower than cvs checkout.
Interestingly, CVS seems to benefit from the buffer cache much more than
SVN does -- nearly a 50% decrease in execution time for CVS once the cache
was populated.  Please note however that checking the same thing out over
and over isn't a very useful thing to do, and SVN fares better with the
more common operations.
  * Not as thouroughly tested with large repositories.  One advantage CVS has
is that 

Re: Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Dung Patrick
So you suggested to use the default values for section 2.2.3. I think increasing 
maxsockbuf, and portrange would be helpful.

Without testing, it is hard to choose a value for kern.ipc.nsfbufs. 

For those optionts CPU_FASTER_5X86_FPU through CPU_UPGRADE_HW_CACHE, it is suggested 
by an user in the forum. I would like to see the comments from the mailing list. If 
those options are dangerous, then don't use them.

Yes, I can test things locally. But I don't have too much time...

Patrick

-Original Message-
From: Mike Silbersack <[EMAIL PROTECTED]>
To: Dung Patrick <[EMAIL PROTECTED]>
Date: Mon, 9 Feb 2004 11:12:38 -0600 (CST)
Subject: Re: [call for helpers!] Tuning for the Beaver Challenge


Bascially everything in section 2.2.3 (/etc/sysctl.conf) is wrong; some
values may need tweaking, but changing them blindly will not be helpful.
The one setting that I do suggest you keep is:

kern.ipc.somaxconn=512 (128 may be too low for http testing)

The settings from section 2.2.4 will _probably_ be ok, but you'll have to
run netstat -m after a benchmarking run to really know.  One setting which
you'll need to change for the apache2 run is kern.ipc.nsfbufs.
Unfortunately, -stable doesn't have any way to tell if you're running out,
so you'll have to just guess there.  Under -current, netstat -m will tell
you what you need to know.

Also, you'll probably want to increase KVA_PAGES from 256 to 512 so that
the kernel does not run out of memory.

Under section 2.2.7, take out the section talking about
CPU_FASTER_5X86_FPU through CPU_UPGRADE_HW_CACHE - none of these options
is going to help, and it will just increase the likelyhood that something
goes wrong.

In general, it appears that you can run most of the benchmarks locally, sodsuggest 
that you do that when trying to decide how to tweak settings.

For the threads-related benchmarks (volcanomark and apache2 with worker)
start asking for help on the -threads mailing list.  This is the one thing
that is likely to benefit from tweaking.

Mike "Silby" Silbersack

On Tue, 10 Feb 2004, Dung Patrick wrote:

> Hi
>
> Beaver Challenge 2004 is coming!.
> Details in http://osuosl.org/benchmarks/bc/
>
> We are preparing the tuning guide. Definitely we need suggestions and comments.
>
> Please see this forum to view the latest tuning guide:
> http://osuosl.org/forums/viewforum.php?f=8
>
> Attached is a ver0.4 of the tuning guide.
>
> Regards
> Patrick
>
>



___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Yaoping Ruan
In section 2.2.3, /etc/sysctl.conf:
To our experience, it also helps to tune inode cache behavior by setting:

vfs.vmiodirenable="0";  (maybe)
vfs.nameileafonly="-1"

On a server with large memory, if apache 1.x is tested, maybe it is also necessary
to increase:

vm.max_proc_mmap

In section 2.2.4, /boot/loader.conf:
Do you need to increase "net.inet.tcp.tcbhashsize" ?

- Yaoping

Dung Patrick wrote:

> Hi
>
> Beaver Challenge 2004 is coming!.
> Details in http://osuosl.org/benchmarks/bc/
>
> We are preparing the tuning guide. Definitely we need suggestions and comments.
>
> Please see this forum to view the latest tuning guide:
> http://osuosl.org/forums/viewforum.php?f=8
>
> Attached is a ver0.4 of the tuning guide.
>
> Regards
> Patrick
>
>   
>  Name: bc-fbsd-tune guide.txt
>bc-fbsd-tune guide.txtType: Plain Text (text/plain)
>  Encoding: BASE64
>
>   
> ___
> [EMAIL PROTECTED] mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "[EMAIL PROTECTED]"

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Stijn Hoop
On Mon, Feb 09, 2004 at 11:30:05AM -0600, Craig Boston wrote:
> This is an informal report on the viability of using Subversion to manage the 
> FreeBSD source code repository.  Some of this is generic and will be familiar 
> to anyone who has looked at SVN before, some is more FreeBSD-specific.

Wow, you have done the experiment I thought to do one of these days! Cool!

> -
> Section the 1st - Motive
> -
> My main motivation for these tests was to bring my local modifications to 
> FreeBSD into some semblance of order.  It seems I've amassed a bit of a 
> collection of local patches, 3rd party patches, and side projects -- some of 
> which are mutually exclusive or apply to different branches.  Simply keeping 
> a working copy with my changes in it works fine for one project but becomes 
> painful when there are several.  I'd also like to be able to keep version 
> history for my modifications.

That is my primary motivation as well -- sort of a private branch for mods /
testing things.

> -
> Section the 2nd - Setup and conversion
> -
> I've heard of attempts to convert the repo for testing using the cvs2svn.py 
> failing (for more details, see the thread at 
> http://docs.freebsd.org/cgi/getmsg.cgi?fetch=640133+0+archive/2004/freebsd-hackers/20040111.freebsd-hackers).
> These problems seem to be fixed in the most recent version of the script -- I 
> have been able to successfully import sys, bin, sbin, and lib so far.  The 
> next target for testing is contrib as it seems to be the most likely 
> candidate for problems with all those vendor branches.

Did you have to modify the script, or pass unusual options? I'd like to
reproduce this, but I didn't get very far when I tried a few days ago with
the 0.37.0 version of the tool.

I also tried refinecvs (formerly cvs2svn.pl), found at

http://lev.serebryakov.spb.ru/refinecvs/

but although it looks like it handles things much better (even vendor
branches etc), it loads EVERYTHING into memory -- which means that it
eventually grew to 1G of memory/swap at which point my memory was exhausted,
and this was at pass 2 of 7...

> Comments on importing: It's SLOOW.  It took 43.9 hours just for 
> src/sys, and this is a relatively speedy system!  It starts out at a pretty 
> good pace, but the more commits it processes, the slower each one seems to 
> take.

That doesn't bode well. Is committing in the new SVN repository also slow?

> For my purposes I would also need some method of incrementally updating the 
> repository with any new commits made to CVS.  This doesn't exist yet, but I'm 
> thinking about trying to hack cvs2svn to do this.  Kind of an inverse vendor 
> branch I guess.

My thoughts were now going to do something like Tom Lord proposed for an
Arch gateway -- just import a CVS working copy into SVN at a certain cut-off
date, and setup a bi-directional gateway between the two. That way people
can use either tool. The hard problem to solve is indeed getting the
changeset from CVS (at least it is when you're not running when a commit
is made, as is the case in my setup where I simply cvsup the repository and
thus get lots of commits at once).

But if the whole repository can be converted it's probably the way to go.

> -
> Section the 3rd - Head to Head
> -

Great summary of the pros/cons of either system.

>   * "Requires" Apache for the network server.  There is a simpler CVS-like
> network protocol, but it suffers from the same problems with access 
> control and locking and the like that CVS does.  In order to overcome
> those  limitations, you pretty much have to use Apache/WebDAV.  Some may
> argue that this isn't really a negative, but it certainly doesn't go with
> the K.I.S.S. philosophy.

Actually, would a sort of access control wrapper that is now also used with
the FreeBSD CVS repository not work? I do agree that it would be nice to
have per-directory access control with the svnserve method.

>   * No cvsup equivalent yet.  You can fairly easily use WebDAV to pull a copy
> of the trunk or a particular branch, but it's not nearly as efficient as
> the rsync algorithm.  There's also no way to use WebDAV to grab a certain
> date or revision like you can with cvsup -- you have to have the svn
> client installed.  In order to be even a contender to replace CVS, it
> still needs a *FAST* and *SIMPLE* way to synchronize source with an
> arbitrary tag or revision.

Agreed.

>   * Still no solution for the repeated merge problem.  This is supposed to b

Re: Making inheritance of group ID configurable

2004-02-09 Thread Andre Albsmeier
On Mon, 09-Feb-2004 at 16:45:11 +, David Malone wrote:
> On Mon, Feb 09, 2004 at 05:10:59PM +0100, Andre Albsmeier wrote:
> > New items created on an ufs normally inherit their group ID from
> > the parent directory. I have the need for making this configurable.
> > 
> > Since the set-group-ID bit is not used for directories on BSD,
> > I would like to use it to decide on this: If it is set, the group
> > ID of the newly created item corresponds to the one of the creating
> > process. (Yeah, this is exactly the wrong way around compared to
> > what "the Others" do but I don't want to change the BSD default).
> 
> Would making this a filesystem option be a good idea? You could
> have the default behaviour be as always and an option that makes
> the filesystem behave as you've described.

Possibly. I intentionally didn't suggest this since I wanted to
attract people to the technical aspects (and the correctness) of
the patch and not to the political opinions :-).

-Andre


> 
>   David.

-- 
In a world without walls and fences, who needs windows and gates?
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Dag-Erling Smørgrav
Dung Patrick <[EMAIL PROTECTED]> writes:
> For those optionts CPU_FASTER_5X86_FPU through CPU_UPGRADE_HW_CACHE,
> it is suggested by an user in the forum. I would like to see the
> comments from the mailing list. If those options are dangerous, then
> don't use them.

CPU_FASTER_5X86_FPU is not likely to have any positive impact on
performance, and fairly likely to render the system unbootable.

CPU_UPGRADE_HW_CACHE has absolutely no effect on non-PC98 systems.

further comments -

 - symlink /usr/{src,obj,ports} to /slow/{src,obj,ports} where /slow
   is a filesystem placed on the outside edge of the disk (to free up
   space near the spindle for the filesystems actually used by the
   benchmark)

 - find out what file system the Linux people are using.  if they are
   using ext2fs or ext3fs, mount your filesystems async.

 - most of what you put in sysctl.conf is completely irrelevant.  the
   rest needs to be tuned according to the actual needs of the
   benchmark.

 - you should not tune kern.maxfiles etc. unless the benchmark
   actually hits those limits.  increasing these numbers reduces the
   amount of kernel memory available for other purposes.

   btw, maxfiles and maxfilesperproc are tunable at run time.

 - most of what you put in make.conf is bogus.  just use

   CPUTYPE ?= pentiumpro
   CFLAGS = -O -pipe
   COPTFLAGS = -O -pipe

 - NOPROFILE has absolutely no impact on performance (except that it
   shortens 'make world' a little)

 - you *must* use -CURRENT and not 5.2 as the latter has issues with
   the aac driver.

 - don't use apm or acpi on 4.x.

 - regarding jdk 1.4.2, just use the linux version (and make sure to
   mount linprocfs).  I very much doubt you'll notice a difference in
   performance.

 - mysql buffer and cache sizes etc. should imho be the same on all
   test systems.

 - some of the "papers" you reference ([3] and [4]) contain more
   incorrect and dangerous information than useful advice.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Odd ACL question

2004-02-09 Thread Tim Kientzle
Harti Brandt wrote:
On Sun, 8 Feb 2004, Tim Kientzle wrote:

TK>In this case, I'm considering:
TK>   * If the username exists, use that.
TK>   * If the username does not exist and the UID is not already in
TK>   use, issue a warning and use the UID.
TK>   * If the username exists and the UID conflicts with the local
TK>   system, ???
TK>
TK>This last case is the tough one.  My temptation:  map it to
TK>an unused UID, issue a warning about the remap, and keep going.
That may cause the problem I described. This may leave a file in a user
directory that the user cannot delete without intervention of the root
user, but its probably the simplest solution.
This would only happen if you are restoring an archive onto
a different system.  If it's the same system, there should be
no UID conflicts and thus no need to remap the UIDs.
I would be very interested in hearing any alternative suggestions.

What about non-existing groups?
I think I would handle this the same way (for consistency).

Are you going to replace that horrible thing called GNU tar in the bases
system?
Probably, yes.

Tim Kientzle

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Dag-Erling Smørgrav
Stijn Hoop <[EMAIL PROTECTED]> writes:
> I also tried refinecvs (formerly cvs2svn.pl), found at
>
> http://lev.serebryakov.spb.ru/refinecvs/
>
> but although it looks like it handles things much better (even vendor
> branches etc), it loads EVERYTHING into memory -- which means that it
> eventually grew to 1G of memory/swap at which point my memory was exhausted,
> and this was at pass 2 of 7...

Unfortunately there's no good way to avoid this.  CVS discards a lot
of information about each commit, and in order to reconstruct that
information you have to view the repo as a whole.

That's not really a problem though, since this is a one-time
operation.  If / when we decide to switch to SVN, we can easily find a
machine with enough RAM to do the job.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Stijn Hoop
On Mon, Feb 09, 2004 at 07:49:55PM +0100, Dag-Erling Sm?rgrav wrote:
> Stijn Hoop <[EMAIL PROTECTED]> writes:
> > I also tried refinecvs (formerly cvs2svn.pl), found at
> >
> > http://lev.serebryakov.spb.ru/refinecvs/
> >
> > but although it looks like it handles things much better (even vendor
> > branches etc), it loads EVERYTHING into memory -- which means that it
> > eventually grew to 1G of memory/swap at which point my memory was exhausted,
> > and this was at pass 2 of 7...
> 
> Unfortunately there's no good way to avoid this.  CVS discards a lot
> of information about each commit, and in order to reconstruct that
> information you have to view the repo as a whole.
> 
> That's not really a problem though, since this is a one-time
> operation.  If / when we decide to switch to SVN, we can easily find a
> machine with enough RAM to do the job.

Very true, but...

First of all it would make these kind of tests easier if the script
implemented it's own sort of cache function. Then I could try and see the
feasibility of converting to Subversion by myself, just like the OP has done.
I tried reading the source to see if this is "easily" implemented, but it's
still way beyond my meagre perl skills.

Second, even after you get the initial conversion done, I think there is a
need for resyncing the SVN repository with the CVS repository -- with a state
dump from refinecvs this would be relatively easy (only examine the deltas
since last time), but this sort of behaviour is impossible with the current
script. It would also be useful to implement a bi-directional gateway between
SVN and CVS repositories, analogous to the idea someone from the arch project
had. See point 3 at

http://wiki.gnuarch.org/moin.cgi/Arch_20and_20CVS_20in_20the_20same_20tree

(and of course substitute Subversion for arch).

That said, as with my comments on Subversion, I was actually pleasantly
surprised with my findings about all the tools involved, and the above is
certainly only meant as constructive criticism. I think Lev is actually using
the FreeBSD repository for testing his script, isn't he?

--Stijn

-- 
Tact, n.:
The unsaid part of what you're thinking.


pgp0.pgp
Description: PGP signature


Re: Subversion/CVS experiment summary

2004-02-09 Thread Alexander Kabaev
cvs-to-perforce scripts use DB files to keep an information on related
commits while they scan CVS repo. I didn't try FreeBSD CVS, but whole
SGI Linux tree with full history was processed quite effortlessly,
without running out of memory.

-- 
Alexander Kabaev
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Andrew J Caines
For your consideration, bearing in mind I haven't read all details of the
challenge or the systems and therefore may suggest inappropriate, wrong or
dangerous things:

Custom kernel enabling only the hardware needed, all compiled in (no
modules), but be careful with fancy looking options in LINT/NOTES. It may
be prudent to hard code interrupts, flags and other parameters to avoid
potential suboptimal automatic allocations (eg. all PCI devs on irq 9).

Mount all filesystems with async, noatime and *enable softupdates*.

Use carefully sized (ie. just big enough) mfs filesystems for any area
with dynamically generated data such as temporary files, server
scoreboards, etc. /tmp and /var/run, at least.

If there's a foo_enable="NO" you put in rc.conf, then do so.

Disable as much logging as possible at system and application level, at
source or config or by logging to /dev/null. If you have to log, trim I/O
to the minimum, maximise buffering and minimise overhead (eg. "-n" for
syslog).

If any DNS activity is needed, a local cache (eg. dnscache) can help, but
so can a nicely populated /etc/hosts. Depending on the tests, it may be a
good idea to have the hostname (fully and unqualified) associated with the
loopback rather than the (primary) network interface.

For the Java benchmarks, try all the implementations which work, including
the emulated ones.

If the storage is going to be striped over all five disks in hardware by
the controller, then notion of putting data "on the outside of the disk"
doesn't apply. In fact in this configuration it _may_ make sense to use
one big filesystem and leave it to the OS to optimise the filesystem I/O.


-Andrew-
-- 
 ___
| -Andrew J. Caines-   Unix Systems Engineer   [EMAIL PROTECTED]  |
| "They that can give up essential liberty to obtain a little temporary |
|  safety deserve neither liberty nor safety" - Benjamin Franklin, 1759 |
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Craig Boston
On Monday 09 February 2004 11:53 am, Stijn Hoop wrote:
> Did you have to modify the script, or pass unusual options? I'd like to
> reproduce this, but I didn't get very far when I tried a few days ago with
> the 0.37.0 version of the tool.

No, I used the script as-is.  The version I have is LastChangedRevision: 8527, 
with a date of Jan. 29.  It looks like that version is slightly newer than 
the one included with 0.37 (Rev 8512).

One thing that may have made a difference is that so far I've been importing 
things in chunks rather than trying to do the whole repo at once.

> but although it looks like it handles things much better (even vendor
> branches etc), it loads EVERYTHING into memory -- which means that it
> eventually grew to 1G of memory/swap at which point my memory was
> exhausted, and this was at pass 2 of 7...

Does the Python version do the same thing?  I didn't think to look at memory 
usage very closely while it was running :-/

> > Comments on importing: It's SLOOW.  It took 43.9 hours just for
> > src/sys, and this is a relatively speedy system!  It starts out at a
> > pretty good pace, but the more commits it processes, the slower each one
> > seems to take.
>
> That doesn't bode well. Is committing in the new SVN repository also slow?

No, creating a new branch and committing new and changed files to it seems to 
be just as quick as with an empty repository.  I haven't delved into the 
script enough to know for sure, so this is a wild guess, but I think the 
speed issue has to do with the script itself.  I'm guessing that the method 
it uses to track the status/branch/etc. of the RCS files is subject to a 
linear slowdown.

I'm going to attempt to verify this by doing a dump / load cycle on the repo 
that everything was imported into.  If it goes quickly then we can assume 
it's the conversion script.  If not, then there are bigger problems...

> My thoughts were now going to do something like Tom Lord proposed for an
> Arch gateway -- just import a CVS working copy into SVN at a certain
> cut-off date, and setup a bi-directional gateway between the two.

If I'm reading that right, it sounds similar to a thought I had about just 
routinely checking out snapshots and committing them on a vendor branch.  Of 
course you'd have to do that separately for each branch you're interested in.  
IMO, I find it immensely useful to have the entire history of a file at hand.

> Actually, would a sort of access control wrapper that is now also used with
> the FreeBSD CVS repository not work? I do agree that it would be nice to
> have per-directory access control with the svnserve method.

Yes, I think the same sort of access hooks (pre-commit?) can be used.  The 
Subversion manual even mentions that, I just forgot about it...

That method has always seemed a little... hackish to me.  You still need write 
access (file permissions) to almost the entire repo so it does nothing 
against editing the files directly -- though with SVN this is a little more 
difficult as it's all bdb files rather than plain text.  Maybe there's a more 
secure way to do it with a restricted shell that I just don't know about.

> > [ repeated merges ]
> Which is a shame, this would be a major selling point. On the other hand,
> considering the amount of work done and the fact that it really works quite
> well already (at least for my small repository) should make people want to
> switch :)

In the release notes for 0.37 there is a brief blurb about "'svn merge' now 
notices ancestry by default".  I'm not sure exactly what that means or if 
it's related...

> > It also looks as if Subversion 0.37 (aka 1.0-RC) has just been released.
> > I'll have to take a look at it and see if any of the problems noted above
> > have been resolved.
>
> Please let me know the results!

Will do!  My local Subversion server (one running Apache, not the machine I've 
been doing the tests on) had just finished upgrading the port.  I don't think 
it needs a dump/load cycle but I'm doing one anyway just to be safe...

Craig
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Dag-Erling Smørgrav
Alexander Kabaev <[EMAIL PROTECTED]> writes:
> cvs-to-perforce scripts use DB files to keep an information on related
> commits while they scan CVS repo. I didn't try FreeBSD CVS, but whole
> SGI Linux tree with full history was processed quite effortlessly,
> without running out of memory.

Perforce uses CVS as backing store, so I expect matters are a little
different than for SVN.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Dag-Erling Smørgrav
Andrew J Caines <[EMAIL PROTECTED]> writes:
> Mount all filesystems with async, noatime and *enable softupdates*.

async and softupdates are mutually exclusive.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Dag-Erling Smørgrav
Andrew J Caines <[EMAIL PROTECTED]> writes:
> If any DNS activity is needed, a local cache (eg. dnscache) can help, but
> so can a nicely populated /etc/hosts. Depending on the tests, it may be a
> good idea to have the hostname (fully and unqualified) associated with the
> loopback rather than the (primary) network interface.

that won't make any difference, the host's own IP addresses are
automatically routed through lo0.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Zombie processes no clearing

2004-02-09 Thread Steven Hartland
Usually zombie processes clear when the controlling parent quits
but I seem to have a issue with the latest bf1942 dedicated
server under FreeBSD where this is not the case. Each map
change creates 2 new zombie processes and even quitting
the entire server doesn't clear them. Am I missing something
obvious?

Steve


This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or 
entity to whom it is addressed. In the event of misdirection, the recipient is 
prohibited from using, copying, printing or otherwise disseminating it or any 
information contained in it. 

In the event of misdirection, illegible or incomplete transmission please telephone 
(023) 8024 3137
or return the E.mail to [EMAIL PROTECTED]


___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Stijn Hoop
On Mon, Feb 09, 2004 at 01:26:45PM -0600, Craig Boston wrote:
> On Monday 09 February 2004 11:53 am, Stijn Hoop wrote:
> > Did you have to modify the script, or pass unusual options? I'd like to
> > reproduce this, but I didn't get very far when I tried a few days ago with
> > the 0.37.0 version of the tool.
> 
> No, I used the script as-is.  The version I have is
> LastChangedRevision: 8527, with a date of Jan. 29.  It looks like that
> version is slightly newer than the one included with 0.37 (Rev 8512).

Well, that explains a lot -- for some reason I tested using
$LastChangedRevision: 7921 $. I'll try with an up-to-date one then.

> One thing that may have made a difference is that so far I've been importing 
> things in chunks rather than trying to do the whole repo at once.

Yes, I was afraid though that commits might have spanned subtrees. But then
again, even if they did they would just get committed as separate revisions
to the tree, and I suppose one could live with that.

> > but although it looks like it handles things much better (even vendor
> > branches etc), it loads EVERYTHING into memory -- which means that it
> > eventually grew to 1G of memory/swap at which point my memory was
> > exhausted, and this was at pass 2 of 7...
> 
> Does the Python version do the same thing?  I didn't think to look at memory 
> usage very closely while it was running :-/

As far as I understood it builds a disk cache instead of using malloc().
This might explain the slowness :)

> > My thoughts were now going to do something like Tom Lord proposed for an
> > Arch gateway -- just import a CVS working copy into SVN at a certain
> > cut-off date, and setup a bi-directional gateway between the two.
> 
> If I'm reading that right, it sounds similar to a thought I had about just 
> routinely checking out snapshots and committing them on a vendor branch.
> Of course you'd have to do that separately for each branch you're interested
> in.

Yes, that's the idea. You 'just' need a tool that can determine changesets
from a CVS repository to automate this. See

http://wiki.gnuarch.org/moin.cgi/Arch_20and_20CVS_20in_20the_20same_20tree

but substitute Subversion for arch :)

> IMO, I find it immensely useful to have the entire history of a file at hand.

But you do have all history of a file at hand; you just need to have a
separate version system for the older history. Which is admittedly a bit
unwieldy, but it certainly makes for a smooth transition in the distributed
repository case...

> > Actually, would a sort of access control wrapper that is now also used with
> > the FreeBSD CVS repository not work? I do agree that it would be nice to
> > have per-directory access control with the svnserve method.
> 
> Yes, I think the same sort of access hooks (pre-commit?) can be used.  The 
> Subversion manual even mentions that, I just forgot about it...
> 
> That method has always seemed a little... hackish to me.

It is, but it does work. Maybe I'll test and see if I can 'port' those
scripts to Subversion :)

--Stijn

-- 
My server has more fans than Britney.
-- Steve Warwick, from a posting at [EMAIL PROTECTED]


pgp0.pgp
Description: PGP signature


Re: Subversion/CVS experiment summary

2004-02-09 Thread Alexander Kabaev
On Mon, 09 Feb 2004 20:43:05 +0100
[EMAIL PROTECTED] (Dag-Erling Sm_rgrav) wrote:

> Alexander Kabaev <[EMAIL PROTECTED]> writes:
> > cvs-to-perforce scripts use DB files to keep an information on
> > related commits while they scan CVS repo. I didn't try FreeBSD CVS,
> > but whole SGI Linux tree with full history was processed quite
> > effortlessly, without running out of memory.
> 
> Perforce uses CVS as backing store, so I expect matters are a little
> different than for SVN.
> 
There are two versions of cvs2p4 script and one of them populates
repository using p4 commands. Either way, both versions require full
scan of source repository to locate related changes and group
them together.

So matters are not that different for SVN.

-- 
Alexander Kabaev
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Ollivier Robert
According to Craig Boston:
> This is an informal report on the viability of using Subversion to manage the 
> FreeBSD source code repository.  Some of this is generic and will be familiar 
> to anyone who has looked at SVN before, some is more FreeBSD-specific.

Thanks for doing this.  I tried the same around 0.12/0.14 and it was a
complete disaster with svn crashing with an out-of-memory error after
taking all of my 512 MB of RAM and the 2 GB of swap...

In the meantime, I'm switching to Arch/tla instead of Perforce for my own
projects, the distributed nature of arch makes it enormously useful before
I have several machines with repos on them and I want to be able to commit
and merge across all these repos and only Arch gives me that (well BK does
but I don't like the license and is closed source anyway).

I've thought about replacing CVS with Arch in the FreeBSD context, even
organised a BoF about that at BSDCon '03, but the development is rather
different and I'm not sure it could be applied w/o too much pain.

On a side remark, I still don't trust svn way of having everything stored
in a BDB. Makes repos far too large, generates lots of logs and makes
recovery more complicated.
-- 
Ollivier ROBERT -=- FreeBSD: The Power to Serve! -=- [EMAIL PROTECTED]
Darwin snuadh.freenix.org Kernel Version 7.2.0: Thu Dec 11 16:20:23 PST 2003
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Subversion/CVS experiment summary

2004-02-09 Thread Craig Boston
On Monday 09 February 2004 03:06 pm, Stijn Hoop wrote:
> Well, that explains a lot -- for some reason I tested using
> $LastChangedRevision: 7921 $. I'll try with an up-to-date one then.

I was looking through the change history for cvs2svn.py and it seems that the 
0.37 version is almost exactly the same as the 0.35 version.  For some reason 
it looks like they just re-tagged the old version rather than bring in the 
changes from HEAD...

> > One thing that may have made a difference is that so far I've been
> > importing things in chunks rather than trying to do the whole repo at
> > once.
>
> Yes, I was afraid though that commits might have spanned subtrees. But then
> again, even if they did they would just get committed as separate revisions
> to the tree, and I suppose one could live with that.

There probably are some commits that do.  Only reason I did it like that was 
to try to trap failure cases more quickly without having to wait for it to 
get through stage 1 on the whole repo.  My plan has always been to go back 
and try to convert the whole thing when I was sure it would import cleanly 
and had the resources to do it (the fastest CPU machine I have probably 
doesn't have enough disk space right now to handle it).

> > Does the Python version do the same thing?  I didn't think to look at
> > memory usage very closely while it was running :-/
>
> As far as I understood it builds a disk cache instead of using malloc().
> This might explain the slowness :)

Ok, that's consistent with what I saw here.  It looked like it created several 
large temporary bdb databases, but I don't remember any excessive swapping 
going on.

> Yes, that's the idea. You 'just' need a tool that can determine changesets
> from a CVS repository to automate this. See
>
> http://wiki.gnuarch.org/moin.cgi/Arch_20and_20CVS_20in_20the_20same_20tree
>
> but substitute Subversion for arch :)

Makes sense.  I believe you mentioned earlier that post-commit hooks could be 
used for this?  But that of course requires assistance from the repomaster.  
It might also be possible to rig up a script to monitor the cvs-all mailing 
list and get its changesets from there...

> It is, but it does work. Maybe I'll test and see if I can 'port' those
> scripts to Subversion :)

Yes, it does work as long as your users are relatively trusted and you keep 
good backups :).  Still, it would probably be the most painless transition 
path to use that over ssh.

In regards to the speed test: ARGH!  svn dump died on me with this message:
* Dumped revision 18576.
* Dumped revision 18577.
* Dumped revision 18578.
* Dumped revision 18579.
* Dumped revision 18580.
svn: Invalid change ordering: non-add change on deleted path

If it's really invalid I wonder how it ended up in the repo in the first 
place.  Not good.  I'll have to do some digging to find out what causes that.

Craig
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Matthew D. Fuller
On Mon, Feb 09, 2004 at 07:27:08PM +0100 I heard the voice of
Dag-Erling Sm?rgrav, and lo! it spake thus:
> 
> CPU_FASTER_5X86_FPU is not likely to have any positive impact on
> performance, and fairly likely to render the system unbootable.

I would guess just from the name that this (and some similarly named
options) apply only to Cyrix 5x86 processors.  Somehow, I don't think
you'll run into too many of them in benchmarks these days.  Just a
hunch.


>CPUTYPE ?= pentiumpro

I recall a thread somewhere recently about pentiumpro being decidedly
suboptimal for some new CPUs.  Although, on 4.x with the older version
of gcc, it may not matter.



-- 
Matthew Fuller (MF4839)   |  [EMAIL PROTECTED]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/

"The only reason I'm burning my candle at both ends, is because I
  haven't figured out how to light the middle yet"
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: mostly-reentrant resolver/getaddrinfo(3)

2004-02-09 Thread Brian F. Feldman
Alright, here we go!  I simplified some things out a bit and used 
pthread_once(3) to make things look a little cleaner.  The RES_BOGUS flag 
was unnecessary, and now single-threaded programs and the first thread of 
multi-threaded programs do not incur the allocation of per-thread resolver 
storage.  I also allocated all the per-thread storage at once because the 
user is not privy to that, anyway.  I've gotten good feedback so far, and 
the latest round of changes at the least "works for me" :)  Try it in your 
multi-tab Mozilla!

Index: include/resolv.h
===
RCS file: /usr/ncvs/src/include/resolv.h,v
retrieving revision 1.23
diff -u -r1.23 resolv.h
--- include/resolv.h7 Dec 2003 12:32:23 -   1.23
+++ include/resolv.h10 Feb 2004 00:55:35 -
@@ -200,7 +200,12 @@
char *  humanname;  /* Its fun name, like "mail exchanger" */
 };
 
-extern struct __res_state _res;
+__BEGIN_DECLS
+extern struct __res_state *___res(void);
+extern struct __res_state_ext *___res_ext(void);
+__END_DECLS
+#define_res(*___res())
+#define_res_ext(*___res_ext())
 /* for INET6 */
 extern struct __res_state_ext _res_ext;
 
Index: lib/libc/include/reentrant.h
===
RCS file: /usr/ncvs/src/lib/libc/include/reentrant.h,v
retrieving revision 1.2
diff -u -r1.2 reentrant.h
--- lib/libc/include/reentrant.h1 Nov 2002 09:37:17 -   1.2
+++ lib/libc/include/reentrant.h10 Feb 2004 01:11:45 -
@@ -94,10 +94,12 @@
 #define mutex_tpthread_mutex_t
 #define cond_t pthread_cond_t
 #define rwlock_t   pthread_rwlock_t
+#define once_t pthread_once_t
 
 #define thread_key_t   pthread_key_t
 #define MUTEX_INITIALIZER  PTHREAD_MUTEX_INITIALIZER
 #define RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
+#define ONCE_INITIALIZER   PTHREAD_ONCE_INIT
 
 #define mutex_init(m, a)   _pthread_mutex_init(m, a)
 #define mutex_lock(m)  if (__isthreaded) \
@@ -127,6 +129,7 @@
 #define thr_getspecific(k) _pthread_getspecific(k)
 #define thr_sigsetmask(f, n, o)_pthread_sigmask(f, n, o)
 
+#define thr_once(o, i) _pthread_once(o, i)
 #define thr_self() _pthread_self()
 #define thr_exit(x)_pthread_exit(x)
 #define thr_main() _pthread_main_np()
Index: lib/libc/net/getaddrinfo.c
===
RCS file: /usr/ncvs/src/lib/libc/net/getaddrinfo.c,v
retrieving revision 1.48
diff -u -r1.48 getaddrinfo.c
--- lib/libc/net/getaddrinfo.c  30 Oct 2003 17:36:53 -  1.48
+++ lib/libc/net/getaddrinfo.c  6 Feb 2004 06:20:23 -
@@ -1511,6 +1511,7 @@
return 0;
}
 
+   THREAD_UNLOCK();
switch (_nsdispatch(&result, dtab, NSDB_HOSTS, "getaddrinfo",
default_dns_files, hostname, pai)) {
case NS_TRYAGAIN:
@@ -1524,20 +1525,20 @@
goto free;
case NS_SUCCESS:
error = 0;
+   THREAD_LOCK();
for (cur = result; cur; cur = cur->ai_next) {
GET_PORT(cur, servname);
/* canonname should be filled already */
}
+   THREAD_UNLOCK();
break;
}
-   THREAD_UNLOCK();
 
*res = result;
 
return 0;
 
 free:
-   THREAD_UNLOCK();
if (result)
freeaddrinfo(result);
return error;
@@ -2037,6 +2038,7 @@
memset(&sentinel, 0, sizeof(sentinel));
cur = &sentinel;
 
+   THREAD_LOCK();
_sethtent();
while ((p = _gethtent(name, pai)) != NULL) {
cur->ai_next = p;
@@ -2044,6 +2046,7 @@
cur = cur->ai_next;
}
_endhtent();
+   THREAD_UNLOCK();
 
*((struct addrinfo **)rv) = sentinel.ai_next;
if (sentinel.ai_next == NULL)
@@ -2152,9 +2155,12 @@
memset(&sentinel, 0, sizeof(sentinel));
cur = &sentinel;
 
+   THREAD_LOCK();
if (!__ypdomain) {
-   if (_yp_check(&__ypdomain) == 0)
+   if (_yp_check(&__ypdomain) == 0) {
+   THREAD_UNLOCK();
return NS_UNAVAIL;
+   }
}
if (__ypcurrent)
free(__ypcurrent);
@@ -2189,6 +2195,7 @@
cur = cur->ai_next;
}
}
+   THREAD_UNLOCK();
 
if (sentinel.ai_next == NULL) {
h_errno = HOST_NOT_FOUND;
Index: lib/libc/net/res_init.c
===
RCS file: /usr/ncvs/src/lib/libc/net/res_init.c,v
retrieving revision 1.31
diff -u -r1.31 res_init.c
--- lib/libc/net/res_init.c 7 Dec 2003 12:32:24 -   1.31
+++ lib/libc/net

kernel load address

2004-02-09 Thread Hong MingJian
Hi all,
   When reading locore.s, I have the following question.

In the locore.s, there's a macro R defined as
 #define R(foo)  ((foo)-KERNBASE)
where KERNBASE equals to 0xC000.

But in the sys/conf/ldscript.i386, it reads
 SECTIONS
 {
. = kernbase + 0x0010 + SIZEOF_HEADERS;
.
 }
The kernel is loaded at 0x0010 by boot2 or loader with program
header stripped. So, how the R macro can still work? 

I think it should be defined as `((foo)-KERNBASE-SIZEOF_HEADERS)' or
the ldscript.i386 should be modified to
. = kernbase + 0x0010;

I refers to the ld script for Linux i386 kernel(vmlinux.lds), it reads
 SECTIONS
 {
. = 0xC000 + 0x10;
..
 }

Thanks.

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: sources needed - msdosfs merge from darwin

2004-02-09 Thread David Schultz
On Thu, Feb 05, 2004, Friedemann Becker wrote:
> Hello,
> 
> I want to take a look at the darwin msdosfs - merge is on the todo list.
> I had trouble logging in to the cvs and wrote a mail to the
> apple-support. I got an auto-answer containing:
> 
> >Q:  I've registered, but I can't login to CVS or the web site.  What's 
> >wrong?
> >A:  We are currently experiencing intermittent failures during the login
> >process.  We are working to resolve this as quickly as possible.  Please
> >keep trying and we apologize for the inconvenience.
> 
> So my question is,  has someone a copy of the msdosfs part of the darwin
> kernel, so i could use it while waiting for the cvs to come up again...
> 
> And: has anyone begun to import the sources in question already? please
> drop a short note, so i know what is already done.

You can try the sources on opendarwin.org.  However, it is my
understanding that using Apple's msdosfs improvements presents
licensing problems due to the viral nature of the APSL.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Andrew J Caines
This might also be an opportune time to test the benefits of compilers
other than gcc, such as Intel's reputedly super-optimised-vs-gcc C/C++
compiler (lang/icc).

I've not tried icc or any of the other non-gcc compilers and I'm not
suggesting it will help, or even what one might try to compile, but maybe
some others can offer their experiences?


-Andrew-
-- 
 ___
| -Andrew J. Caines-   Unix Systems Engineer   [EMAIL PROTECTED]  |
| "They that can give up essential liberty to obtain a little temporary |
|  safety deserve neither liberty nor safety" - Benjamin Franklin, 1759 |
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [call for helpers!] Tuning for the Beaver Challenge

2004-02-09 Thread Dag-Erling Smørgrav
"Matthew D. Fuller" <[EMAIL PROTECTED]> writes:
> >CPUTYPE ?= pentiumpro
> I recall a thread somewhere recently about pentiumpro being decidedly
> suboptimal for some new CPUs.  Although, on 4.x with the older version
> of gcc, it may not matter.

I believe the reverse is true - pentiumpro proved to be superior to p3
and p4 even on p3s and p4s.

DES
-- 
Dag-Erling Smørgrav - [EMAIL PROTECTED]
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"