ports/103296: [NEW PORT] sysutils/torque: Open source resource manager

trasz trasz at pin.if.uz.zgora.pl
Fri Sep 15 08:20:18 UTC 2006


>Number:         103296
>Category:       ports
>Synopsis:       [NEW PORT] sysutils/torque: Open source resource manager
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 15 08:20:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     trasz
>Release:        FreeBSD 6.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD pin.if.uz.zgora.pl 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sat Jun  3 01:12:10 CEST
>Description:
TORQUE is an open source resource manager providing control over
batch jobs and distributed compute nodes. It is a community effort
based on the original *PBS project and, with more than 1,200 patches,
has incorporated significant advances in the areas of scalability,
fault tolerance, and feature extensions contributed by NCSA, OSC,
USC , the U.S. Dept of Energy, Sandia, PNNL, U of Buffalo, TeraGrid,
and many other leading edge HPC organizations.

WWW: http://www.clusterresources.com/pages/products/torque-resource-manager.php

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- torque-2.1.2.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	torque
#	torque/Makefile
#	torque/distinfo
#	torque/pkg-descr
#	torque/pkg-plist
#	torque/files
#	torque/files/pkg-message.in
#	torque/files/pbs_sched.sh.in
#	torque/files/pbs_server.sh.in
#	torque/files/patch-mom_mach.c
#	torque/files/pbs_mom.sh.in
#	torque/files/patch-fifo-Makefile.in
#	torque/files/patch-pbs_mkdirs.in
#
echo c - torque
mkdir -p torque > /dev/null 2>&1
echo x - torque/Makefile
sed 's/^X//' >torque/Makefile << 'END-of-torque/Makefile'
X# New ports collection makefile for:	torque
X# Date created:			20 Jul 2006
X# Whom:				trasz
X#
X# $FreeBSD$
X#
X
XPORTNAME=	torque
XPORTVERSION=	2.1.2
XCATEGORIES=	sysutils parallel
XMASTER_SITES=	http://www.clusterresources.com/downloads/torque/
X
XMAINTAINER=	trasz at pin.if.uz.zgora.pl
XCOMMENT=	Open source resource manager
X
XRESTRICTED=	Redistribution is only permitted for non-commercial, non-profit purposes
XGNU_CONFIGURE=	yes
XCONFIGURE_ARGS=	--with-rcp=scp
XUSE_GMAKE=	yes
XUSE_RC_SUBR=	pbs_server.sh pbs_sched.sh pbs_mom.sh
XSUB_FILES=	pkg-message
XUSE_LDCONFIG=	yes
XPKGMESSAGE=	${WRKDIR}/pkg-message
X
XMAN1=		qalter.1 qdel.1 qhold.1 qmove.1 qmsg.1 qorder.1 qrerun.1 \
X		qrls.1 qselect.1 qsig.1 qstat.1 qsub.1 pbs.1 pbsdsh.1 \
X		nqs2pbs.1 basl2c.1 xpbs.1 xpbsmon.1 qmgr.1
X
XMAN3=		rpp.3 tm.3 pbs_alterjob.3 pbs_connect.3 pbs_default.3 \
X		pbs_deljob.3 pbs_disconnect.3 pbs_geterrmsg.3 pbs_holdjob.3 \
X		pbs_locate.3 pbs_manager.3 pbs_movejob.3 pbs_msgjob.3 \
X		pbs_orderjob.3 pbs_rerunjob.3 pbs_rescquery.3 \
X		pbs_rescreserve.3 pbs_rlsjob.3 pbs_runjob.3 pbs_selectjob.3 \
X		pbs_selstat.3 pbs_sigjob.3 pbs_stagein.3 pbs_statjob.3 \
X		pbs_statnode.3 pbs_statque.3 pbs_statserver.3 pbs_submit.3 \
X		pbs_terminate.3
X
XMAN7=		pbs_job_attributes.7 pbs_queue_attributes.7 \
X		pbs_server_attributes.7 pbs_resources_aix4.7 \
X		pbs_resources_digitalunix.7 pbs_resources_aix5.7 \
X		pbs_resources_darwin.7 pbs_resources_freebsd.7 \
X		pbs_resources_fujitsu.7 pbs_resources_hpux10.7 \
X		pbs_resources_hpux11.7 pbs_resources_irix5.7 \
X		pbs_resources_irix6.7 pbs_resources_irix6array.7 \
X		pbs_resources_linux.7 pbs_resources_netbsd.7 \
X		pbs_resources_solaris5.7 pbs_resources_solaris7.7 \
X		pbs_resources_sp2.7 pbs_resources_sunos4.7 \
X		pbs_resources_unicos8.7 pbs_resources_unicosmk2.7
X
XMAN8=		pbs_mom.8 pbsnodes.8 pbs_sched_basl.8 pbs_sched_cc.8 \
X		pbs_sched_tcl.8 pbs_server.8 qdisable.8 qenable.8 \
X		qrun.8 qstart.8 qstop.8 qterm.8
X
XMLINKS=		pbs_sched_cc.8 pbs_sched.8 \
X		pbs_resources_freebsd.7 pbs_resources.7
X
X.include <bsd.port.pre.mk>
X
X.if ${OSVERSION} < 500000
XBROKEN=	Doesn't build on 4.x
X.endif
X
Xpost-install:
X	${INSTALL_SCRIPT} ${WRKSRC}/torque.setup ${EXAMPLESDIR}
X	@${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.post.mk>
END-of-torque/Makefile
echo x - torque/distinfo
sed 's/^X//' >torque/distinfo << 'END-of-torque/distinfo'
XMD5 (torque-2.1.2.tar.gz) = f1b37efb5d4770a0105c66294a05d140
XSHA256 (torque-2.1.2.tar.gz) = c7bade897fc12f27f128e4081c8ed1f3137bf42684ca239c48b18eb01314710a
XSIZE (torque-2.1.2.tar.gz) = 2686724
END-of-torque/distinfo
echo x - torque/pkg-descr
sed 's/^X//' >torque/pkg-descr << 'END-of-torque/pkg-descr'
XTORQUE is an open source resource manager providing control over
Xbatch jobs and distributed compute nodes. It is a community effort
Xbased on the original *PBS project and, with more than 1,200 patches,
Xhas incorporated significant advances in the areas of scalability,
Xfault tolerance, and feature extensions contributed by NCSA, OSC,
XUSC , the U.S. Dept of Energy, Sandia, PNNL, U of Buffalo, TeraGrid,
Xand many other leading edge HPC organizations.
X
XWWW: http://www.clusterresources.com/pages/products/torque-resource-manager.php
END-of-torque/pkg-descr
echo x - torque/pkg-plist
sed 's/^X//' >torque/pkg-plist << 'END-of-torque/pkg-plist'
Xinclude/pbs_error.h
Xinclude/pbs_ifl.h
Xinclude/tm.h
Xinclude/tm_.h
Xinclude/rpp.h
Xinclude/rm.h
Xlib/libtorque.so.0
Xlib/libtorque.so
Xlib/libtorque.la
Xlib/libtorque.a
Xsbin/pbs_server
Xsbin/pbs_sched
Xsbin/pbs_mom
Xsbin/pbs_iff
Xbin/qalter
Xbin/qdel
Xbin/qhold
Xbin/qmove
Xbin/qorder
Xbin/qmsg
Xbin/qrerun
Xbin/qrls
Xbin/qselect
Xbin/qsig
Xbin/qstat
Xbin/qsub
Xbin/pbsdsh
Xbin/qdisable
Xbin/qenable
Xbin/qrun
Xbin/qstart
Xbin/qstop
Xbin/qterm
Xbin/pbsnodes
Xbin/qmgr
Xbin/nqs2pbs
Xsbin/pbs_demux
Xsbin/momctl
Xbin/chk_tree
Xbin/hostn
Xbin/printjob
Xbin/printtracking
Xbin/tracejob
Xbin/pbs-config
X%%EXAMPLESDIR%%/torque.setup
X%%EXAMPLESDIR%%/var/spool/torque/pbs_environment
X%%EXAMPLESDIR%%/var/spool/torque/server_name
X%%EXAMPLESDIR%%/var/spool/torque/sched_priv/sched_config
X%%EXAMPLESDIR%%/var/spool/torque/sched_priv/resource_group
X%%EXAMPLESDIR%%/var/spool/torque/sched_priv/holidays
X%%EXAMPLESDIR%%/var/spool/torque/sched_priv/dedicated_time
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/aux
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/checkpoint
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/mom_logs
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/mom_priv/jobs
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/mom_priv
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/sched_logs
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/sched_priv
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_logs
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv/jobs
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv/queues
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv/acl_svr
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv/acl_hosts
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv/acl_users
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv/acl_groups
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv/accounting
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/server_priv
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/undelivered
X at dirrm %%EXAMPLESDIR%%/var/spool/torque/spool
X at dirrm %%EXAMPLESDIR%%/var/spool/torque
X at dirrm %%EXAMPLESDIR%%/var/spool
X at dirrm %%EXAMPLESDIR%%/var
X at dirrm %%EXAMPLESDIR%%
END-of-torque/pkg-plist
echo c - torque/files
mkdir -p torque/files > /dev/null 2>&1
echo x - torque/files/pkg-message.in
sed 's/^X//' >torque/files/pkg-message.in << 'END-of-torque/files/pkg-message.in'
X***************************************************************
XYou can find example configuration in
X
X	%%PREFIX%%/share/examples/torque/var/spool/torque
X
XOn all machines, both server and computing nodes, copy it's
Xcontents into
X
X	/var/spool/torque/
X
Xand put hostname of the server into
X
X	/var/spool/torque/server_name
X
XOn computing nodes, put '$pbsserver ip.address.of.server' into
X	
X	/var/spool/torque/mom_priv/config
X
XOn server, put hostnames of computing nodes, one per line, into
X
X	/var/spool/torque/server_priv/nodes
X
XOn computing nodes, add the following line to /etc/rc.conf:
X
X	pbs_mom_enable="YES"
X
XOn TORQUE server, add the following lines to /etc/rc.conf:
X
X	pbs_server_enable="YES"
X	pbs_sched_enable="YES"
X
XTo configure queues on server, execute
X
X	%%PREFIX%%/share/examples/torque/torque.setup <admin>
X
XFor further information, see
X
X	http://www.clusterresources.com/torquedocs21/
X
X***************************************************************
END-of-torque/files/pkg-message.in
echo x - torque/files/pbs_sched.sh.in
sed 's/^X//' >torque/files/pbs_sched.sh.in << 'END-of-torque/files/pbs_sched.sh.in'
X#!/bin/sh
X
X# PROVIDE: pbs_sched
X# REQUIRE: pbs_server
X#
X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
X# to enable this service:
X#
X# pbs_sched_enable (bool):   Set to NO by default.
X#               Set it to YES to enable pbs_sched.
X#
X
X. %%RC_SUBR%%
X
Xname="pbs_sched"
Xrcvar=${name}_enable
X
Xpidfile=/var/spool/torque/sched_priv/sched.lock
Xcommand=%%PREFIX%%/sbin/${name}
X
Xload_rc_config $name
X
X: ${pbs_sched_enable="NO"}
X
Xcommand_args=""
X
Xrun_rc_command "$1"
END-of-torque/files/pbs_sched.sh.in
echo x - torque/files/pbs_server.sh.in
sed 's/^X//' >torque/files/pbs_server.sh.in << 'END-of-torque/files/pbs_server.sh.in'
X#!/bin/sh
X
X# PROVIDE: pbs_server
X# REQUIRE: 
X#
X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
X# to enable this service:
X#
X# pbs_server_enable (bool):   Set to NO by default.
X#               Set it to YES to enable pbs_server.
X#
X
X. %%RC_SUBR%%
X
Xname="pbs_server"
Xrcvar=${name}_enable
X
Xpidfile=/var/spool/torque/server_priv/server.lock
Xcommand=%%PREFIX%%/sbin/${name}
X
Xload_rc_config $name
X
X: ${pbs_server_enable="NO"}
X
Xcommand_args=""
X
Xrun_rc_command "$1"
END-of-torque/files/pbs_server.sh.in
echo x - torque/files/patch-mom_mach.c
sed 's/^X//' >torque/files/patch-mom_mach.c << 'END-of-torque/files/patch-mom_mach.c'
X--- src/resmom/freebsd/mom_mach.c.orig	Tue Jun 20 02:23:04 2006
X+++ src/resmom/freebsd/mom_mach.c	Thu Sep 14 19:09:58 2006
X@@ -370,40 +370,10 @@
X 			continue;
X 
X 		nps++;
X-		cputime += tvk(pp->kp_proc.p_rtime);
X 
X-		if (pp->kp_proc.p_ru == NULL) {
X-			struct	pstats	ps;
X-
X-			DBPRT(("%s: p_stats 0x%lx\n", id,
X-				(u_long)pp->kp_proc.p_stats))
X-			if (pp->kp_proc.p_stats == NULL)
X-				continue;
X-
X-			if (kvm_read(kd, (u_long)pp->kp_proc.p_stats, &ps,
X-					sizeof(ps)) != sizeof(ps)) {
X-				log_err(errno, id, "kvm_read(pstats)");
X-				continue;
X-			}
X-			cputime += tv(ps.p_ru.ru_utime) +
X-				tv(ps.p_ru.ru_stime) +
X-				tv(ps.p_cru.ru_utime) +
X-				tv(ps.p_cru.ru_stime);
X-		}
X-		else {
X-			struct	rusage	ru;
X-
X-			DBPRT(("%s: p_ru 0x%lx\n", id,
X-				(u_long)pp->kp_proc.p_ru))
X-			if (kvm_read(kd, (u_long)pp->kp_proc.p_ru, &ru,
X-					sizeof(ru)) != sizeof(ru)) {
X-				log_err(errno, id, "kvm_read(session)");
X-				continue;
X-			}
X-			cputime += tv(ru.ru_utime) + tv(ru.ru_stime);
X-		}
X+		cputime += pp->ki_runtime / 1000000;
X 		DBPRT(("%s: ses %d pid %d cputime %d\n", id,
X-				sess_tbl[i], pp->kp_proc.p_pid, cputime))
X+				sess_tbl[i], pp->ki_pid,  pp->ki_runtime / 1000000))
X 	}
X 
X 	if (nps == 0)
X@@ -434,11 +404,9 @@
X 		if (!injob(pjob, sess_tbl[i]))
X 			continue;
X 
X-		memsize += ctob(pp->kp_eproc.e_vm.vm_tsize +
X-			pp->kp_eproc.e_vm.vm_dsize +
X-			pp->kp_eproc.e_vm.vm_ssize);
X+		memsize += pp->ki_size;
X 		DBPRT(("%s: ses %d pid=%d totmem=%lu\n", id,
X-		       sess_tbl[i], pp->kp_proc.p_pid, memsize))
X+		       sess_tbl[i], pp->ki_pid, pp->ki_size))
X 	}
X 
X 	return (memsize);
X@@ -461,10 +429,10 @@
X 		if (!injob(pjob, sess_tbl[i]))
X 			continue;
X 
X-		memsize += ctob(pp->kp_eproc.e_vm.vm_rssize);
X+		memsize += pp->ki_rssize * PAGE_SIZE;
X 		DBPRT(("%s: pid=%d ses=%d mem=%d totmem=%d\n", id,
X-			pp->kp_proc.p_pid, sess_tbl[i],
X-			pp->kp_eproc.e_vm.vm_rssize, memsize))
X+			pp->ki_pid, sess_tbl[i],
X+			pp->ki_rssize * PAGE_SIZE, memsize))
X 	}
X 
X 	return (memsize);
X@@ -485,9 +453,7 @@
X 		if (!injob(pjob, sess_tbl[i]))
X 			continue;
X 
X-		if (ctob(pp->kp_eproc.e_vm.vm_tsize +
X-				pp->kp_eproc.e_vm.vm_dsize +
X-				pp->kp_eproc.e_vm.vm_ssize) > limit)
X+		if (pp->ki_size > limit)
X 			return (TRUE);
X 	}
X 
X@@ -732,7 +698,7 @@
X   const void *b)
X 
X   {
X-  return((int)((struct kinfo_proc *)a)->kp_eproc.e_paddr - (int)((struct kinfo_proc *)b)->kp_eproc.e_paddr);
X+  return((int)((struct kinfo_proc *)a)->ki_paddr - (int)((struct kinfo_proc *)b)->ki_paddr);
X   }
X 
X int bs_cmp(
X@@ -741,7 +707,7 @@
X   const void *member)
X 
X   {
X-  return((int)((struct session *)key)->s_leader - (int)((struct kinfo_proc *)member)->kp_eproc.e_paddr);
X+  return((int)((struct session *)key)->s_leader - (int)((struct kinfo_proc *)member)->ki_paddr);
X   }
X 
X 
X@@ -786,24 +752,10 @@
X 
X 	qsort(proc_tbl, nproc, sizeof(struct kinfo_proc), qs_cmp);
X 
X-	for (i=0, kp=proc_tbl; i<nproc; i++, kp++) {
X-		if (kvm_read(kd, (u_long)kp->kp_eproc.e_sess, &ss, sizeof(ss))
X-				!= sizeof(ss)) {
X-			sprintf(log_buffer,
X-				"kvm_read: %s", kvm_geterr(kd));
X-			log_err(errno, id, log_buffer);
X-			return (PBSE_SYSTEM);
X-		}
X-		if (ss.s_leader == kp->kp_eproc.e_paddr ||
X-				ss.s_leader == NULL) {
X-			sid = kp->kp_proc.p_pid;
X-		}
X-		else {
X-			leader = bsearch(&ss, proc_tbl, nproc,
X-				sizeof(struct kinfo_proc), bs_cmp);
X-			sid = leader ? leader->kp_proc.p_pid : 0;
X-		}
X-		sess_tbl[i] = sid;
X+	for (i=0; i<nproc; i++) {
X+		struct kinfo_proc	*pp = &proc_tbl[i];
X+
X+		sess_tbl[i] = pp->ki_sid;
X 	}
X 
X 	return (PBSE_NONE);
X@@ -1012,8 +964,8 @@
X 			continue;
X 
X 		DBPRT(("%s: send signal %d to pid %d\n", id,
X-				sig, pp->kp_proc.p_pid))
X-		(void)kill(pp->kp_proc.p_pid, sig);
X+				sig, pp->ki_pid))
X+		(void)kill(pp->ki_pid, sig);
X 		++ct;
X 	}
X 	return ct;
X@@ -1118,36 +1070,10 @@
X 		if (jobid != sess_tbl[i])
X 			continue;
X 
X-		cputime += tvk(pp->kp_proc.p_rtime);
X-
X-		if (pp->kp_proc.p_ru == NULL) {
X-			struct	pstats	ps;
X-
X-			if (pp->kp_proc.p_stats == NULL)
X-				continue;
X-
X-			if (kvm_read(kd, (u_long)pp->kp_proc.p_stats, &ps,
X-					sizeof(ps)) != sizeof(ps)) {
X-				log_err(errno, id, "kvm_read(pstats)");
X-				continue;
X-			}
X-			cputime += tv(ps.p_ru.ru_utime) +
X-				tv(ps.p_ru.ru_stime) +
X-				tv(ps.p_cru.ru_utime) +
X-				tv(ps.p_cru.ru_stime);
X-		}
X-		else {
X-			struct	rusage	ru;
X+		cputime += pp->ki_runtime / 1000000;
X 
X-			if (kvm_read(kd, (u_long)pp->kp_proc.p_ru, &ru,
X-					sizeof(ru)) != sizeof(ru)) {
X-				log_err(errno, id, "kvm_read(session)");
X-				continue;
X-			}
X-			cputime += tv(ru.ru_utime) + tv(ru.ru_stime);
X-		}
X 		DBPRT(("%s: ses %d pid %d cputime %d\n", id,
X-				jobid, pp->kp_proc.p_pid, cputime))
X+				jobid, pp->ki_pid, cputime))
X 
X 	}
X 
X@@ -1166,37 +1092,11 @@
X 	for (i=0; i<nproc; i++) {
X 		struct kinfo_proc	*pp = &proc_tbl[i];
X 
X-		if (pid != pp->kp_proc.p_pid)
X+		if (pid != pp->ki_pid)
X 			continue;
X 
X-		cputime = tvk(pp->kp_proc.p_rtime);
X-
X-		if (pp->kp_proc.p_ru == NULL) {
X-			struct	pstats	ps;
X-
X-			if (pp->kp_proc.p_stats == NULL)
X-				break;
X-
X-			if (kvm_read(kd, (u_long)pp->kp_proc.p_stats, &ps,
X-					sizeof(ps)) != sizeof(ps)) {
X-				log_err(errno, id, "kvm_read(pstats)");
X-				break;
X-			}
X-			cputime += tv(ps.p_ru.ru_utime) +
X-				tv(ps.p_ru.ru_stime) +
X-				tv(ps.p_cru.ru_utime) +
X-				tv(ps.p_cru.ru_stime);
X-		}
X-		else {
X-			struct	rusage	ru;
X+       		cputime = pp->ki_runtime / 1000000;
X 
X-			if (kvm_read(kd, (u_long)pp->kp_proc.p_ru, &ru,
X-					sizeof(ru)) != sizeof(ru)) {
X-				log_err(errno, id, "kvm_read(session)");
X-				break;
X-			}
X-			cputime += tv(ru.ru_utime) + tv(ru.ru_stime);
X-		}
X 		DBPRT(("%s: pid %d cputime %d\n", id, pid, cputime))
X 
X 		sprintf(ret_string, "%.2f", (double)cputime * cputfactor);
X@@ -1261,13 +1161,11 @@
X 			continue;
X 
X 		found = 1;
X-		addmem = pp->kp_eproc.e_vm.vm_tsize +
X-				pp->kp_eproc.e_vm.vm_dsize +
X-				pp->kp_eproc.e_vm.vm_ssize;
X+		addmem = pp->ki_size;
X 		memsize += addmem;
X 	}
X 	if (found) {
X-		sprintf(ret_string, "%ukb", ctob(memsize) >> 10); /* KB */
X+		sprintf(ret_string, "%ukb", memsize / 1024); /* KB */
X 		return ret_string;
X 	}
X 
X@@ -1289,13 +1187,11 @@
X 	for (i=0; i<nproc; i++) {
X 		struct kinfo_proc	*pp = &proc_tbl[i];
X 
X-		if (pid != pp->kp_proc.p_pid)
X+		if (pid != pp->ki_pid)
X 			continue;
X 
X-		memsize = pp->kp_eproc.e_vm.vm_tsize +
X-				pp->kp_eproc.e_vm.vm_dsize +
X-				pp->kp_eproc.e_vm.vm_ssize;
X-		sprintf(ret_string, "%ukb", ctob(memsize) >> 10); /* KB */
X+		memsize = pp->ki_size;
X+		sprintf(ret_string, "%ukb", memsize / 1024); /* KB */
X 		return ret_string;
X 	}
X 
X@@ -1358,10 +1254,10 @@
X 			continue;
X 
X 		found = 1;
X-		resisize += pp->kp_eproc.e_vm.vm_rssize;
X+		resisize += pp->ki_rssize * PAGE_SIZE;
X 	}
X 	if (found) {
X-		sprintf(ret_string, "%ukb", ctob(resisize) >> 10); /* KB */
X+		sprintf(ret_string, "%ukb", resisize / 1024); /* KB */
X 		return ret_string;
X 	}
X 
X@@ -1385,11 +1281,11 @@
X 	for (i=0; i<nproc; i++) {
X 		struct kinfo_proc	*pp = &proc_tbl[i];
X 
X-		if (pid != pp->kp_proc.p_pid)
X+		if (pid != pp->ki_pid)
X 			continue;
X 
X-		resisize = pp->kp_eproc.e_vm.vm_rssize;
X-		sprintf(ret_string, "%ukb", ctob(resisize) >> 10); /* KB */
X+		resisize = pp->ki_rssize * PAGE_SIZE;
X+		sprintf(ret_string, "%ukb", resisize / 1024); /* KB */
X 		return ret_string;
X 	}
X 
X@@ -1462,12 +1358,12 @@
X 	for (i=0; i<nproc; i++) {
X 		struct kinfo_proc	*pp = &proc_tbl[i];
X 
X-		if (pp->kp_eproc.e_pcred.p_ruid == 0)
X+		if (pp->ki_ruid == 0)
X 			continue;
X 
X 		jobid = sess_tbl[i];
X 		DBPRT(("%s: pid %d sid %u\n",
X-		       id, (int)pp->kp_proc.p_pid, jobid))
X+		       id, (int)pp->ki_pid, jobid))
X 		for (j=0; j<njids; j++) {
X 			if (jids[j] == jobid)
X 				break;
X@@ -1548,12 +1444,12 @@
X 		struct kinfo_proc	*pp = &proc_tbl[i];
X 
X 		DBPRT(("%s[%d]: pid %d sid %u\n",
X-		       id, num_pids, pp->kp_proc.p_pid, sess_tbl[i]))
X+		       id, num_pids, pp->ki_pid, sess_tbl[i]))
X 		if (jobid != sess_tbl[i])
X 			continue;
X 
X 		checkret(&fmt, 100);
X-		sprintf(fmt, " %d", pp->kp_proc.p_pid);
X+		sprintf(fmt, " %d", pp->ki_pid);
X 		fmt += strlen(fmt);
X 		num_pids++;
X 	}
X@@ -1591,11 +1487,11 @@
X 	for (i=0; i<nproc; i++) {
X 		struct kinfo_proc	*pp = &proc_tbl[i];
X 
X-		if ((uid = pp->kp_eproc.e_pcred.p_ruid) == 0)
X+		if ((uid = pp->ki_ruid) == 0)
X 			continue;
X 
X 		DBPRT(("%s: pid %d uid %u\n",
X-		       id, (int)pp->kp_proc.p_pid, uid))
X+		       id, (int)pp->ki_pid, uid))
X 		for (j=0; j<nuids; j++) {
X 			if (uids[j] == uid)
X 				break;
X@@ -1884,23 +1780,12 @@
X 				continue;
X 		}
X 		else {
X-			if (value != pp->kp_proc.p_pid)
X+			if (value != pp->ki_pid)
X 				continue;
X 		}
X 
X-		if (pp->kp_proc.p_stats == NULL) {
X-			rm_errno = RM_ERR_SYSTEM;
X-			return NULL;
X-		}
X-
X-		if (kvm_read(kd, (u_long)pp->kp_proc.p_stats, &ps,
X-				sizeof(ps)) != sizeof(ps)) {
X-			log_err(errno, id, "kvm_read(pstats)");
X-			rm_errno = RM_ERR_SYSTEM;
X-			return NULL;
X-		}
X 		found = 1;
X-		start = MIN(start, ps.p_start.tv_sec);
X+		start = MIN(start, pp->ki_start.tv_sec);
X 	}
X 	if (found) {
X 		sprintf(ret_string, "%ld", (long)((double)(now - start) * wallfactor));
X@@ -2035,7 +1920,7 @@
X 	dirdev = sb.st_dev;
X 	DBPRT(("dir has devnum %d\n", dirdev))
X 
X-	if (setfsent() == NULL) {
X+	if (setfsent() == 0) {
X 		log_err(errno, id, "setfsent");
X 		rm_errno = RM_ERR_SYSTEM;
X                 return NULL;
END-of-torque/files/patch-mom_mach.c
echo x - torque/files/pbs_mom.sh.in
sed 's/^X//' >torque/files/pbs_mom.sh.in << 'END-of-torque/files/pbs_mom.sh.in'
X#!/bin/sh
X
X# PROVIDE: pbs_mom
X# REQUIRE: 
X#
X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
X# to enable this service:
X#
X# pbs_mom_enable (bool):   Set to NO by default.
X#               Set it to YES to enable pbs_mom.
X#
X
X. %%RC_SUBR%%
X
Xname="pbs_mom"
Xrcvar=${name}_enable
X
Xpidfile=/var/spool/torque/mom_priv/mom.lock
Xcommand=%%PREFIX%%/sbin/${name}
X
Xload_rc_config $name
X
X: ${pbs_mom_enable="NO"}
X
Xcommand_args=""
X
Xrun_rc_command "$1"
END-of-torque/files/pbs_mom.sh.in
echo x - torque/files/patch-fifo-Makefile.in
sed 's/^X//' >torque/files/patch-fifo-Makefile.in << 'END-of-torque/files/patch-fifo-Makefile.in'
X--- src.orig/scheduler.cc/samples/fifo/Makefile.in	Wed Jul 19 22:47:42 2006
X+++ src/scheduler.cc/samples/fifo/Makefile.in	Wed Jul 19 22:59:44 2006
X@@ -132,7 +132,7 @@
X XPBSMON_DIR = $(libdir)/xpbsmon
X 
X # Support files used by the scheduler
X-schedprivdir = $(PBS_SERVER_HOME)/sched_priv
X+schedprivdir = ${prefix}/share/examples/torque/var/spool/torque/sched_priv
X schedpriv_DATA = sched_config resource_group holidays dedicated_time
X 
X EXTRA_DIST = $(schedpriv_DATA)
END-of-torque/files/patch-fifo-Makefile.in
echo x - torque/files/patch-pbs_mkdirs.in
sed 's/^X//' >torque/files/patch-pbs_mkdirs.in << 'END-of-torque/files/patch-pbs_mkdirs.in'
X--- buildutils/dpbs_mkdirs.in.orig	Tue Jun 20 02:22:46 2006
X+++ buildutils/pbs_mkdirs.in	Thu Sep 14 15:06:48 2006
X@@ -105,6 +105,7 @@
X #
X prefix=@prefix@
X exec_prefix=@exec_prefix@
X+DESTDIR=@prefix@
X CHK_TREE=${DESTDIR}@bindir@/chk_tree
X 
X PBS_DEFAULT_SERVER=@PBS_DEFAULT_SERVER@
X@@ -112,7 +113,7 @@
X # PBS_SERVER_HOME is defined without DESTDIR so that DEFAULT_FILE and EVIRON
X # can be based on SERVER_HOME.  SERVER_HOME is defined a second time to pick
X # up DESTDIR
X-test -n "$PBS_SERVER_HOME" || PBS_SERVER_HOME=@PBS_SERVER_HOME@
X+test -n "$PBS_SERVER_HOME" || PBS_SERVER_HOME=/share/examples/torque/var/spool/torque/
X test -n "$PBS_DEFAULT_FILE" || PBS_DEFAULT_FILE=${DESTDIR}@PBS_DEFAULT_FILE@
X test -n "$PBS_ENVIRON" || PBS_ENVIRON=${DESTDIR}@PBS_ENVIRON@
X 
END-of-torque/files/patch-pbs_mkdirs.in
exit
--- torque-2.1.2.shar ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list