Re: [PATCH] writeback: initialize m_dirty to avoid compile warning

From: Shi, Yang
Date: Wed Nov 18 2015 - 13:27:38 EST


On 11/18/2015 10:11 AM, Tejun Heo wrote:
Hello,

On Tue, Nov 17, 2015 at 03:38:55PM -0800, Andrew Morton wrote:
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -1542,7 +1542,7 @@ static void balance_dirty_pages(struct address_space *mapping,
for (;;) {
unsigned long now = jiffies;
unsigned long dirty, thresh, bg_thresh;
- unsigned long m_dirty, m_thresh, m_bg_thresh;
+ unsigned long m_dirty = 0, m_thresh = 0, m_bg_thresh = 0;

/*
* Unstable writes are a feature of certain networked

Adding runtime overhead to suppress a compile-time warning is Just
Wrong.

With gcc-4.4.4 the above patch actually reduces page-writeback.o's
.text by 36 bytes, lol. With gcc-4.8.4 the patch saves 19 bytes. No
idea what's going on there...


And initializing locals in the above fashion can hide real bugs -
looky:

This was the main reason the code was structured the way it is. If
cgroup writeback is not enabled, any derefs of mdtc variables should
trigger warnings. Ugh... I don't know. Compiler really should be
able to tell this much.

Thanks for the explanation. It sounds like a compiler problem.

If you think it is still good to cease the compile warning, maybe we could just assign it to an insane value as what Andrew suggested, maybe 0xdeadbeef.

Thanks,
Yang


Thanks.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/