From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] KVM: mark segments accessed on HW task switch Date: Mon, 25 Jan 2010 14:53:09 +0200 Message-ID: <4B5D9435.2010707@redhat.com> References: <20100125100104.GA4609@redhat.com> <4B5D7B9D.7080401@redhat.com> <20100125111109.GA8483@redhat.com> <4B5D7CA4.5070605@redhat.com> <20100125122419.GB8483@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: mtosatti@redhat.com, kvm@vger.kernel.org To: Gleb Natapov Return-path: Received: from mx1.redhat.com ([209.132.183.28]:24844 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752309Ab0AYMxL (ORCPT ); Mon, 25 Jan 2010 07:53:11 -0500 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o0PCrBXb005678 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 25 Jan 2010 07:53:11 -0500 In-Reply-To: <20100125122419.GB8483@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/25/2010 02:24 PM, Gleb Natapov wrote: > On Mon, Jan 25, 2010 at 01:12:36PM +0200, Avi Kivity wrote: > >> On 01/25/2010 01:11 PM, Gleb Natapov wrote: >> >>> On Mon, Jan 25, 2010 at 01:08:13PM +0200, Avi Kivity wrote: >>> >>>> On 01/25/2010 12:01 PM, Gleb Natapov wrote: >>>> >>>>> On HW task switch newly loaded segments should me marked as accessed. >>>>> >>>>> @@ -4775,6 +4766,11 @@ int kvm_load_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector, >>>>> kvm_seg.unusable = 1; >>>>> >>>>> kvm_set_segment(vcpu,&kvm_seg, seg); >>>>> + if (selector&& !kvm_seg.unusable&& kvm_seg.s) { >>>>> + /* mark segment as accessed */ >>>>> + seg_desc.type |= 1; >>>>> + save_guest_segment_descriptor(vcpu, selector,&seg_desc); >>>>> + } >>>>> return 0; >>>>> } >>>>> >>>> What about an error return from s_g_s_d? >>>> >>>> >>> What can or should we do about it? >>> >>> >> If -EFAULT, propagate to userspace. >> >> > We don't handle it anywhere in task switch emulation. Separate patch? > > Things like 'return kvm_write_guest_virt()' do handle it. -- error compiling committee.c: too many arguments to function