Samuel Thibault
2008-Jul-31 11:12 UTC
[Xen-devel] [PATCH] domain builder: Fix sp_extents allocation
domain builder: Fix sp_extents allocation We do not need more than count elements in the sp_extents array. diff -r e355f9dce939 tools/libxc/xc_hvm_build.c --- a/tools/libxc/xc_hvm_build.c Wed Jul 30 17:20:25 2008 +0100 +++ b/tools/libxc/xc_hvm_build.c Thu Jul 31 11:43:36 2008 +0100 @@ -229,7 +229,7 @@ static int setup_guest(int xc_handle, if ( ((count | cur_pages) & (SUPERPAGE_NR_PFNS - 1)) == 0 ) { long done; - xen_pfn_t sp_extents[2048 >> SUPERPAGE_PFN_SHIFT]; + xen_pfn_t sp_extents[count >> SUPERPAGE_PFN_SHIFT]; struct xen_memory_reservation sp_req = { .nr_extents = count >> SUPERPAGE_PFN_SHIFT, .extent_order = SUPERPAGE_PFN_SHIFT, _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2008-Jul-31 11:19 UTC
Re: [Xen-devel] [PATCH] domain builder: Fix sp_extents allocation
Doesn''t this turn the array allocation into a dynamic allocation? I feel a bit dubious about that. -- Keir On 31/7/08 12:12, "Samuel Thibault" <samuel.thibault@eu.citrix.com> wrote:> domain builder: Fix sp_extents allocation > > We do not need more than count elements in the sp_extents array. > > diff -r e355f9dce939 tools/libxc/xc_hvm_build.c > --- a/tools/libxc/xc_hvm_build.c Wed Jul 30 17:20:25 2008 +0100 > +++ b/tools/libxc/xc_hvm_build.c Thu Jul 31 11:43:36 2008 +0100 > @@ -229,7 +229,7 @@ static int setup_guest(int xc_handle, > if ( ((count | cur_pages) & (SUPERPAGE_NR_PFNS - 1)) == 0 ) > { > long done; > - xen_pfn_t sp_extents[2048 >> SUPERPAGE_PFN_SHIFT]; > + xen_pfn_t sp_extents[count >> SUPERPAGE_PFN_SHIFT]; > struct xen_memory_reservation sp_req = { > .nr_extents = count >> SUPERPAGE_PFN_SHIFT, > .extent_order = SUPERPAGE_PFN_SHIFT, > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Samuel Thibault
2008-Jul-31 11:29 UTC
Re: [Xen-devel] [PATCH] domain builder: Fix sp_extents allocation
Keir Fraser, le Thu 31 Jul 2008 12:19:18 +0100, a écrit :> Doesn''t this turn the array allocation into a dynamic allocation? I feel a > bit dubious about that.> > { > > long done; > > - xen_pfn_t sp_extents[2048 >> SUPERPAGE_PFN_SHIFT]; > > + xen_pfn_t sp_extents[count >> SUPERPAGE_PFN_SHIFT]; > > struct xen_memory_reservation sp_req = {Err, I''d think that it just turns a sub (2048>>SUPERPAGE_PFN_SHIFT) * sizeof(xen_pfn_t), %esp into a mov count, %eax shr SUPERPAGE_PFN_SHIFT - log2(sizeof(xen_pfn_t)), %eax sub %eax, %esp Samuel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2008-Jul-31 11:39 UTC
Re: [Xen-devel] [PATCH] domain builder: Fix sp_extents allocation
On 31/7/08 12:29, "Samuel Thibault" <samuel.thibault@eu.citrix.com> wrote:> Keir Fraser, le Thu 31 Jul 2008 12:19:18 +0100, a écrit : >> Doesn''t this turn the array allocation into a dynamic allocation? I feel a >> bit dubious about that. > >>> { >>> long done; >>> - xen_pfn_t sp_extents[2048 >> SUPERPAGE_PFN_SHIFT]; >>> + xen_pfn_t sp_extents[count >> SUPERPAGE_PFN_SHIFT]; >>> struct xen_memory_reservation sp_req = { > > Err, I''d think that it just turns a > > sub (2048>>SUPERPAGE_PFN_SHIFT) * sizeof(xen_pfn_t), %esp > > into a > > mov count, %eax > shr SUPERPAGE_PFN_SHIFT - log2(sizeof(xen_pfn_t)), %eax > sub %eax, %espYes, good point! -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel