FreeBSD 9 & recompile ports

2012-01-12 Thread George Kontostanos
Greetings all and my apologies for cross posting!

There seems to be a confusion regarding the ABI change in FreeBSD 9
and if this affects the usual upgrade path which includes a full port
rebuild.

The relevant post is here: http://forums.freebsd.org/showthread.php?t=28831

Frankly, I am also confused because I remember a relevant discussion a
few months ago in the lists. Traditionally a major RELEASE upgrade
requires a full ports rebuild, however this time there is no
COMPAT_FREEBSD8 in GENERIC and most upgraded systems seem to be
working fine. On the other hand this is stated in UPDATING:

20110828:
Bump the shared library version numbers for libraries that
do not use symbol versioning, have changed the ABI compared
to stable/8 and which shared library version was not bumped.
Done as part of 9.0-RELEASE cycle.

Your input would be appreciated!

Regards,

-- 
George Kontostanos
Aicom telecoms ltd
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread John Baldwin
On Wednesday, January 11, 2012 4:11:10 pm Rob Clark wrote:
> System: Dell 600sc
> Currently running: 8.2-RELEASE
> 
> In attempting to update this system to 8-STABLE I did
> what I usually do to update a system (see below).
> make buildworld completes successfully, but make
> buildkernel does not. I usually create a custom
> kernel, but for this system I went with GENERIC as
> is.  
> 
> The error message is: 
> /usr/src/sys/kern/init_sysent.c:568: error: invalid
> application of 'sizeof' to incomplete type 'struct
> posix_fadvise_args' /usr/src/sys/kern/init_sysent.c:568:
> error: 'posix_fadvise' undeclared here (not in a
> function) *** Error code 1

This sounds like you have an incomplete tree that only got part of a change 
(specifically, /usr/src/sys/sys/sysproto.h seems stale).  Have you tried a 
different cvsup mirror?

-- 
John Baldwin
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


FYI: 9.0-RELEASE announced...

2012-01-12 Thread Ken Smith
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


JFYI for those of you who aren't subscribed to the announce@ mailing
list...  9.0-RELEASE is, finally, announced.  The announcement message
is available here:

http://www.freebsd.org/releases/9.0R/announce.html

Lots of you noticed that the 9.0-RELEASE ISO and memstick images
appeared on the FTP sites a while ago.  But as pointed out this
release turned out to be an example of why the "official policy" is
that it's not truly released until the announcement email gets sent
out.  I had not tested using sysinstall(8) to install pre-built
packages from the DVD during my initial testing since we're sorta
moving away from sysinstall(8).  I had just tested installing the
pre-built packages using pkg_add(8).  Someone noticed sysinstall(8)
misbehaved before I got the images put up on Bittorrent and the
fix was simply adding one file to the DVD image that the new build
infrastructure omitted since bsdinstall(8) doesn't use it.  So I
went ahead with replacing the DVD images on the FTP site.  That's
also why we waited longer than normal between the images appearing
on the FTP sites and the announcement - we gave extra time to try
and make sure the updated images got to all the FTP mirrors.  Sorry
about the screw-up.

If you downloaded the amd64 and/or i386 DVD images before now you
might want to check the checksums with the ones posted in the
release announcement.  The fix to make sysinstall(8) happy about
installing from the DVD images was the *only* change made to the
updated images.  The "bad" images were never available via
Bittorrent so if you got the images that way you wouldn't have
a bad image.

On behalf of the Release Engineering Team and the FreeBSD Developers
we hope you enjoy 9.0-RELEASE.

- -- 
Ken Smith
- - From there to here, from here to  |   kensm...@buffalo.edu
  there, funny things are everywhere.   |
  - Theodor Geisel  |
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk8PcpsACgkQ/G14VSmup/aLFgCfar7x43ViPu44M3eF8MzvYhOU
/z0AnRN1jXDT1fS0UA9J0Trd5sRQcwdy
=oU1m
-END PGP SIGNATURE-
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Rob Clark
On Wed, 11 Jan 2012 21:52:28 -0600
Andre Goree  wrote:

