Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Sep 2002 15:05:28 -0700
From:      Jon Mini <mini@freebsd.org>
To:        Julian Elischer <julian@FreeBSD.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   Re: PERFORCE change 17195 for review
Message-ID:  <20020907220528.GQ7265@elvis.mu.org>
In-Reply-To: <200209071246.g87CkrUQ086701@freefall.freebsd.org>
References:  <200209071246.g87CkrUQ086701@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Julian Elischer [julian@FreeBSD.org] wrote :

> http://people.freebsd.org/~peter/p4db/chv.cgi?CH=17195
> 
> Change 17195 by julian@julian_desk on 2002/09/07 05:46:14
> 
> 	undo previous undo.. these fiedls are DEFINITLY not to be copied
> 	but should be zero'd


Julian, please do not revert my work without asking me first. 

These fields needs to be copied in order for thread_schedule_upcall()
to work. Either we need to copy them in the bcopy, or do it manually.

The changes you've made cause upcalls to panic the system.

I don't want to get into a commit war, please let me change them
to something that works.

> Affected files ...
> 
> .. //depot/projects/kse/sys/sys/proc.h#130 edit
> 
> Differences ...
> 
> ==== //depot/projects/kse/sys/sys/proc.h#130 (text+ko) ====
> 
> @@ -269,6 +269,7 @@
>  #define	td_startzero td_flags
>  	int		td_flags;	/* (j) TDF_* flags. */
>  	struct kse	*td_last_kse;	/* Where it wants to be if possible. */
> +	struct kse	*td_kse;	/* Current KSE if running. */
>  	int		td_dupfd;	/* (k) Ret value from fdopen. XXX */
>  	void		*td_wchan;	/* (j) Sleep address. */
>  	const char	*td_wmesg;	/* (j) Reason for sleep. */
> @@ -282,16 +283,15 @@
>  	LIST_HEAD(, mtx) td_contested;	/* (j) Contested locks. */
>  	struct lock_list_entry *td_sleeplocks; /* (k) Held sleep locks. */
>  	int		td_intr_nesting_level; /* (k) Interrupt recursion. */
> +	struct thread_mailbox *td_mailbox; /* the userland mailbox address */
>  	struct ucred	*td_ucred;	/* (k) Reference to credentials. */
>  	void		(*td_switchin)(void); /* (k) switchin special func */
>  	u_int		td_critnest;	/* (k) Critical section nest level. */
> -#define	td_endzero td_kse
> +#define	td_endzero td_md
>  
>  /* Copied during fork1() or thread_sched_upcall() */
> -#define	td_startcopy td_kse
> +#define	td_startcopy td_endzero
>  	/* XXXKSE just copying td_md needs checking! */
> -	struct kse	*td_kse;	/* Current KSE if running. */
> -	struct thread_mailbox *td_mailbox; /* the userland mailbox address */
>  	struct mdthread td_md;		/* (k) Any machine-dependent fields. */
>  	u_char		td_base_pri;	/* (j) Thread base kernel priority. */
>  	u_char		td_priority;	/* (j) Thread active priority. */

-- 
Jonathan Mini <mini@freebsd.org>
http://www.freebsd.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020907220528.GQ7265>