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

RE: [Xen-devel] big local array in routine in hypervisor



> Does it *really* have to be multi-page contiguous? You 
> couldn't for example
> build your workspace out of a radix tree with page-sized leaves?
> Or are you saying that maybe you can't allocate even a single 
> page, or a
> sub-page? In that case it would seem memory is so tight you 
> have little
> choice but to pre-reserve.

I'm trying to use the lzo compression code now in Linux
(as of 2.6.27 I think) in linux/lib/lzo.  It uses a large
static work area... which now that I look more carefully
is actually 128kB!...  apparently ffs2 (its sole user in
Linux as of now) doesn't care about SMP?

> So you want us to wastefully pre-reserve some space for you, 
> but call it the
> 'stack' to assuage your guilt? ;-)

Point taken ;-)  But the stack can be used by others and
my pre-reserved space could not.

> It's common practice not to have very
> large stacks in kernels, since pre-reservation is wateful, 
> dynamic growth is not necessarily feasible to implement,
> and kernel code doesn't tend to need lots of local storage
> or recursion. In Linux you'd be limited to 4kB, and
> there's a lot more code there living under that stricter regime.

True, but the history of most kernels goes back a bit farther
than Xen's, back when memory density and cost was a factor
of 1000x different.  So... 4kb * 1000 is 4M ;-)

> It's a slippery slope though, determining how much stack is 
> enough and how
> big a local array is too big. I generally end up having to 
> check and fix big
> stack frames from time to time, and I'm not sure that even 
> doubling the
> stack a few times would avoid that job!

Agreed.  It will never be enough.

I'll live with the private static array for now.

Dan

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


 


Rackspace

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