niXforums Forum Index
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   PreferencesPreferences   Log in to check your private messagesLog in to check your private messages   Log inLog in 
·  nixdoc.net ·  man pages ·  Linux HOWTOs ·  FreeBSD Tips ·  Forums
navigation Forum index » *nix » BSD » FreeBSD » mail-lists » Architecture
Removing wait union
Post new topic   Reply to topic Page 1 of 3 [38 Posts] View previous topic :: View next topic
Goto page:  1, 2, 3 Next
Author Message
Bruce Evans
*nix forums Guru Wannabe


Joined: 22 Mar 2002
Posts: 190

PostPosted: Sun Jun 02, 2002 3:22 pm    Post subject: Re: Removing wait union Reply with quote

On Sun, 2 Jun 2002, Mike Barcroft wrote:

Quote:
Does anyone have any objections to removing the deprecated 4.2/4.3BSD
wait union in <sys/wait.h>? It's been deprecating since Rev 1.1 and
there are only a few consumers in the base system. Attached are two
patches, one to removing it from <sys/wait.h> and the other to remove
its consumers. Changes to lpd(Cool sent directly to its maintainer.

I think the only potential problem is use of the compatibility cruft
in deprecware outside the base system. It would be useful to have a
quick way to determine how many ports a change in a standard header
affects.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Mike Barcroft
*nix forums beginner


Joined: 03 Apr 2002
Posts: 25

PostPosted: Mon Jun 03, 2002 9:08 pm    Post subject: Re: Removing wait union Reply with quote

Bruce Evans <bde@zeta.org.au> writes:
Quote:
On Sun, 2 Jun 2002, Mike Barcroft wrote:

Does anyone have any objections to removing the deprecated 4.2/4.3BSD
wait union in <sys/wait.h>? It's been deprecating since Rev 1.1 and
there are only a few consumers in the base system. Attached are two
patches, one to removing it from <sys/wait.h> and the other to remove
its consumers. Changes to lpd(Cool sent directly to its maintainer.

I think the only potential problem is use of the compatibility cruft
in deprecware outside the base system. It would be useful to have a
quick way to determine how many ports a change in a standard header
affects.

Kris is going to do a test run of the ports build for me.

Best regards,
Mike Barcroft

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Kris Kennaway
*nix forums Guru


Joined: 28 Apr 2002
Posts: 634

PostPosted: Mon Jun 03, 2002 9:25 pm    Post subject: Re: Removing wait union Reply with quote

On Mon, Jun 03, 2002 at 01:22:14AM +1000, Bruce Evans wrote:
Quote:
On Sun, 2 Jun 2002, Mike Barcroft wrote:

Does anyone have any objections to removing the deprecated 4.2/4.3BSD
wait union in <sys/wait.h>? It's been deprecating since Rev 1.1 and
there are only a few consumers in the base system. Attached are two
patches, one to removing it from <sys/wait.h> and the other to remove
its consumers. Changes to lpd(Cool sent directly to its maintainer.

I think the only potential problem is use of the compatibility cruft
in deprecware outside the base system. It would be useful to have a
quick way to determine how many ports a change in a standard header
affects.

I'm always happy to test proposed patches on the ports cluster.

Kris
Back to top
Terry Lambert
*nix forums Guru


Joined: 19 Mar 2002
Posts: 434

PostPosted: Mon Jun 03, 2002 9:50 pm    Post subject: Re: Removing wait union Reply with quote

Kris Kennaway wrote:
Quote:
On Mon, Jun 03, 2002 at 01:22:14AM +1000, Bruce Evans wrote:
I think the only potential problem is use of the compatibility cruft
in deprecware outside the base system. It would be useful to have a
quick way to determine how many ports a change in a standard header
affects.

I'm always happy to test proposed patches on the ports cluster.

I think the problem needs something other than the ports cluster.

The ports cluster is designed to keep dependencies seperate, so it
serializes a lot of things that could otherwise be done in parallel,
to ensure dependency order is maintained.

I think that, for the most part, what you care about in this case is
not catching broken dependencies, but catching breakage caused by
system cahnges, not inter-port dependency changes.

This really argues that you could install the ports sources on a
machine, and then build out all of the ports from local copies of
all the packages, in parallel -- if you had already installed the
things on which they dependend on the machine.

This would let you basically re-build in parallel, without needing
to enforce ports dependency order, on a single machine instead of
a cluster, and much faster, because all the dependencies would
already be there (from the previous "install" of all ports, rather
than from the build process for an individual port). All the builds
could be done in parallel in their own subdirectories (not installed),
so the process could be much fater than using the cluster the way the
cluser is supposed to be used.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Garance A Drosihn
*nix forums Guru Wannabe


Joined: 21 Mar 2002
Posts: 190

PostPosted: Mon Jun 03, 2002 10:51 pm    Post subject: Re: Removing wait union Reply with quote

At 4:50 PM -0700 6/3/02, Terry Lambert wrote:
Quote:
All the builds could be done in parallel in their own
subdirectories (not installed), so the process could be
much faster than using the cluster the way the cluser is
supposed to be used.

This implies the building of a second cluster, one that is
setup for doing these parallel builds. That sounds like
it would be more trouble (to setup, and to keep setup)
than it's worth. Might as well just use the tools we
already have.

--
Garance Alistair Drosehn = gad@gilead.netel.rpi.edu
Senior Systems Programmer or gad@freebsd.org
Rensselaer Polytechnic Institute or drosih@rpi.edu

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Kris Kennaway
*nix forums Guru


Joined: 28 Apr 2002
Posts: 634

PostPosted: Mon Jun 03, 2002 11:15 pm    Post subject: Re: Removing wait union Reply with quote

On Mon, Jun 03, 2002 at 04:50:01PM -0700, Terry Lambert wrote:
Quote:
Kris Kennaway wrote:
On Mon, Jun 03, 2002 at 01:22:14AM +1000, Bruce Evans wrote:
I think the only potential problem is use of the compatibility cruft
in deprecware outside the base system. It would be useful to have a
quick way to determine how many ports a change in a standard header
affects.

I'm always happy to test proposed patches on the ports cluster.

I think the problem needs something other than the ports cluster.

The ports cluster is designed to keep dependencies seperate, so it
serializes a lot of things that could otherwise be done in parallel,
to ensure dependency order is maintained.

In practise this isn't an issue. I haven't obtained accurate
statistics, but the cluster runs at full capacity for pretty much the
entire build.

Kris
Back to top
Terry Lambert
*nix forums Guru


Joined: 19 Mar 2002
Posts: 434

PostPosted: Mon Jun 03, 2002 11:24 pm    Post subject: Re: Removing wait union Reply with quote

Garance A Drosihn wrote:
Quote:
At 4:50 PM -0700 6/3/02, Terry Lambert wrote:
All the builds could be done in parallel in their own
subdirectories (not installed), so the process could be
much faster than using the cluster the way the cluser is
supposed to be used.

This implies the building of a second cluster, one that is
setup for doing these parallel builds. That sounds like
it would be more trouble (to setup, and to keep setup)
than it's worth. Might as well just use the tools we
already have.

No, you don't need a cluster.

I think people are not understanding the problem.

The problem is that a change to the system breaks the build
of a package.

What this means is that you should be able to:

1) Build all the packages on a system
2) Install everything that wasn't automatically installed as
a dependency

This gives you a system where all the *port* dependencies of any
randomly selected port are pre-satisfied, so the building can take
place independently from any other port.

It's about getting to the point where the dependencies are presatisfied.

The ports cluster is not about that. It's all about ensuring that
no dependencies are lost, or implicitly satisfied.


Effectively, you could get very close to a system that could be
used to build all the ports in parallel, in their own directory,
by simply installing all the packages in existance. You really
don't give a damn that the installed *binaries* of a port on
which you depend for actual operation would end up being different,
too. So you break the need for dependency order enforcement between
different ports.


In very simple terms:

o The point of the ports cluster is to make sure that
dependencies on other ports aren't broken

o The point of this system would be to make sure that
dependencies on the system aren't broken

Two very different problems. The solution of the first needs a
ports cluster to be able to solve it within about 8 hours. But
the much of that 8 hours is based on dependency ordering that
you can throw away, if you are trying to solve the "system changed"
problem, rather than the "ports changed" problem.

Make sense?

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Terry Lambert
*nix forums Guru


Joined: 19 Mar 2002
Posts: 434

PostPosted: Mon Jun 03, 2002 11:33 pm    Post subject: Re: Removing wait union Reply with quote

Kris Kennaway wrote:
Quote:
I think the problem needs something other than the ports cluster.

The ports cluster is designed to keep dependencies seperate, so it
serializes a lot of things that could otherwise be done in parallel,
to ensure dependency order is maintained.

In practise this isn't an issue. I haven't obtained accurate
statistics, but the cluster runs at full capacity for pretty much the
entire build.

You need to keep statistics of how many times each individual port
is built, in the cluster case (i.e. you need a combinatoric dependency
map and a way to factor out permutations that are necessary for
solving the ports problem, but not necessary for solving the "what
breaks?" problem).

When you build a given port on its own little virtual box, you
also build all the ports on which it depends. This is by design,
since it avoid the problem of finding dependencies which are not
explicitly called out.

In the case of a system change, you aren't concerned about that;
in fact, you *want* it to happen, since it reduces the total build
time.

How many machines are in the ports cluster? Knowing how many total
cycles are required, and how many redundant dependency builds happen,
would be a good way to ballpark whether it's feasible to build a
single machine that can tell what is broken by a proposed base OS
change, before the change is checked in.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Kris Kennaway
*nix forums Guru


Joined: 28 Apr 2002
Posts: 634

PostPosted: Mon Jun 03, 2002 11:37 pm    Post subject: Re: Removing wait union Reply with quote

On Mon, Jun 03, 2002 at 06:24:45PM -0700, Terry Lambert wrote:

Quote:
No, you don't need a cluster.

Um, yes you do.

Quote:
I think people are not understanding the problem.

The problem is that a change to the system breaks the build
of a package.

What this means is that you should be able to:

1) Build all the packages on a system
2) Install everything that wasn't automatically installed as
a dependency

Um, Terry, we have over 7000 ports now. It takes our 8-way cluster 20
hours to build them (sorry, the 8 hours I said earlier was wrong); as
already stated it runs at close to 100% capacity the entire time.
Therefore a good estimate of the number of equivalent CPU-hours is
8*20 hours = 6 2/3 CPU-days.

Very little time is wasted with the cluster sitting idle waiting for
dependencies to build (and I can probably get that down to 0 time
wasted if I just reorder the makefile a bit to start the build of long
dependency branches like GNOME first - GNOME and KDE are the only
"choke points" where the cluster ends up idling for a few minutes
except for one or two machines: by that time everything else is
finished anyway).

Quote:
Two very different problems. The solution of the first needs a
ports cluster to be able to solve it within about 8 hours. But
the much of that 8 hours is based on dependency ordering that
you can throw away, if you are trying to solve the "system changed"
problem, rather than the "ports changed" problem.

Make sense?

No, because the above is wrong ;-)

Please accept that I actually know what I'm talking about (since I've
been managing the ports cluster for about 8 months now) and just drop
the matter.

Kris
Back to top
Kris Kennaway
*nix forums Guru


Joined: 28 Apr 2002
Posts: 634

PostPosted: Mon Jun 03, 2002 11:39 pm    Post subject: Re: Removing wait union Reply with quote

