All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
	Network Development <netdev@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	intel-wired-lan@lists.osuosl.org
Subject: Re: [vlan_device_event] BUG: unable to handle kernel paging request at 6b6b6ccf
Date: Sun, 12 Nov 2017 11:31:56 -0800	[thread overview]
Message-ID: <CA+55aFx0O+NTbBjavPm_jPucqHdXFYPmUya4kw=ps7LSqTFd5w@mail.gmail.com> (raw)
In-Reply-To: <20171108171230.ccf7lwutjysk26fc@wfg-t540p.sh.intel.com>

On Wed, Nov 8, 2017 at 9:12 AM, Fengguang Wu <fengguang.wu@intel.com> wrote:
>
> OK. Here is the original faddr2line output:
>
> $ ~/linux/scripts/faddr2line vmlinux vlan_device_event+0x7f5/0xa40
> vlan_device_event+0x7f5/0xa40:
> vlan_device_event at net/8021q/vlan.h:60
>
> And below is call trace embedded with full faddr2line output.
>
> I notice that this trace shows no additional inline files at all.
> Is it because I did some kconfig option wrong, so that inline info is
> lost? Eg.
>
> CONFIG_OPTIMIZE_INLINING=y (it looks better set to N)
> CONFIG_DEBUG_INFO_REDUCED=y
> CONFIG_DEBUG_INFO_SPLIT=y

Ok, this annoyed me, so I went back and looked.

It's the "CONFIG_DEBUG_INFO_SPLIT" thing that makes faddr2line unable
to see the inlining information,

Using OPTIMIZE_INLINING is fine.

I'm not sure that addr2line could be made to understand the .dwo files
that DEBUG_INFO_SPLIT causes (particularly since we munge the vmlinux
file itself, who knows how that could confuse things).

So can I ask that you make the 0day build scripts always use

  CONFIG_DEBUG_INFO=y
  CONFIG_DEBUG_INFO_REDUCED=y
  # CONFIG_DEBUG_INFO_SPLIT is not set

because with that "DEBUG_INFO_REDUCED=y", the use of DEBUG_INFO_SPLIT
shouldn't be _that_ big of a deal.

Yes, splitting the debug info does help reduce disk usage for the
build, and presumably speed it up a bit too due to less IO and reduced
copying of the debug info data, but right now it really makes the
debug info much less useful.

Just to see the difference:

 - with DEBUG_INFO_SPLIT=y

    [torvalds@i7 linux]$ ./scripts/faddr2line vmlinux __schedule+0x314
    __schedule+0x314/0x840:
    __schedule at kernel/sched/stats.h:12

 - with DEBUG_INFO_SPLIT is not set

    [torvalds@i7 linux]$ ./scripts/faddr2line vmlinux __schedule+0x314
    __schedule+0x314/0x840:
    rq_sched_info_arrive at kernel/sched/stats.h:12
     (inlined by) sched_info_arrive at kernel/sched/stats.h:99
     (inlined by) __sched_info_switch at kernel/sched/stats.h:151
     (inlined by) sched_info_switch at kernel/sched/stats.h:158
     (inlined by) prepare_task_switch at kernel/sched/core.c:2582
     (inlined by) context_switch at kernel/sched/core.c:2755
     (inlined by) __schedule at kernel/sched/core.c:3366

and while (once again) this is a pretty extreme case, we do use a lot
of inlines, and gcc will add its own inlining. Getting this whole
information - particularly for the faulting IP - would really help in
some situations.

I love what the 0day robot is doing, this would be another big step forward.

Oh - and talking about "big step forward" - does the 0day robot do any
suspend/resume testing at all?

Even on non-laptop hardware, it should be possible to do something like

    echo platform > /sys/power/pm_test
    echo freeze > /sys/power/state

or similar (assuming CONFIG_PM_DEBUG is enabled).

Maybe you already do something like this?

Anyway, regardless this was a good release for the 0day robot. Thanks.

                     Linus

