[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-ia64-devel] [RFC] The "vcpu->arch.privregs" is doubly used


  • To: "Masaki Kanno" <kanno.masaki@xxxxxxxxxxxxxx>, <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • Date: Tue, 21 Mar 2006 09:20:59 +0800
  • Delivery-date: Tue, 21 Mar 2006 01:22:27 +0000
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: AcZMBYXCcHn6jHnrR5ue1MU+KW2ZZAAfW+2Q
  • Thread-topic: [Xen-ia64-devel] [RFC] The "vcpu->arch.privregs" is doubly used

>From:Masaki Kanno
>Sent: 2006年3月20日 18:00
>
>Sorry. Because size is not same as the mapped_regs_t structure as for
>the vpd structure, my patch cannot solve a problem. Maybe the "destroy"
>processing will become wrong.

Long time ago, there're two structures completely different to contain 
virtual processor context for VTI and non-VTI domain, and later Eddie 
proposed a patch to merge two at last OLS. However because the virtual 
processor context defined in VTI domain has an alignment requirement, 
the actual size is bigger for VTI domain.

Now that there's no VTI specific flag passed at domain creation phase 
(only at domain builder phase), I think your patch is at least necessary to 
ensure memory leak issue.

At domain destroy, it's easy to free that different size area since you know 
whether it's a VTI or not. :-)

Alex, could you help check-in this patch?

Thanks,
Kevin

>
>Best regards,
> Kan
>
>Masaki Kanno wrote:
>>Hi,
>>
>>I found the "vcpu->arch.privregs" being doubly used.
>>Please refer to the following functions.
>>
>> - alloc_vcpu_struct()                : xen/arch/ia64/xen/domain.c
>> - vmx_final_setup_guest()    : xen/arch/ia64/vmx/vmx_init.c
>>
>>I suggest the following patch. Please comment.
>>
>>Best regards,
>> Kan
>>
>>diff -r 25003dd43a92 xen/arch/ia64/vmx/vmx_init.c
>>--- a/xen/arch/ia64/vmx/vmx_init.c      Fri Mar 17 15:37:28 2006
>-0700
>>+++ b/xen/arch/ia64/vmx/vmx_init.c      Mon Mar 20 17:35:23 2006
>+0900
>>@@ -261,6 +261,8 @@ vmx_final_setup_guest(struct vcpu *v)
>> {
>>        vpd_t *vpd;
>>
>>+       free_xenheap_pages(v->arch.privregs,
>get_order(sizeof(mapped_regs_t)));
>>+
>>        vpd = alloc_vpd();
>>        ASSERT(vpd);
>>
>>
>>
>>_______________________________________________
>>Xen-ia64-devel mailing list
>>Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
>>http://lists.xensource.com/xen-ia64-devel
>>
>
>
>_______________________________________________
>Xen-ia64-devel mailing list
>Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
>http://lists.xensource.com/xen-ia64-devel

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.