On Mon, Jun 03, 2002 at 06:33:57PM -0700, Terry Lambert wrote:
Quote:
Kris Kennaway wrote:
I think the problem needs something other than the ports cluster.

The ports cluster is designed to keep dependencies seperate, so it
serializes a lot of things that could otherwise be done in parallel,
to ensure dependency order is maintained.

In practise this isn't an issue. I haven't obtained accurate
statistics, but the cluster runs at full capacity for pretty much the
entire build.

You need to keep statistics of how many times each individual port
is built, in the cluster case (i.e. you need a combinatoric dependency
map and a way to factor out permutations that are necessary for
solving the ports problem, but not necessary for solving the "what
breaks?" problem).

Here are your statistics.

Each port is built precisely this many times:

1

Jesus, Terry, please give us a little bit of credit for not being
completely stupid.

Kris
Back to top
Will Andrews
*nix forums beginner


Joined: 04 Jun 2002
Posts: 21

PostPosted: Tue Jun 04, 2002 1:42 am    Post subject: Re: Removing wait union Reply with quote

On Mon, Jun 03, 2002 at 06:33:57PM -0700, Terry Lambert wrote:
Quote:
How many machines are in the ports cluster? Knowing how many total
cycles are required, and how many redundant dependency builds happen,

Terry, you just proved you don't actually know anything about the
software used to build packages on the bento cluster (and
potentially elsewhere).

I would suggest that you do a little resarch before talking and
leave the package build cluster details to the people who run it.

Regards,
--
wca
Back to top
John Baldwin
*nix forums Guru Wannabe


Joined: 27 Mar 2002
Posts: 278

PostPosted: Tue Jun 04, 2002 1:43 am    Post subject: Re: Removing wait union Reply with quote

On 04-Jun-2002 Terry Lambert wrote:
Quote:
Kris Kennaway wrote:
I think the problem needs something other than the ports cluster.

The ports cluster is designed to keep dependencies seperate, so it
serializes a lot of things that could otherwise be done in parallel,
to ensure dependency order is maintained.

In practise this isn't an issue. I haven't obtained accurate
statistics, but the cluster runs at full capacity for pretty much the
entire build.

You need to keep statistics of how many times each individual port
is built, in the cluster case (i.e. you need a combinatoric dependency
map and a way to factor out permutations that are necessary for
solving the ports problem, but not necessary for solving the "what
breaks?" problem).

Each port should be built once.

Quote:
When you build a given port on its own little virtual box, you
also build all the ports on which it depends. This is by design,
since it avoid the problem of finding dependencies which are not
explicitly called out.

Erm, nope, dependencies are pkg_add'd and then the port is built (IIRC).
If a port doesn't specify a dependency that it needs then that is an error.

--

John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Terry Lambert
*nix forums Guru


Joined: 19 Mar 2002
Posts: 434

PostPosted: Tue Jun 04, 2002 4:23 am    Post subject: Avoiding unnecessary breakage (was Re: Removing wait union) Reply with quote

Will Andrews wrote:
[ ... ]

This thread is not about the ports cluster, per se.

We could actually care less about actually building the ports as
they will be used, in this case. It is a proposed means, not an
ends.

I have changed the subject to avoid any further confusion.

--

This whole thread started because Kris wanted developers to be
individually responsible for fixing the ports that broke because
of their commits to the OS, or, as a minimum second derivative,
for notifying the official maintainer of a port that was broken
as a result of such a commit.

This requires that developers making such changes have a-priori
knowledge of the effects of their changes on code that is probably
not, nor ever will be, installed on their machines.

The problem with just requiring this unilaterally is that I don't
know of one developer, other than Kris, who has a box with all of
the ports source code on it so that changes that might have this
impact can be tested.

Why am I posting at all in this thread?

I'm personally philosophically opposed to the idea of "bit rot":
when the ISODE and X.25 code "rotted" because it was not maintained
when the routing code was changed out from under it, and when the
LFS code was moved to the attic because the unified VM/buffer cache
code changes were checked in without maintaining the LFS code (a
client of the VM and buffer cache code), it really pissed me off.
It really, really, really pissed me off.

Kris has identified an analogous situation with base system changes
impacting ports. It's a natural extension of the same philosophy,
though it's harder to justify unilaterally, because it involved third
party code that's not "part of the OS".


My participation in this thread is therefore about whether or not
it's possible to come up with some method of determining what
ports will be broken by a proposed change, before that change is
made, and in a reasonable time frame, with a reasonable amount of
effort, which it would be reasonable to expect a developer who is
contemplating such a change to expend.


In effect, this means that, if this idea is to go forward, there
are only a few obvious courses of action:

1) Build another "ports cluster" so that changes can be tested
before they are committed

2) Find another way around the problem, which has less overhead
than #1