WARNING: multiple messages have this Message-ID (diff)
From: Linus Torvalds <torvalds@linux-foundation.org>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [vlan_device_event] BUG: unable to handle kernel paging request at 6b6b6ccf
Date: Sun, 12 Nov 2017 11:31:56 -0800	[thread overview]
Message-ID: <CA+55aFx0O+NTbBjavPm_jPucqHdXFYPmUya4kw=ps7LSqTFd5w@mail.gmail.com> (raw)
In-Reply-To: <20171108171230.ccf7lwutjysk26fc@wfg-t540p.sh.intel.com>

On Wed, Nov 8, 2017 at 9:12 AM, Fengguang Wu <fengguang.wu@intel.com> wrote:
>
> OK. Here is the original faddr2line output:
>
> $ ~/linux/scripts/faddr2line vmlinux vlan_device_event+0x7f5/0xa40
> vlan_device_event+0x7f5/0xa40:
> vlan_device_event at net/8021q/vlan.h:60
>
> And below is call trace embedded with full faddr2line output.
>
> I notice that this trace shows no additional inline files at all.
> Is it because I did some kconfig option wrong, so that inline info is
> lost? Eg.
>
> CONFIG_OPTIMIZE_INLINING=y (it looks better set to N)
> CONFIG_DEBUG_INFO_REDUCED=y
> CONFIG_DEBUG_INFO_SPLIT=y

Ok, this annoyed me, so I went back and looked.

It's the "CONFIG_DEBUG_INFO_SPLIT" thing that makes faddr2line unable
to see the inlining information,

Using OPTIMIZE_INLINING is fine.

I'm not sure that addr2line could be made to understand the .dwo files
that DEBUG_INFO_SPLIT causes (particularly since we munge the vmlinux
file itself, who knows how that could confuse things).

So can I ask that you make the 0day build scripts always use

  CONFIG_DEBUG_INFO=y
  CONFIG_DEBUG_INFO_REDUCED=y
  # CONFIG_DEBUG_INFO_SPLIT is not set

because with that "DEBUG_INFO_REDUCED=y", the use of DEBUG_INFO_SPLIT
shouldn't be _that_ big of a deal.

Yes, splitting the debug info does help reduce disk usage for the
build, and presumably speed it up a bit too due to less IO and reduced
copying of the debug info data, but right now it really makes the
debug info much less useful.

Just to see the difference:

 - with DEBUG_INFO_SPLIT=y

    [torvalds at i7 linux]$ ./scripts/faddr2line vmlinux __schedule+0x314
    __schedule+0x314/0x840:
    __schedule at kernel/sched/stats.h:12

 - with DEBUG_INFO_SPLIT is not set

    [torvalds at i7 linux]$ ./scripts/faddr2line vmlinux __schedule+0x314
    __schedule+0x314/0x840:
    rq_sched_info_arrive at kernel/sched/stats.h:12
     (inlined by) sched_info_arrive at kernel/sched/stats.h:99
     (inlined by) __sched_info_switch at kernel/sched/stats.h:151
     (inlined by) sched_info_switch at kernel/sched/stats.h:158
     (inlined by) prepare_task_switch at kernel/sched/core.c:2582
     (inlined by) context_switch at kernel/sched/core.c:2755
     (inlined by) __schedule at kernel/sched/core.c:3366

and while (once again) this is a pretty extreme case, we do use a lot
of inlines, and gcc will add its own inlining. Getting this whole
information - particularly for the faulting IP - would really help in
some situations.

I love what the 0day robot is doing, this would be another big step forward.

Oh - and talking about "big step forward" - does the 0day robot do any
suspend/resume testing at all?

Even on non-laptop hardware, it should be possible to do something like

    echo platform > /sys/power/pm_test
    echo freeze > /sys/power/state

or similar (assuming CONFIG_PM_DEBUG is enabled).

Maybe you already do something like this?

