Re: [PATCH] Raise the frame limit for tests

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

 



On Mon, Jan 22, 2018 at 02:01:27PM +0100, Michal Privoznik wrote:
On 01/22/2018 01:54 PM, Martin Kletzander wrote:
On Mon, Jan 22, 2018 at 01:47:24PM +0100, Michal Privoznik wrote:
On 01/22/2018 01:22 PM, Daniel P. Berrange wrote:
On Mon, Jan 22, 2018 at 12:49:12PM +0100, Martin Kletzander wrote:
On Thu, Jan 18, 2018 at 10:16:55AM +0100, Ján Tomko wrote:
After the latest CPU additions, the build fails with clang:
cputest.c:905:1: error: stack frame size of 26136 bytes
 in function 'mymain' [-Werror,-Wframe-larger-than=]

Raise the relaxed limit which is used for tests.
---
m4/virt-compile-warnings.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Pushed as a build breaker fix

diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index f18a08a8f..b9c974842 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -200,7 +200,7 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
    # but using 1024 bytes sized buffers (mostly for virStrerror)
    # stops us from going down further
    gl_WARN_ADD([-Wframe-larger-than=4096],
[STRICT_FRAME_LIMIT_CFLAGS])
-    gl_WARN_ADD([-Wframe-larger-than=25600],
[RELAXED_FRAME_LIMIT_CFLAGS])
+    gl_WARN_ADD([-Wframe-larger-than=32768],
[RELAXED_FRAME_LIMIT_CFLAGS])


Remind me again why don't we do -Wno-frame-larger-than (or something
to that
effect) for tests?  Is it just because "We should fix it at some
point"?  I
can't really recall the reasoning behind that (and if it is still
valid) even
though I already asked for it.

I don't think there's a strong reason, given the way we currently write
tests with huge amounts of stack variables.

For -Wframe-larger-than to be useful, we'd need to move all the big data
blobs to be static, global variables.
Or simply use compiler that honours variable lifetime. If a variable is
defined only in a block, compiler should be able to just reuse the
stack. I mean for the following case:

do {
 int x;
} while (0);

do {
 int y;
} while (0);

I don't see any compelling reason for compiler to reserve two ints on
the stack. Or if it does, count it as one when comparing agains
-Wframe-larger-than.


We can do that ourselves, even though it's not really great thing to
do.  Just
reset the one struct and reuse it.  I added it (and future research) as
an idea
to GSoC ideas.  Let's see if someone rewrites that.

I don't think that's a good idea. It's working around broken compiler.
Just like the original patch (which we unfortunately have to have).


Really?  Well, looks like you're not the only one, so feel free to remove that.
I just thought that would be a really easy starting point for someone.

Michal

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

Attachment: signature.asc
Description: Digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux