Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Sep 2008 10:55:04 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Marko Zec <zec@FreeBSD.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>, FreeBSD virtualization mailing list <freebsd-virtualization@freebsd.org>
Subject:   vimage and curvnet.
Message-ID:  <48D3E778.3020305@elischer.org>
In-Reply-To: <200809191743.m8JHhZj8009388@repoman.freebsd.org>
References:  <200809191743.m8JHhZj8009388@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Marko Zec wrote:
> http://perforce.freebsd.org/chv.cgi?CH=150125
> 
> Change 150125 by zec@zec_tpx32 on 2008/09/19 17:43:14
> 
> 	curvnet is never set on entry to sysctl handlers, thus
> 	set the vnet context via TD_TO_VNET(curthread), because
> 	all threads must have a cred->vimage->vnet context set.

it seems to me that vnet is an important enough variable that we could 
put it in the pcpu structure and have the scheduler set it up on 
context switches when vimage is compiled in.

thus it would always be directly available.
i.e. %gs:CURVNET_OFFSET  or whatever the syntax is on x86
and the equivalent on other architectures.


> 
> Affected files ...
> 
> .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_subr.c#14 edit
> 
> Differences ...
> 
> ==== //depot/projects/vimage-commit2/src/sys/netinet/tcp_subr.c#14 (text+ko) ====
> 
> @@ -119,7 +119,7 @@
>  static int
>  sysctl_net_inet_tcp_mss_check(SYSCTL_HANDLER_ARGS)
>  {
> -	INIT_VNET_INET(curvnet);
> +	INIT_VNET_INET(TD_TO_VNET(curthread));
>  	int error, new;
>  
>  	new = V_tcp_mssdflt;
> @@ -141,7 +141,7 @@
>  static int
>  sysctl_net_inet_tcp_mss_v6_check(SYSCTL_HANDLER_ARGS)
>  {
> -	INIT_VNET_INET6(curvnet);
> +	INIT_VNET_INET6(TD_TO_VNET(curthread));
>  	int error, new;
>  
>  	new = V_tcp_v6mssdflt;




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