Anyway, regardless this was a good release for the 0day robot. Thanks.

                     Linus

  parent reply	other threads:[~2017-11-12 19:32 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-07 10:21 [vlan_device_event] BUG: unable to handle kernel paging request at 6b6b6ccf Fengguang Wu
2017-11-07 16:25 ` Linus Torvalds
2017-11-07 16:46   ` Fengguang Wu
2017-11-08  9:48   ` Fengguang Wu
2017-11-08 16:20     ` Linus Torvalds
2017-11-08 16:20       ` [Intel-wired-lan] " Linus Torvalds
2017-11-08 17:12       ` Fengguang Wu
2017-11-08 17:12         ` [Intel-wired-lan] " Fengguang Wu
2017-11-08 17:18         ` Fengguang Wu
2017-11-08 17:18           ` [Intel-wired-lan] " Fengguang Wu
2017-11-08 18:05         ` Linus Torvalds
2017-11-08 18:05           ` [Intel-wired-lan] " Linus Torvalds
2017-11-08 18:36         ` Alexander Duyck
2017-11-08 18:36           ` [Intel-wired-lan] " Alexander Duyck
2017-11-09  3:12           ` Fengguang Wu
2017-11-09  3:12             ` [Intel-wired-lan] " Fengguang Wu
2017-11-09  4:09             ` Fengguang Wu
2017-11-09  4:09               ` [Intel-wired-lan] " Fengguang Wu
2017-11-09  7:22               ` Fengguang Wu
2017-11-09  7:22                 ` [Intel-wired-lan] " Fengguang Wu
2017-11-09  6:34             ` Cong Wang
2017-11-09  6:34               ` [Intel-wired-lan] " Cong Wang
2017-11-09  6:55               ` Fengguang Wu
2017-11-09  6:55                 ` [Intel-wired-lan] " Fengguang Wu
2017-11-09  7:43                 ` Fengguang Wu
2017-11-09  7:43                   ` [Intel-wired-lan] " Fengguang Wu
2017-11-09 15:51               ` Girish Moodalbail
2017-11-09 15:51                 ` [Intel-wired-lan] " Girish Moodalbail
2017-11-10  0:16                 ` Cong Wang
2017-11-10  0:16                   ` [Intel-wired-lan] " Cong Wang
2017-11-12 19:31         ` Linus Torvalds [this message]
2017-11-12 19:31           ` Linus Torvalds
2017-11-13  1:13           ` CONFIG_DEBUG_INFO_SPLIT impacts on faddr2line Fengguang Wu
2017-11-13  1:13             ` [Intel-wired-lan] " Fengguang Wu
2017-11-13  2:05             ` Zhang Rui
2017-11-13  2:05               ` [Intel-wired-lan] " Zhang Rui
2017-11-13  2:22               ` Fengguang Wu
2017-11-13  2:22                 ` [Intel-wired-lan] " Fengguang Wu
2017-11-13 18:52             ` Andi Kleen
2017-11-13 18:52               ` [Intel-wired-lan] " Andi Kleen
2017-11-13 19:14               ` Linus Torvalds
2017-11-13 19:14                 ` [Intel-wired-lan] " Linus Torvalds
2017-11-13 20:10                 ` Andi Kleen
2017-11-13 20:10                   ` [Intel-wired-lan] " Andi Kleen
2017-11-13 20:14                   ` H.J. Lu
2017-11-13 20:14                     ` [Intel-wired-lan] " H.J. Lu
2017-11-13 20:56                   ` Linus Torvalds
2017-11-13 20:56                     ` [Intel-wired-lan] " Linus Torvalds
2017-11-13 21:41                     ` Andi Kleen
2017-11-13 21:41                       ` [Intel-wired-lan] " Andi Kleen
2017-11-13 21:57                       ` Linus Torvalds
2017-11-13 21:57                         ` [Intel-wired-lan] " Linus Torvalds
2017-11-13 23:51                         ` Andi Kleen
2017-11-13 23:51                           ` [Intel-wired-lan] " Andi Kleen
2017-11-14  8:13               ` Fengguang Wu
2017-11-14  8:13                 ` [Intel-wired-lan] " Fengguang Wu
2017-11-09  2:43     ` [vlan_device_event] BUG: unable to handle kernel paging request at 6b6b6ccf Fengguang Wu
2017-11-09  6:48       ` Fengguang Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CA+55aFx0O+NTbBjavPm_jPucqHdXFYPmUya4kw=ps7LSqTFd5w@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=fengguang.wu@intel.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.