From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] Split segments reload in vmx_load_host_state() Date: Thu, 23 Aug 2007 16:14:03 +0300 Message-ID: <46CD881B.6040202@qumranet.com> References: <46CD81D5.90707@bull.net> <46CD8316.2040208@qumranet.com> <46CD8562.5000402@bull.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel To: Laurent Vivier Return-path: In-Reply-To: <46CD8562.5000402-6ktuUTfB/bM@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Laurent Vivier wrote: > Avi Kivity wrote: > >> Laurent Vivier wrote: >> >>> It is from the TODO and I hope no one is already working on this. >>> >>> 'vmx_load_host_state() bundles fs, gs, ldt, and tss reloading into one in the >>> hope that it is infrequent. With smp guests, fs reloading is frequent and the >>> separate reloads should be unbundled.' >>> >>> >>> >>> >>> }; >>> @@ -353,20 +354,20 @@ static void vmx_save_host_state(struct v >>> * allow segment selectors with cpl > 0 or ti == 1. >>> */ >>> vmx->host_state.ldt_sel = read_ldt(); >>> - vmx->host_state.fs_gs_ldt_reload_needed = vmx->host_state.ldt_sel; >>> + vmx->host_state.gs_ldt_reload_needed = vmx->host_state.ldt_sel; >>> >>> >> Missing initialization for fs_reload_needed here. >> >> > > It is initialized on fs_sel, should it be initialized on ldt_sel too ? > > It's only initialized to 1, but never cleared to zero. The original code means: if ((ldt_sel != 0) || ((fs_sel & 7) != 0) || ((gs_sel & 7) != 0)) then a reload is needed. In the new code, fs reload should depend only on ((fs_sel & 7) != 0) and ldt/gs reload should depend on ldt_sel and gs_sel only. Regarding reload_tss(), it should probably be unconditional. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/