Date: Fri, 4 Apr 2003 16:17:14 -0800 (PST) From: Julian Elischer <julian@elischer.org> To: Glenn Johnson <gjohnson@srrc.ars.usda.gov> Cc: current@freebsd.org Subject: Re: kp_proc and kp_eproc Message-ID: <Pine.BSF.4.21.0304041611060.35903-100000@InterJet.elischer.org> In-Reply-To: <20030405000712.GA9839@node1.cluster.srrc.usda.gov>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 4 Apr 2003, Glenn Johnson wrote: > On Fri, Apr 04, 2003 at 03:54:05PM -0800, Julian Elischer wrote: > > > yes.. > > > > The entire process structure and it's surrounding enviroment has been > > through a blender. > > > > What do you wnat to do? > > I would like to learn what I need to do to get the software to compile > on FreeBSD-5. I guess the question is, what information do I need to > provide? The software in question is OpenPBS (http://www.openpbs.org), > so it nothing proprietary. There were a whole bunch of dependency > problems that I worked through manually and finally got to the point > of the kp_proc failure. Here is a snippet of code that produces the > failure: > > ~~~~~~~~~~ you need to start from proc.h. the proc structure has been exploded into 4 parts but the kinfo_proc structure still exists. you may need to look at what 'ps' does to make sense of it.. some fields have become subfields and some may require following some links. > static unsigned long cput_sum(pjob) > job *pjob; > { > static char id[] = "cput_sum"; > int i; > u_long cputime; > int nps = 0; > > cputime = 0; > for (i=0; i<nproc; i++) { > struct kinfo_proc *pp = &proc_tbl[i]; > > if (!injob(pjob, sess_tbl[i])) > continue; > > nps++; > cputime += tvk(pp->kp_proc.p_rtime); > > if (pp->kp_proc.p_ru == NULL) { > struct pstats ps; > > DBPRT(("%s: p_stats 0x%lx\n", id, > (u_long)pp->kp_proc.p_stats)) > if (pp->kp_proc.p_stats == NULL) > continue; > > if (kvm_read(kd, (u_long)pp->kp_proc.p_stats, &ps, > sizeof(ps)) != sizeof(ps)) { > log_err(errno, id, "kvm_read(pstats)"); > continue; > } > cputime += tv(ps.p_ru.ru_utime) + > tv(ps.p_ru.ru_stime) + > tv(ps.p_cru.ru_utime) + > tv(ps.p_cru.ru_stime); > } > else { > struct rusage ru; > > DBPRT(("%s: p_ru 0x%lx\n", id, > (u_long)pp->kp_proc.p_ru)) > if (kvm_read(kd, (u_long)pp->kp_proc.p_ru, &ru, > sizeof(ru)) != sizeof(ru)) { > log_err(errno, id, "kvm_read(session)"); > continue; > } > cputime += tv(ru.ru_utime) + tv(ru.ru_stime); > } > DBPRT(("%s: ses %d pid %d cputime %d\n", id, > sess_tbl[i], pp->kp_proc.p_pid, cputime)) > } > > if (nps == 0) > pjob->ji_flags |= MOM_NO_PROC; > > return ((unsigned long)((double)cputime * cputfactor)); > } > > ~~~~~~~~~~ > > > On Fri, 4 Apr 2003, Glenn Johnson wrote: > > > > > I have some software that compiled fine on FreeBSD-4 but is not > > > compiling on FreeBSD-5. It is looking for kp_proc and kp_eproc. > > > The error I get is: > > > > > > structure has no member named `kp_proc' > > > structure has no member named `kp_eproc' > > > > > > Have those changed from FreeBSD-4? > > > > > > Thanks. > > -- > Glenn Johnson > USDA, ARS, SRRC Phone: (504) 286-4252 > New Orleans, LA 70124 e-mail: gjohnson@srrc.ars.usda.gov > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0304041611060.35903-100000>