On Mon, Mar 07, 2016 at 05:12:33PM +0100, Pino Toscano wrote:
On Monday 07 March 2016 11:18:32 Richard W.M. Jones wrote:
+#if defined(__GNUC__) && GUESTFS_GCC_VERSION >= 40800 /* gcc >= 4.8.0 */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstack-usage=10000" +#endif + /* Takes optional arguments, consult optargs_bitmask. */ int do_btrfs_filesystem_resize (const char *filesystem, int64_t size)
Is this because of the argv[MAX_ARGS] here ^ and in do_mkfs_btrfs? (Similar notes for all the other diagnostic markers added by this patch.)
Yes.
As slightly related change (although that can be done after this patch), something to reduce a bit the stacks in the daemon would be reduce the MAX_ARGS to values closer (but not too much) than the actual needs. I see most of the MAX_ARGS=64 cases have no more than 10 arguments added, even in the worst case...
OK, but I wouldn't want to go too small. There's not any particular need to reduce stack frames below, say, 4K. The real issues with large stack frames are: - JVM & other environments with small per-thread stacks - arbitrarily large stack frames controlled from untrusted sources - avoiding using BUFSIZ, PATH_MAX and similar where we don't directly control those constants, so we might encounter a system where they are much larger [mostly we've got rid of PATH_MAX for other reasons] - to a lesser extent the previous point applies even to things we do control like GUESTFS_MAX_CHUNK_SIZE where we might conceivably wish to increase them in future. I have fixed all the other things you noted, and am just testing everything again. Thanks, Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v