On Sat, Apr 30, 2011 at 05:28:55AM +0000, Marcel Moolenaar wrote: > Author: marcel > Date: Sat Apr 30 05:28:54 2011 > New Revision: 221242 > URL: http://svn.freebsd.org/changeset/base/221242 > > Log: > Unbreak non-x86 and in particular ia64, The default stack size > on ia64 is 32KB. Unconditionally hardcoding a 16KB stack for > reasons of increasing the stack size on i386 is just wrong. If > the size was indeed expressed in terms of pages, as the commit > log suggested, then it would happen to be just right for ia64, > though only accidentally. > > Pointy hat: avg, pjd
Marcel, you already know my opinion that I don't agree with this change. I don't think you are going to update the code once new architecture arrive. This change also reduces thread stack size for already existing architectures (arm and mips). I'd prefer to either commit my patch that protects against passing stack size smaller than the default on given architecture or commit what we have in HEAD. > --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c Sat Apr > 30 02:44:15 2011 (r221241) > +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c Sat Apr > 30 05:28:54 2011 (r221242) > @@ -129,6 +129,7 @@ void > txg_sync_start(dsl_pool_t *dp) > { > tx_state_t *tx = &dp->dp_tx; > + size_t stksize = 0; > > mutex_enter(&tx->tx_sync_lock); > > @@ -146,7 +147,10 @@ txg_sync_start(dsl_pool_t *dp) > * 32-bit x86. This is due in part to nested pools and > * scrub_visitbp() recursion. > */ > - tx->tx_sync_thread = thread_create(NULL, 16<<10, txg_sync_thread, > +#ifdef __i386__ > + stksize = 16 << 10; > +#endif > + tx->tx_sync_thread = thread_create(NULL, stksize, txg_sync_thread, > dp, 0, &p0, TS_RUN, minclsyspri); > > mutex_exit(&tx->tx_sync_lock); -- Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com
pgpVDcyxzBUcS.pgp
Description: PGP signature