3) Run all such changes through the existing ports cluster by
having Kris apply them locally on the machines, without them
having been checked into CVS, and giving a thumbs up/down to
the change.

4) Tell Kris "lump it": breakage is going to happen, and it's
up to you as the ports guy to mop out the rest rooms after
the concert, after we have peed all over the fixtures (i.e.
leave things as they are now).

Call me crazy, but I think #4 is not an option. Kris would not
have raised the issue if it were OK with him to define the breakage
as "necessary".

I also don't think that #3 is an option. The anti-process people
would probably object to having to run their code through another
volunteer, who could not say "yes/no" until he could find the time.
It would, at the very least, be a definite bottleneck.

#1's a possibility, but it's unlikely to be a useful possibility,
and it almost implies #3, since it requires a gatekeeper, if only
for scheduling use of the cluster. Such resources would probably
be better spent on doing the primary work of the ports cluster,
anyway: building ports.

So that leaves #2.

If you can think of any other options, please chime in *now*.


So if you don't mind, I'd like to continue looking at ways to
attack implementing #2, unless you are prepared to find someone
else (or ar volunteering yourself, instead of implicitly volunteering
Kris, again) to muck out the restrooms after the next concert.

Thanks,
-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Terry Lambert
*nix forums Guru


Joined: 19 Mar 2002
Posts: 434

PostPosted: Tue Jun 04, 2002 4:43 am    Post subject: Avoiding unnecessary breakage Reply with quote

