Date: Wed, 16 Dec 2015 17:35:24 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Fabian Keil <freebsd-listen@fabiankeil.de> Cc: FreeBSD Current <freebsd-current@freebsd.org>, mjg@freebsd.org Subject: Re: fork_findpid() - Fatal trap 12: page fault while in kernel mode Message-ID: <20151216153524.GY3625@kib.kiev.ua> In-Reply-To: <20151216160917.2a6a51ba@fabiankeil.de> References: <20151215174238.2d7cc3bb@fabiankeil.de> <20151216104227.GS3625@kib.kiev.ua> <20151216122116.09e1b27d@fabiankeil.de> <20151216121000.GV3625@kib.kiev.ua> <20151216160917.2a6a51ba@fabiankeil.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 16, 2015 at 04:09:17PM +0100, Fabian Keil wrote: > Thanks. I'm currently testing the patch on three systems but it may take a while ... > Better use mjg' patch with the small adjustment. I put it below. diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 435a07b..fc39217 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -251,6 +251,7 @@ proc_init(void *mem, int size, int flags) TAILQ_INIT(&p->p_threads); /* all threads in proc */ EVENTHANDLER_INVOKE(process_init, p); p->p_stats = pstats_alloc(); + p->p_pgrp = NULL; SDT_PROBE3(proc, kernel, init, return, p, size, flags); return (0); } diff --git a/sys/sys/proc.h b/sys/sys/proc.h index 90effa6..cb94318 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -586,7 +586,6 @@ struct proc { int p_osrel; /* (x) osreldate for the binary (from ELF note, if any) */ char p_comm[MAXCOMLEN + 1]; /* (b) Process name. */ - struct pgrp *p_pgrp; /* (c + e) Pointer to process group. */ struct sysentvec *p_sysent; /* (b) Syscall dispatch info. */ struct pargs *p_args; /* (c) Process arguments. */ rlim_t p_cpulimit; /* (c) Current CPU limit in seconds. */ @@ -599,6 +598,7 @@ struct proc { u_int p_xsig; /* (c) Stop/kill sig. */ /* End area that is copied on creation. */ #define p_endcopy p_xsig + struct pgrp *p_pgrp; /* (c + e) Pointer to process group. */ struct knlist p_klist; /* (c) Knotes attached to this proc. */ int p_numthreads; /* (c) Number of threads. */ struct mdproc p_md; /* Any machine-dependent fields. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151216153524.GY3625>