> On Wed, Jan 11, 2012 at 3:11 PM, Rob Clark  wrote:
> 
> > System: Dell 600sc
> > Currently running: 8.2-RELEASE
> >
> > In attempting to update this system to 8-STABLE I did
> > what I usually do to update a system (see below).
> > make buildworld completes successfully, but make
> > buildkernel does not. I usually create a custom
> > kernel, but for this system I went with GENERIC as
> > is.
> >
> > The error message is:
> > /usr/src/sys/kern/init_sysent.c:568: error: invalid
> > application of 'sizeof' to incomplete type 'struct
> > posix_fadvise_args' /usr/src/sys/kern/init_sysent.c:568:
> > error: 'posix_fadvise' undeclared here (not in a
> > function) *** Error code 1
> >
> > I found this pertaining to
> > posix_fadvise in /usr/src/UPDATING:
> > 20120106:
> > A new VOP_ADVISE() was added to support
> > posix_fadvise(2).  All filesystem modules must be
> > recompiled.
> >
> > Not sure what 'filesystem modules' is or referring to
> > here. Also, am I not already recompiling 'All
> > filesystem modules' during make buildworld?
> >
> > What I did (and usually do):
> > csup -L 2 /root/stable-supfile
> > rm -rf /etc.old cp -Rp /etc /etc.old
> > adjkerntz -i
> > cd /usr/obj
> > chflags -R noschg *
> > rm -rf *
> > cd /usr/src
> > /usr/bin/time -h make buildworld || exit
> >
> > build world finishes successfully.
> >
> > Then:
> > cd /usr/src
> > make buildkernel KERNCONF=GENERIC
> > make installkernel KERNCONF=GENERIC
> >
> > This fails with error:
> > /usr/src/sys/kern/init_sysent.c:568: error: invalid
> > application of 'sizeof' to incomplete type 'struct
> > posix_fadvise_args' /usr/src/sys/kern/init_sysent.c:568:
> > error: 'posix_fadvise' undeclared here (not in a
> > function) *** Error code 1
> >
> > Stop in /usr/obj/usr/src/sys/GENERIC.
> > *** Error code 1
> >
> > Stop in /usr/src.
> > *** Error code 1
> >
> > Stop in /usr/src.
> >
> > Following attempts:
> >
> > Attempt 2:
> > I tried using 'make buildkernel' (without
> > specifying KERNCONF) make buildkernel fails with
> > same error.
> >
> > Attempt 3:
> > Started from the beginning (same process as above)
> > with new csup (sources) -- make buildkernel still
> > failed with same error.
> >
> > Any help here would be greatly appreciated.
> > In way over my head here. I have all logs from all
> > attempts of the above if needed.
> >
> > Thanks,
> > Rob Clark
> > 
> > ___
> > freebsd-stable@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> > To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"
> >
> 
> 
> Perhaps two 'make cleandir' inside /usr/src will help.
> 
> Run it just after removing everything within /usr/obj.
> 
> FWIW, I usually run this simple bash script before building world on my
> machines:
> 
> #!/bin/bash
> chflags -R noschg /usr/obj/usr
> rm -rf /usr/obj/usr
> cd /usr/src ; make cleandir ; make cleandir
> exit 0

Thanks Andre, I'll make note of that one.

Rob
-- 
Rob Clark 
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Rob Clark
On Thu, 12 Jan 2012 08:15:50 -0500
John Baldwin  wrote:

> On Wednesday, January 11, 2012 4:11:10 pm Rob Clark wrote:
> > System: Dell 600sc
> > Currently running: 8.2-RELEASE
> > 
> > In attempting to update this system to 8-STABLE I did
> > what I usually do to update a system (see below).
> > make buildworld completes successfully, but make
> > buildkernel does not. I usually create a custom
> > kernel, but for this system I went with GENERIC as
> > is.  
> > 
> > The error message is: 
> > /usr/src/sys/kern/init_sysent.c:568: error: invalid
> > application of 'sizeof' to incomplete type 'struct
> > posix_fadvise_args' /usr/src/sys/kern/init_sysent.c:568:
> > error: 'posix_fadvise' undeclared here (not in a
> > function) *** Error code 1
> 
> This sounds like you have an incomplete tree that only got part of a change 
> (specifically, /usr/src/sys/sys/sysproto.h seems stale).  Have you tried a 
> different cvsup mirror?
> 
> -- 
> John Baldwin

Good point. Didn't try that, I'll give it a go.

Rob

-- 
Rob Clark 
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Doug Barton

>> chflags -R noschg /usr/obj/usr
>> rm -rf /usr/obj/usr

It's much faster to do:

/bin/rm -rf ${obj}/* 2> /dev/null || /bin/chflags -R 0 ${obj}/* &&
/bin/rm -rf ${obj}/*




-- 

You can observe a lot just by watching. -- Yogi Berra

Breadth of IT experience, and depth of knowledge in the DNS.
Yours for the right price.  :)  http://SupersetSolutions.com/

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Garrett Cooper
On Thu, Jan 12, 2012 at 5:52 PM, Doug Barton  wrote:
>
>>> chflags -R noschg /usr/obj/usr
>>> rm -rf /usr/obj/usr
>
> It's much faster to do:
>
> /bin/rm -rf ${obj}/* 2> /dev/null || /bin/chflags -R 0 ${obj}/* &&
> /bin/rm -rf ${obj}/*

+1. And it's faster yet when you can run parallel copies of rm on
different portions of the directory tree (e.g. xargs, find [..] -exec)
as rm is O(n).
Cheers,
-Garrett
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Stephen Montgomery-Smith

On 01/12/2012 09:11 PM, Garrett Cooper wrote:


+1. And it's faster yet when you can run parallel copies of rm on
different portions of the directory tree (e.g. xargs, find [..] -exec)
as rm is O(n).


I have always wondered about that!  I thought that the main bottleneck 
in "rm -r" might be deleting directories which are not in the disk 
cache, which then have to be copied from the disk.  Copying two 
different parts of the disk into cache - well it has to be done one at a 
time whether the jobs asking for the copy of the disk are going 
concurrently or consecutively.


And perhaps two instances of "rm -r" acting on different parts of the 
hard drive will cause disk thrashing, so that they might even slow each 
other down.


But this is all guess work on my part.

If I am wrong, and "rm -r" does work faster when working in parallel on 
different parts, then why doesn't someone write the "rm" command to fork 
copies of itself that work on different parts of large trees?


Stephen
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Joe Ennis
On Thu, 12 Jan 2012 19:11:54 -0800
Garrett Cooper  wrote:

> On Thu, Jan 12, 2012 at 5:52 PM, Doug Barton 
> wrote:
> >
> >>> chflags -R noschg /usr/obj/usr
> >>> rm -rf /usr/obj/usr
> >
> > It's much faster to do:
> >
> > /bin/rm -rf ${obj}/* 2> /dev/null || /bin/chflags -R 0 ${obj}/* &&
> > /bin/rm -rf ${obj}/*
> 
> +1. And it's faster yet when you can run parallel copies of rm on
> different portions of the directory tree (e.g. xargs, find [..] -exec)
> as rm is O(n).
> Cheers,
> -Garrett
> ___
> freebsd-stable@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to
> "freebsd-stable-unsubscr...@freebsd.org"

What I've been doing just before I do a make buildworld/buildkernel
is:

mdmfs -s2g md1 /usr/obj

on a clean /usr/obj . If I need to recompile before a boot, just umount
and recreate.

Provides a little performance boost too.

Regards,

--
joe
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Garrett Cooper
On Thu, Jan 12, 2012 at 7:23 PM, Stephen Montgomery-Smith
 wrote:
> On 01/12/2012 09:11 PM, Garrett Cooper wrote:
>
>> +1. And it's faster yet when you can run parallel copies of rm on
>> different portions of the directory tree (e.g. xargs, find [..] -exec)
>> as rm is O(n).
>
>
> I have always wondered about that!  I thought that the main bottleneck in
> "rm -r" might be deleting directories which are not in the disk cache, which
> then have to be copied from the disk.  Copying two different parts of the
> disk into cache - well it has to be done one at a time whether the jobs
> asking for the copy of the disk are going concurrently or consecutively.
>
> And perhaps two instances of "rm -r" acting on different parts of the hard
> drive will cause disk thrashing, so that they might even slow each other
> down.

Not really. The problem is limited by the fact that rm(1) needs to
dive into the kernel each time it does an unlink(1) syscall. Per Prof.
McKusick's teaching and the way things are designed from libc to disk
-- the process is artificially like: rm -> syscall -> top-half of the
kernel -> vfs -> filesystem (in my case ZFS) -> geom -> scsi layer ->
storage controller/disk driver. This is super expensive as n becomes
large as the path is long, so the best to amortize the operation is to
run more instances in parallel as there should be a relatively low
chance of there being lock contention (assuming you're not consuming
too many GIANT locks, you don't overprovision your system, etc). See
the loop in .../bin/rm/rm.c:rm_tree(char**) if you're curious where
things have issues.

> But this is all guess work on my part.
>
> If I am wrong, and "rm -r" does work faster when working in parallel on
> different parts,

Yes. Less modifications to directory entries -> less vfs locking
contention and less useless writing back to disk -> better.

> then why doesn't someone write the "rm" command to fork
> copies of itself that work on different parts of large trees?

Perhaps. The point is that my systems can do more work in parallel
with a larger number of rm's in order to improve throughput. I learned
this the hard way when I started deleting a prepopulated directory
with pjd's fstest: it took hours to prune directory entries the O(n)
way by a small fraction (<10% of 4 mil. or 40 mil. files). When I did
stuff in parallel (have 8 regular cores, 8 SMT cores), the process
took less than an hour to complete.

Thanks,
-Garrett
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: GENERIC make buildkernel error / fails - posix_fadvise

2012-01-12 Thread Doug Barton
On 01/12/2012 20:10, Garrett Cooper wrote:
> When I did
> stuff in parallel (have 8 regular cores, 8 SMT cores), the process
> took less than an hour to complete.

Sounds like you should get to work figuring out how to optimize rm to
take advantage of this. :)


Doug

-- 

You can observe a lot just by watching. -- Yogi Berra

Breadth of IT experience, and depth of knowledge in the DNS.
Yours for the right price.  :)  http://SupersetSolutions.com/

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"