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

Re: [Xen-devel] [PATCH] xs: set read_thread stacksize



On Tue, 2012-05-29 at 17:39 +0100, David Vrabel wrote:
> On 29/05/12 16:56, Simon Rowe wrote:
> > xs_watch() creates a thread to wake watchers using default attributes. The
> > stacksize can be quite large (8 MB on Linux), applications that link against
> > xenstore end up having a larger memory footprint than necessary.
> > 
> > Signed-off-by: Simon Rowe <simon.rowe@xxxxxxxxxxxxx>
> > 
> > diff -r 53e0571f94e4 -r 0cf61ed6ce86 tools/xenstore/xs.c
> > --- a/tools/xenstore/xs.c   Fri May 25 08:21:25 2012 +0100
> > +++ b/tools/xenstore/xs.c   Tue May 29 16:45:03 2012 +0100
> > @@ -705,11 +705,31 @@ bool xs_watch(struct xs_handle *h, const
> >     /* We dynamically create a reader thread on demand. */
> >     mutex_lock(&h->request_mutex);
> >     if (!h->read_thr_exists) {
> > +#if _POSIX_THREAD_ATTR_STACKSIZE > 0
> 
> This #if seems unnecessary.  pthread_attr_setsetstacksize() doesn't
> appear to be an optional.

...and if it were then autoconf is the way to figure that out now,
unless _POSIX_THREAD_ATTR_STACKSIZE is specified somewhere (which I
doubt).

Also if it is only pthread_attr_setstacksize which is optional, rather
than pthread_attr_* generally, then the #if could be pulled into just
surround that call, presuming there is no harm in a "NULL" attr.

> > +           pthread_attr_t attr;
> > +
> > +           if (pthread_attr_init(&attr) != 0) {
> > +                   mutex_unlock(&h->request_mutex);
> > +                   return false;
> > +           }
> > +           if (pthread_attr_setstacksize(&attr, 16 * 1024) != 0) {
> 
> #define for this value?

Yes, please.

Ian.

> 
> David
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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