From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 4/5] vmx.c uses x86_decode_prefix() instead of get_io_count(). Date: Thu, 02 Aug 2007 12:41:12 +0300 Message-ID: <46B1A6B8.7020404@qumranet.com> References: <46B04CCA.2010503@bull.net> <46B04DD6.7010702@bull.net> <46B04EB9.5010103@bull.net> <46B04F56.60607@bull.net> <46B0501C.6060409@bull.net> <46B19A7B.2030109@qumranet.com> <46B1A51C.2040104@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: <46B1A51C.2040104-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: >> >> How about just calliing emulate_instruction() from here (just for the >> string case)? That will eliminate all the setup code. >> > > But this setup is in emulate_instruction() so it will be executed anyway. > > I'm not worried about run-time overhead, but about the amount of code. >> x86_emulate_memop() will need to be extended to decode ins/outs, but >> that's fairly easy. >> > > X86_decode_prefix() is a subset of instruction decoding part of > x86_emulate_memop(), kvm_setup_pio() can be seen as a subset of instruction > emulating part of x86_emulate_memop(). So I think in term of performance it is > better to do like that, but I agree by doing: > > if (string) > return emulate_instruction(vcpu, kvm_run, 0, 0); > else > return kvm_setup_pio(vcpu, kvm_run, in, size, port); > > it is more more ... more simple. > > If you prefer simplicity, I can do like that ? > (but I know you prefer simplicity...) > > Yes. Note that x86_emulate_memop() will eventually call kvm_setup_pio() to complete the emulation. > BTW, I think PATCH 1,2 and 3 should be applied anyway because they allow to > introduce the separation between instruction decoding and instruction emulation > requested by the TODO "Split the emulator into two functions: one to decode into > the emulation context, and the other to actually execute the instruction." > I agree. I'll look into it with more detail. -- 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/