Kris Kennaway wrote:
Quote:
On Mon, Jun 03, 2002 at 06:24:45PM -0700, Terry Lambert wrote:
No, you don't need a cluster.

Um, yes you do.

If this is the *only possible way* to tell if a port will be broken
by a FreeBSD change, then I hold little hope that your request that
people avoid breaking ports with their commits can ever be satisfied.


Quote:
Um, Terry, we have over 7000 ports now. It takes our 8-way cluster 20
hours to build them (sorry, the 8 hours I said earlier was wrong); as
already stated it runs at close to 100% capacity the entire time.
Therefore a good estimate of the number of equivalent CPU-hours is
8*20 hours = 6 2/3 CPU-days.

Very little time is wasted with the cluster sitting idle waiting for
dependencies to build (and I can probably get that down to 0 time
wasted if I just reorder the makefile a bit to start the build of long
dependency branches like GNOME first - GNOME and KDE are the only
"choke points" where the cluster ends up idling for a few minutes
except for one or two machines: by that time everything else is
finished anyway).


Thanks for the real information. I was hoping, from my old
understanding of the ports build out from a past discussion
with Satoshi Asami, that it was possible to shave a factorial
off of the build time because the build-out itself was reponsible
for signalling missing package dependencies.

This message implies that, even if you installed packages for
previous versions of all ports so that all build dependencies bould
be satisfied for all ports, without building anything but the port
itself (without installing it), it would not significantly reduce
the overall build time.

I knew that some of the build-out was serialized, but I was hoping
the average dependency depth wasn't as shallow as it appears to
be. 8-(.

If this is all that can be done, it look like quadrupling the
number of machines, and making the cluster generally available
to attempts builds on "-current + patches" (to get the test time
for ports breakages caused by a base OS change to under 5 hours),
is probably not a workable solution to the problem. I rather
expect that if the resources for this existed, they would already
be in use as part of the "ports cluster".

Short of going on an "interface usage classification" binge, I
don't really see how it would be possible to automate the process
of identifying ports that would be broken by a proposed change,
other than breaking them, and letting you do the build that finds
the breakage, and the notifying the ports maintainers that they
need to "take care of it" on a per-individual-port basis.


Quote:
No, because the above is wrong ;-)

Please accept that I actually know what I'm talking about (since I've
been managing the ports cluster for about 8 months now) and just drop
the matter.

It's ancillary to the matter you raised, about people breaking
ports with commits to the base OS.

I don't believe in "bit rot", but if, as everyone is claiming, it's
impossible to reduce the problem, I think you are going to have to
just live with the consequences of base OS changes meaning broken
ports which don't show up until you do your builds. Sorry. 8-(.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Terry Lambert
*nix forums Guru


Joined: 19 Mar 2002
Posts: 434

PostPosted: Tue Jun 04, 2002 4:44 am    Post subject: Re: Removing wait union Reply with quote

John Baldwin wrote:
Quote:
Each port should be built once.

[ ... ]

Quote:
Erm, nope, dependencies are pkg_add'd and then the port is built (IIRC).
If a port doesn't specify a dependency that it needs then that is an error.

No blood in that stone, then. Looks like option #4 wins. 8-(.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Back to top
Google

Back to top
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 3 [38 Posts] Goto page:  1, 2, 3 Next
View previous topic :: View next topic
The time now is Thu Jan 08, 2009 6:08 am | All times are GMT
navigation Forum index » *nix » BSD » FreeBSD » mail-lists » Architecture
Jump to:  

Similar Topics
Topic Author Forum Replies Last Post
No new posts Removing db from environment mike.klaas@gmail.com Berkeley DB 0 Fri Jul 21, 2006 5:14 am
No new posts Help Needed. Removing a Folder Problem Kilicaslan Fatih python 4 Thu Jul 20, 2006 9:57 am
No new posts union // deque Michael Sgier C++ 1 Wed Jul 19, 2006 9:18 pm
No new posts Union FS David Baron Debian 2 Wed Jul 19, 2006 6:40 am
No new posts Removing static routes PC Datasheet AIX 3 Mon Jul 17, 2006 9:41 am

Sprint Ringtones | Debt Consolidation | Problem Mortgage | Business Sales | Credit Counseling
Copyright © 2004-2005 DeniX Solutions SRL
 
Other DeniX Solutions sites: Unix/Linux blog |  electronics forum |  medicine forum |  science forum | 
Privacy Policy


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.2006s ][ Queries: 16 (0.0370s) ][ GZIP on - Debug on ]