# git rev-parse -q --verify d899987759d5c18c26204a3defc15a3fb55048c0^{commit} # git fetch -q -n -f git://gitlab.ozlabs.ibm.com/mirror/linux-npiggin.git kerkins error: The last gc run reported the following. Please correct the root cause and remove .git/gc.log. Automatic cleanup will not be performed until the file is removed. warning: There are too many unreachable loose objects; run 'git prune' to remove them. # git rev-parse -q --verify d899987759d5c18c26204a3defc15a3fb55048c0^{commit} d899987759d5c18c26204a3defc15a3fb55048c0 # git checkout -q -f -B kisskb d899987759d5c18c26204a3defc15a3fb55048c0 # git clean -qxdf # < git log -1 # commit d899987759d5c18c26204a3defc15a3fb55048c0 # Author: Nicholas Piggin # Date: Thu Aug 2 17:36:57 2018 +1000 # # powerpc/64s: reimplement book3s idle code in C # # Reimplement Book3S idle code in C, moving POWER7/8/9 implementation # speific HV idle code to the powernv platform code. # # Book3S assembly stubs are kept in common code and used only to save # the stack frame and non-volatile GPRs before executing architected # idle instructions, and restoring the stack and reloading GPRs then # returning to C after waking from idle. # # The complex logic dealing with threads and subcores, locking, SPRs, # HMIs, timebase resync, etc., is all done in C which makes it more # maintainable. # # This is not a strict translation to C code, there are some # significant differences: # # - Idle wakeup no longer uses the ->cpu_restore call to reinit SPRs, # but saves and restores them itself. # # - The optimisation where EC=ESL=0 idle modes did not have to save GPRs # or change MSR is restored, because it's now simple to do. ESL=1 # sleeps that do not lose GPRs can use this optimization too. # # - KVM secondary entry and cede is now more of a call/return style # rather than branchy. nap_state_lost is not required because KVM # always returns via NVGPR restoring path. # # Reviewed-by: Gautham R. Shenoy # Signed-off-by: Nicholas Piggin # # Left to do: # - KVM could use more review, it's pretty tricky. Not sure if what # I'm doing with the emergency stack is kosher. But it runs pretty fine # here with a POWER8 SMP+SMT guest. Possible to streamline # KVM cede code now that idle function saves nv gprs for us? # # Open question: # - Why does P9 restore some of the PMU SPRs (but not others), and # P8 only zeroes them? (A: Unclear. First pass conversion patch will not # try to tidy this up, but it will become much easier to do afterward). # # Since RFC v1: # - Now tested and working with POWER9 hash and radix. # - KVM support added. This took a bit of work to untangle and might # still have some issues, but POWER9 seems to work including hash on # radix with dependent threads mode. # - This snowballed a bit because of KVM and other details making it # not feasible to leave POWER7/8 code alone. That's only half done # at the moment. # - So far this trades about 800 lines of asm for 500 of C. With POWER7/8 # support done it might be another hundred or so lines of C. # # Since RFC v2: # - Fixed deep state SLB reloading # - Now tested and working with POWER8. # - Accounted for most feedback. # # Since RFC v3: # - Rebased to powerpc merge + idle state bugfix # - Split SLB flush/restore code out and shared with MCE code (pseries # MCE patches can also use). # - More testing on POWER8 including KVM with secondaries. # - Performance testing looks good. EC=ESL=0 is about 5% faster, other # stop states look a little faster too. # - Adjusted SPR saving to handler POWER7, haven't tested it. # # Since submission v1: # - More review comments from Gautham. # - Rename isa3_ to isa300_ prefix. # - Tinkered with some comments, copyright notice, changelog. # - Cede and regular idle do not go via KVM secondary wakeup code path, # so hwthread_state stores and barriers can be simplified, and some # KVM code paths simplified a little. # # Since v2: # - Rebase, SLB reload patch has been merged. # - More testing. Tested machine check idle wakeup path with mambo stepping # through instructions. # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < git log --format=%s --max-count=1 d899987759d5c18c26204a3defc15a3fb55048c0 # < make -s -j 48 ARCH=x86 O=/kisskb/build/npiggin_x86_64_defconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- x86_64_defconfig # make -s -j 48 ARCH=x86 O=/kisskb/build/npiggin_x86_64_defconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- In file included from /kisskb/src/include/trace/define_trace.h:97, from /kisskb/src/include/trace/events/writeback.h:762, from /kisskb/src/fs/fs-writeback.c:98: /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_work_class': /kisskb/src/include/trace/events/writeback.h:223:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ wb->bdi->dev ? dev_name(wb->bdi->dev) : "(unknown)", 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:222:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_class': /kisskb/src/include/trace/events/writeback.h:277:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(wb->bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:276:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_bdi_register': /kisskb/src/include/trace/events/writeback.h:299:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:292:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_bdi_register, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:298:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_wbc_class': /kisskb/src/include/trace/events/writeback.h:324:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:323:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_queue_io': /kisskb/src/include/trace/events/writeback.h:375:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(wb->bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:360:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_queue_io, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:373:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_write_inode_template': /kisskb/src/include/trace/events/writeback.h:179:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:178:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_dirty_inode_template': /kisskb/src/include/trace/events/writeback.h:99:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ bdi->dev ? dev_name(bdi->dev) : "(unknown)", 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:95:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_single_inode_template': /kisskb/src/include/trace/events/writeback.h:660:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:659:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_dirty_page': /kisskb/src/include/trace/events/writeback.h:69:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ mapping ? dev_name(inode_to_bdi(mapping->host)->dev) : "(unknown)", 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:56:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_dirty_page, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:68:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'perf_trace_writeback_sb_inodes_requeue': /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/perf.h:66:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ In file included from /kisskb/src/include/trace/define_trace.h:96, from /kisskb/src/include/trace/events/writeback.h:762, from /kisskb/src/fs/fs-writeback.c:98: /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_bdi_register': /kisskb/src/include/trace/events/writeback.h:299:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:292:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_bdi_register, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:298:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_class': /kisskb/src/include/trace/events/writeback.h:277:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(wb->bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:276:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_wbc_class': /kisskb/src/include/trace/events/writeback.h:324:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:323:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_write_inode_template': /kisskb/src/include/trace/events/writeback.h:179:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:178:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_dirty_inode_template': /kisskb/src/include/trace/events/writeback.h:99:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ bdi->dev ? dev_name(bdi->dev) : "(unknown)", 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:95:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_work_class': /kisskb/src/include/trace/events/writeback.h:223:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ wb->bdi->dev ? dev_name(wb->bdi->dev) : "(unknown)", 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:222:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_dirty_page': /kisskb/src/include/trace/events/writeback.h:69:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ mapping ? dev_name(inode_to_bdi(mapping->host)->dev) : "(unknown)", 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:56:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_dirty_page, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:68:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_queue_io': /kisskb/src/include/trace/events/writeback.h:375:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, dev_name(wb->bdi->dev), 32); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:360:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_queue_io, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:373:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_single_inode_template': /kisskb/src/include/trace/events/writeback.h:660:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:659:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h: In function 'trace_event_raw_event_writeback_sb_inodes_requeue': /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:586:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(__entry->name, ^~~~~~~~~~~~~~~~~~~~~~ dev_name(inode_to_bdi(inode)->dev), 32); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/include/trace/trace_events.h:720:4: note: in definition of macro 'DECLARE_EVENT_CLASS' { assign; } \ ^~~~~~ /kisskb/src/include/trace/trace_events.h:78:9: note: in expansion of macro 'PARAMS' PARAMS(assign), \ ^~~~~~ /kisskb/src/include/trace/events/writeback.h:572:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(writeback_sb_inodes_requeue, ^~~~~~~~~~~ /kisskb/src/include/trace/events/writeback.h:585:2: note: in expansion of macro 'TP_fast_assign' TP_fast_assign( ^~~~~~~~~~~~~~ /kisskb/src/fs/ext4/super.c: In function '__save_error_info': /kisskb/src/fs/ext4/super.c:344:2: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(es->s_last_error_func, func, sizeof(es->s_last_error_func)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/fs/ext4/super.c:349:3: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation] strncpy(es->s_first_error_func, func, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sizeof(es->s_first_error_func)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/drivers/video/hdmi.c: In function 'hdmi_spd_infoframe_init': /kisskb/src/drivers/video/hdmi.c:174:2: warning: 'strncpy' specified bound 8 equals destination size [-Wstringop-truncation] strncpy(frame->vendor, vendor, sizeof(frame->vendor)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/drivers/video/hdmi.c:175:2: warning: 'strncpy' specified bound 16 equals destination size [-Wstringop-truncation] strncpy(frame->product, product, sizeof(frame->product)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Completed OK # rm -rf /kisskb/build/npiggin_x86_64_defconfig_x86_64-gcc8 # Build took: 0:06:29.654996